[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [xacml-users] Contribution for the XACML Reference list
|
Hi Massimiliano (and other authors), Thanks for getting back on my questions. Your answers did enable me to understand the syntax and to go thru the rest of the paper. (I am cc'ing the openaz mail list as well, as people interested in that project may well be interested in this discussion as well.) One suggestion would be to show PolicySet recursion, which I think would make the syntax easier to comprehend. Based on my understanding of the paper, I assume the PolicySet recursion would look something like this, for say, a PolicySet that had a child PolicySet and Policy, where the child PolicySet had 2 (grand)child Policies:
where I have purposely left the combining Palgs and Ralgs and the
Effectsunspecified, and the targets empty. Also the lines rules:(Effect) basically mean a single Rule with some specified Effect and no Target or Condition. Assuming that is correct, then I think we agree that Table 7 effectively specifies the essential XACML syntax, namely recursive PolicySets with leaf node Policy elements, each of which can have one or more Rules. Similarly, the analysis can be pushed down to the condition where there is a recursive Apply element, which I don't think I saw discussed in the paper, although in section 6 there was mention of a second parser for Rule Condition expressions, which I assume addresses the recursion. Based on the above understanding, I believe there is pretty close match between the grammar you have defined and the implicit grammar that is being used in the OpenAz project. In response to your comment that you weren't able to access the OpenAz grammar, maybe the following will help: The OpenAz grammar is described in an email to the OpenAz mailing list: http://lists.openliberty.org/pipermail/openaz/2010-July/000075.html This email shows the OpenAz grammar applied to OAuth 2.0: http://lists.openliberty.org/pipermail/openaz/2011-March/000152.html The above email also includes instructions to download, build, and run OpenAz. For comparison purposes, which I think also shows the similarities between your formalized grammar and the "line at a time" grammar of OpenAz, which was developed out of the necessity of managing the test policies (i.e. the xml maintenance proved to be too much to manually maintain, especially when going back to an old Policy and trying to figure out what it was doing.), here is a quick attempt to represent the Policy you have in Listing 2:
I think you will find that the syntactic structure is basically the
same, whichI attribute to the fact that the XML itself has this implicit syntax and these abbreviated syntaxes basically strip out the XML overhead. Let me briefly explain how the overall OpenAz system works with this "XACML Shorthand" as we have coined a term for it:
process. XacmlPolicyBuilder totally operates on the internal SunXacml objects, and only when all the objects are completely assembled, is the PolicySet sericalized to XML. However, what SunXacml does when it loads the Policy is parse the XML and produce exactly the same object structure that was used to serialize the PolicySet in the first place. Similarly, on the PEP side, we allow any objects to be submitted for an authorization call, and mappers extract the XACML Attributes out of these objects and put them in an object model using the OpenAz AzApi, which then submits the AzRequestContext to a wrapper for the SunXacml PDP. This wrapper builds the SunXacml objects for submitting an API request to the PDP, and again no XML is required. However, for demo purposes, we do serialize the request and response to xml to put in the log to show the activity in std XACML XML form. As indicated above, this approach was primarily done to ease the burden of maintaining the test policies, however, it is recognized that this approach may also be used for devekoping Policy design tools. The OpenAz syntax is intended only to be an "intermediate syntax" between a GUI that presents a user-friendly higher level perspective, such as: Grant <users> Permission <resource-id> <resource-type><action-id>where presumably the above syntax would be parsed into the line at a time xacml shorthand, which could then be used to generate policies in XACML XML or some other engine-specific format. One other point of commonality which I will not explore in any depth now is that I believe your MatchId construct is similar in concept and scope to the OpenAz AttributeMatchExpression, which is the fundamental unit around which the OpenAz Xacml policies are based. Thanks again for your help for understanding your paper, Rich On 1/19/2012 5:44 AM, massimiliano.masi@gmail.com wrote: Dear Rich, Thanks a lot for your mail. Sorry for the late answer, but I was abroad after christmas (a long week in the www.ihe.net connectathon event). Please find my comments below. On Tue, Jan 10, 2012 at 7:34 AM, rich levinson <rich.levinson@oracle.com> wrote:p13, table 1: (actually also tables 2,3) Personally, I think the title of table should be "Policy Set Evaluation" (singular) instead of the current "Policy Sets Evaluation" (plural). As I look at the 3 columns, I see the possible outcomes of evaluation of one Target, multiple Policy or PolicySet elements within a single PolicySet, and a single value in column 3 for the "value" of a single PolicySet. p13, table 1: column 2: I believe that because a PolicySet can contain multiple Policies and multiple PolicySets that the title of this column would be better as "PolicySet/Policy Values", instead of the current "Policy Values" (note: I have capped all words in the column headers, but that is just a suggestion as well, however if only the element names are capped, then that I think is ok, too) p15: I suggest adding a "Table 6a" or "Table 7" that will show the evaluation of a single "match element". In particular, I think that the last paragraph before section 3, starting with "Finally, the evaluation of a match element ..." describes what should be in this proposed table.Yes, you are absolutely right. We are going to address these issues in our technical report. |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]