OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

xacml message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [xacml] Issue: Hierarchical profile appears ambiguous and inconsistent

Hi Daniel,

See replies inline:

Daniel Engovatov wrote:
Based on this situation, my proposal is to enhance the existing Hierarchical spec using the URI representation in section 3.2 and indicating that this approach can be used instead of resource-parent and ancestor when the hierarchies are represented by nodes with URI resource-ids.

Using URI is a very limited approach, and it can be trivially mapped into "ancestor" approach.    Requiring a unique URI for resources is often not feasible
I am not recommending removing or replacing what is there, but simply representing the URI approach and the manner in which it can be used in parallel. When the URI is present, there is no need to create the ancestors, and one may simply use the anyURI-regexp-match as specified in section 4.3 (which I notice now needs to be updated to be consistent w core). Also, as stands, 4.3 really should have corresponding description in 3.2, which it currently does not.
I am not recommending requiring URI, but only making it available when convenient, which I think includes quite a broad range of use cases and I would not characterize it as "very limited" despite the fact that it may not be "universally applied".
My objectives are usability of the policy language. Scoping based on URI  regular expression matching is a universal technique, which is much easier than parsing URIs into parents and ancestors and then using XPath-type referencing, which is the approach indicated by Erik's example.
As you and others have indicated in the 2004 emails, there are use cases where URI is not readily available or desired, and the mechanisms from XPath are very useful there and I have no intention to remove them, but only to "correct" them, if need be, as indicated by the example I included in prev email.

The following example will show why this is doubly and actually triply specified and also why it is essential that the changes described in 1-3 above are needed.

Consider 3 hierarchies:
Let's say that a1, a2, and a3 are distinct roots and represent 3 separate nodes (or resources) in the overall collection.

I think you are confusing physical resources and policy resources.    Such mapping is outside of XACML.    There is no real hierarchy in XACML, we just provide a convenient normative way to represent them - only for the purpose of using it in a policy target.
I do not believe I am confusing the two. Physical resources are a fact of existence and in the case of XACML, the hierarchical identifiers are simply labels that the managers of those resources have applied to them. In the example I gave, it is the r* that represent the physical labels on the physical resources. They are an unordered flat collection. All the /a*/b*/c* are hierarchical representations of subsets of those resources. A given instance of "*" represents one hierarchy that is mapped onto the physical resources. All the policies deal with are the hierarchical representations. The physical is only mentioned to give people some context for understanding what is being discussed.
For example, all the PCs in a company have serial numbers. When managers create policies, they have the physical resources in mind and may organize them hierarchically for various purposes. A department manager may label the PCs in his/her dept according to some hierarchical structure in the dept organization and assign policies accordingly. At the same time these PCs are company property and may be labeled independently by the IT dept in terms of who is responsible for maintenance on them.

If someone wants to take one of these PCs out of the building, maybe there is a policy that says even if the employee's manager says it is ok, the facilities manager must also approve before permission is granted. This can be modeled with a dept hierarchy and a facilities hierarchy, and there are rules within the hierarchy producing a result and policy combining between the 2 hierarchies that can resolve conflicts such as described above.

In the above example the /a1/b1/c1 might be the dept hierarchy and /a2/b2/c2 might be the facilities hierarchy.

For the purpose of a single policy evaluation hierarchy that is used is uniquely defined by the provided "resource-ancestors" attribute.  
It is also uniquely defined by a URI if a URI scheme has been applied to the same resources, since all the ancestors are readily identifiable within the URI.
The fact that there is some persistent identity that may participate in different hierarchies should be outside of the scope of this profile.
As indicated above and original email, the r* persistent identity is only used as contextual reference for humans to know what is being discussed. Within the policies themselves, there would generally be no need to include this attribute except possibly for reporting purposes.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]