Re: [xacml] subject categories

From
rich levinson <>
Date
2013-07-24T03:35:50+00:00
ID
Thread
Re: [xacml] subject categories
Hi Mohammad,

    

    I am not familiar w any specific examples where these subject
    sub-categories

    have been used, although they seem like they could be quite useful.

    

    I think for the scenario you have described, that I would choose the

    category:recipient-subject, because, while both the sub-categories

    apply in the sense that the Consumer System is an intermediary,

    in the use case you describe the Consumer System also is the

    intended recipient of the data.

    

    Also, I think it is more "important" that the Consumer System is the

    intended recipient of the customer's private data, as opposed to

    the somewhat obvious fact that the Consumer System is an

    intermediary passing along the user's request, at least from

    the perspective of the Service Provider. However, I am sure

    someone could come up w a counter example, so I think

    the bottom line is that the final choice is a judgement call

    based on the needs of the participating organizations.

    

    A final comment is that this example seems quite analogous

    to the general OAuth 2.0 scenario, where an end user requests

    a client application to perform some service whereby the

    client appl needs to access a resource belonging to the

    end user that is hosted on some resource server and the

    client effectively has to pass its own identity info to the

    authorization server, and the authorization server also

    needs explicit authorization from the end user to allow

    this client to access the end user's resource.

    

    In the OpenAz project, we have demo'd the use of OAuth2.0

    in conjunction w a xacml-based authorization server, with

    xacml policies that take into account both the end user's

    identity and the client appl identity, plus the end user's

    authorization for a particular "scope" of resources that

    the client is allowed to access.

http://openaz.svn.sourceforge.net/viewvc/openaz/trunk/openaz/test/doc/test/OAuthSimulator.html

    

        Thanks,

        Rich

    

    

    

    
On 7/23/2013 8:29 PM, Mohammad Jafari
      wrote:

    

    
      
      
      
      
      

        
Thanks Rich.

        
 

        
Considering the
            XSPA use case (see below) there is an end user who sends the
            original access request, and there is also the Consumer
            Organization who sends the request to acquire the health
            record from the Service Provider. So, the attributes that
            appear in the request to the Service Provider PDP include
            attributes for both the end-user and the Consumer System
            which sends the request for the data exchange on her/his
            behalf. For example, the user ID of the end user and the
            identifier of the Consumer organization, both appear in the
            request and are both factors in making policy decisions.

        
 

        
I had seen the
            definitions that you have quoted and from the informal
            explanation it seems to me, it is appropriate to use
            access-subject for the end user and recipient-subject or
            intermediate-subject for the Consumer Organization. I am
            wondering if anyone else have made such distinction in their
            use-cases and whether they can share how they made the
            decision to use what category for what kind of subjects.
            

        

        
Thanks again.

        
Mohammad

        
 

        
 

        
 

        
 

        
 

        

          

            

              
From:
                  rich levinson [mailto:]
                  

                  Sent: Tuesday, July 23, 2013 1:14 PM

                  To: Mohammad Jafari

                  Cc: 

                  Subject: Re: [xacml] subject categories

            

          

          
 

          
Hi Mohammad,

            

            I am not sure I understand the full extent of your question
            w/o more context

            as to what you are trying to achieve.

            

            However, it does seem to me that the defns in the core spec,
            which were also

            in the 2.0 spec seem fairly obvious, so possibly you missed
            it in section B.2,

            lines 5183-5200:

          
"Attributes previously placed in the
            Subject section of a request are placed in an attribute
            category 5183 which is identical of the subject category in
            XACML 2.0, as defined below. It is RECOMMENDED that 5184
            they are used to list attributes of subjects when authoring
            XACML 3.0 policies or requests. 5185

            

            This identifier indicates the system entity that initiated
            the access request.

             That is, the initial entity in a request chain.

             If subject category is not specified in XACML 2.0, this is
            the default translation value.

               
            urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

            

            This identifier indicates the system entity that will
            receive the results of the request

             (used when it is distinct from the access-subject). 5190

               
            urn:oasis:names:tc:xacml:1.0:subject-category:recipient-subject

            

            This identifier indicates a system entity through which the
            access request was passed.

               
            urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject

            

            This identifier indicates a system entity associated with a
            local or remote codebase

            that generated the request.

             Corresponding subject attributes might include the URL from
            which it was loaded

              and/or the identity of the  code-signer. 

                urn:oasis:names:tc:xacml:1.0:subject-category:codebase

            

            This identifier indicates a system entity associated with
            the computer that initiated the access request. 5198

             An example would be an IPsec identity. 5199

               
            urn:oasis:names:tc:xacml:1.0:subject-category:requesting-machine"

          
Note that
            the language in the defns uses the term "system entity" to
            describe these

            different "categories" of subject. This should be taken to
            mean a distinct "entity",

            whether it be a human actor or a physical machine.

            

            Personally, I interpret "category" to mean a type of object,
            which probably could

            be characterized semantically by its own set of allowable
            attributes. Basically,

            I consider the "category", a collection of attributes w some
            enterprise or organization

            semantic meaning, as in this collection of attributes are
            about "something" where

            "something" is the business or system or organization
            "entity" that warrants

            being described by this particular collection of attributes.
            (Please pardon the

            verbose abstraction language I am using as it is intended to
            be generic and

            not assuming any particular concrete representation wrt
            "entities".)

            

            So, I think the original xacml authors were not trying to
            specify

            exactly what the different subject subcategories were
            actually

            about, but just giving an indication of a suggested way in
            which

            they could be used to characterize entities in the overall
            network

            that might be of interest for particular security use cases.

            

            Hope this helps,

            

                Thanks,

                Rich

            

            

            

          

            
On 7/22/2013 11:09 PM, Mohammad Jafari
              wrote:

          

          
            
Hello,

            
 

            
As we are trying to update the XSPA
              XACML profiles, one of the tasks is to support XACML
              version 3. I noticed that for “subject” attributes, there
              are now 4 different categories defined in the core. The
              mandatory category:

            
urn:oasis:names:tc:xacml:1.0:subject-category:access-subject

            
and the optional categories:

            
urn:oasis:names:tc:xacml:1.0:subject-category:recipient-subject

            
urn:oasis:names:tc:xacml:1.0:subject-category:intermediary-subject

            
urn:oasis:names:tc:xacml:1.0:subject-category:requesting-machine

            
 

            
But the core does not provide any
              definition or discussion about the differences between
              these categories. I was wondering if anyone can comment
              about the differences or refer me to a definition so that
              we can make a better decision on which category to use for
              which attributes. 

            
 

            
Thanks.

            
 

            
Regards,

            
Mohammad

            
 

          
          
 

          

            
--
                

                Thanks, Rich 

            

              Rich
                Levinson | Internet Standards Security Architect

                Mobile: +1 978 5055017 

              Oracle
                Identity Management

                45 Network Drive | Burlington, Massachusetts 01803
              

              Oracle

                is committed to developing practices and products that
                help protect the environment
              

          

        

      

    
    

    
-- 

      Thanks, Rich
      

        

        Rich Levinson | Internet Standards Security
          Architect

          Mobile: +1 978 5055017 

          Oracle Identity Management

          45 Network Drive | Burlington, Massachusetts 01803
        

        
        Oracle is committed to developing practices
          and products that help protect the environment