Hi Abimaran,

If I'm not wrong, adding the operation to Resource ID gives us the option
to control access per operation.

Regards,
Omindu.


On Sun, Jun 21, 2015 at 5:46 PM, Abimaran Kugathasan <[email protected]>
wrote:

> Hi Asela,
>
> I debug the entitlement mediator and when it send the request to PDP, it
> append either HTTP_METHOD or first child element to the Resource ID. For
> example if the service name is : http://abimaran:8280/services/echo/, the
> Resource ID send to PDP will be
> http://abimaran:8280/services/echo//echoString.
>
> Please find the method below
>
> /**
>  * Get the name of the operation been invoked by the user. If the property 
> xacml_use_rest
>  * defined under axis2 scope been found - with the value "true" - the 
> HTTP_METHOD will be picked
>  * as the operation name.
>  *
>  * @param synCtx
>  * @return
>  */
> public String findOperationName(MessageContext synCtx) {
>     org.apache.axis2.context.MessageContext msgContext;
>     Axis2MessageContext axis2Msgcontext = null;
>     axis2Msgcontext = (Axis2MessageContext) synCtx;
>     msgContext = axis2Msgcontext.getAxis2MessageContext();
>     String useRest = (String) msgContext.getProperty("xacml_use_rest");
>     if (useRest == null || "false".equals(useRest.toLowerCase())) {
>         return msgContext.getEnvelope().getSOAPBodyFirstElementLocalName();
>     } else {
>         return (String) msgContext.getProperty("HTTP_METHOD");
>     }
> }
>
> userName = callback.getUserName(synCtx);
> serviceName = callback.findServiceName(synCtx);
> operationName = callback.findOperationName(synCtx);
> action = callback.findAction(synCtx);
> otherAttributes = callback.findOtherAttributes(synCtx);
>
> if (userName == null) {
>     throw new SynapseException(
>             "User name not provided for the Entitlement mediator - can't 
> proceed");
> }
>
> if (operationName != null) {
>     resourceName = serviceName + "/" + operationName;
> } else {
>     resourceName = serviceName;
> }
>
> What usage of adding this into the Resource ID when sending the request?
> Due to this, I'm getting Deny as the response.
>
> On Sun, Jun 21, 2015 at 1:55 PM, Abimaran Kugathasan <[email protected]>
> wrote:
>
>> [+Shafreen]
>>
>> On Sun, Jun 21, 2015 at 1:03 PM, Abimaran Kugathasan <[email protected]>
>> wrote:
>>
>>> Hi Asela,
>>>
>>> Please find my attached XACML Policy and the sample proxy configuration
>>> below. When I tested this Policy through 'TryIt', with Resource :
>>> http://abimaran:8280/services/echo/, Subject Name : admin, Action Name
>>> : read. It was evaluated to Permit.
>>>
>>> But, when I tried with a Java client through ESB, the request was
>>> Denied. Please find the  EntitlementMediator logs below.
>>>
>>> [2015-06-21 12:54:50,210] DEBUG - EntitlementMediator Mediation for
>>>> Entitlement started
>>>> [2015-06-21 12:54:50,210] DEBUG - EntitlementCallbackHandler Service
>>>> name http://abimaran:8280/services/echo/
>>>> [2015-06-21 12:54:50,210] DEBUG - EntitlementMediator Subject ID is :
>>>> admin Resource ID is : http://abimaran:8280/services/echo//echoString
>>>> Action ID is : read.
>>>> [2015-06-21 12:54:50,228] DEBUG - EntitlementMediator Entitlement
>>>> Decision is : Deny
>>>> [2015-06-21 12:54:50,228] DEBUG - EntitlementMediator User is not
>>>> authorized to perform the action
>>>
>>>
>>>
>>> Can you please let me know what I'm missing there?
>>>
>>>
>>>
>>> On Sun, Jun 21, 2015 at 11:08 AM, Asela Pathberiya <[email protected]>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Sat, Jun 20, 2015 at 11:07 AM, Abimaran Kugathasan <
>>>> [email protected]> wrote:
>>>>
>>>>> I defined below policy,
>>>>>
>>>>> <Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
>>>>>> PolicyId="SimplePolicy"
>>>>>> RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-overrides"
>>>>>> Version="1.0">
>>>>>>    <Target/>
>>>>>>    <Rule Effect="Permit" RuleId="primary-group-customer-rule">
>>>>>>       <Condition>
>>>>>>          <Apply
>>>>>> FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
>>>>>>             <Apply
>>>>>> FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
>>>>>>                <Apply
>>>>>> FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
>>>>>>                   <AttributeValue DataType="
>>>>>> http://www.w3.org/2001/XMLSchema#string";>
>>>>>> http://localhost:8280/services/echo/</AttributeValue>
>>>>>>                   <AttributeDesignator
>>>>>> AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id"
>>>>>> Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource"
>>>>>> DataType="http://www.w3.org/2001/XMLSchema#string";
>>>>>> MustBePresent="true"/>
>>>>>>                </Apply>
>>>>>>                <Apply
>>>>>> FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
>>>>>>                   <AttributeValue DataType="
>>>>>> http://www.w3.org/2001/XMLSchema#string";>read</AttributeValue>
>>>>>>                   <AttributeDesignator
>>>>>> AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id"
>>>>>> Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
>>>>>> DataType="
>>>>>> http://www.w3.org/2001/XMLSchema#string"; MustBePresent="true"/>
>>>>>>                </Apply>
>>>>>>             </Apply>
>>>>>>             <Apply
>>>>>> FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
>>>>>>                <AttributeValue DataType="
>>>>>> http://www.w3.org/2001/XMLSchema#string";>admin</AttributeValue>
>>>>>>                <AttributeDesignator AttributeId="
>>>>>> http://wso2.org/claims/role";
>>>>>> Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
>>>>>> DataType="http://www.w3.org/2001/XMLSchema#string";
>>>>>> MustBePresent="true"/>
>>>>>>             </Apply>
>>>>>>          </Apply>
>>>>>>       </Condition>
>>>>>>    </Rule>
>>>>>> </Policy>
>>>>>
>>>>>
>>>>>
>>>>> And, through Entitelment Mediator with ESB, when I send the request
>>>>> from a client with resource http://localhost:8280/services/echo/. I
>>>>> saw following debug logs in the ESB.
>>>>>
>>>>>
>>>>> [2015-06-20 11:03:33,315] DEBUG - EntitlementMediator Mediation for
>>>>> Entitlement started
>>>>> [2015-06-20 11:03:33,315] DEBUG - EntitlementCallbackHandler Service
>>>>> name http://abimaran:8280/services/echo/
>>>>> [2015-06-20 11:03:33,315] DEBUG - EntitlementMediator Subject ID is :
>>>>> admin Resource ID is : http://abimaran:8280/services/echo//POST
>>>>> Action ID is : POST.
>>>>> [2015-06-20 11:03:33,358] DEBUG - EntitlementMediator Entitlement
>>>>> Decision is : NotApplicable
>>>>> [2015-06-20 11:03:33,358] DEBUG - EntitlementMediator User is not
>>>>> authorized to perform the action
>>>>>
>>>>> Anyone plese advise me, why XACML engine return NotApplicable? And why
>>>>> Resource ID is http://abimaran:8280/services/echo//POST?
>>>>>
>>>>
>>>>
>>>> PDP  usually can return  NotApplicable result when there is no any
>>>> policy or no matching policy in its PDP.  Above policy is evaluated to
>>>> NotApplicable as there are no any matching rules for given request.
>>>>
>>>> Resource/User/Action are extracted from entitlement mediator using
>>>> callback handler [1]  It seems to be that  "EntitlementMediator" has some
>>>> logic to append the action in to it resource name.  So,  we can change the
>>>> policy and see..
>>>>
>>>> [1]
>>>> http://svn.wso2.org/repos/wso2/carbon/platform/branches/turing/components/identity/org.wso2.carbon.identity.entitlement.mediator/4.2.2/src/main/java/org/wso2/carbon/identity/entitlement/mediator/callback/EntitlementCallbackHandler.java
>>>>
>>>> Thanks,
>>>> Asela.
>>>>
>>>>
>>>>>
>>>>> On Sat, Jun 20, 2015 at 10:54 AM, Abimaran Kugathasan <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> [+Thanuja]
>>>>>>
>>>>>> On Sat, Jun 20, 2015 at 10:02 AM, Abimaran Kugathasan <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Applied SP1 for a fresh IS and tested, still same errror.
>>>>>>>
>>>>>>> On Sat, Jun 20, 2015 at 9:46 AM, Abimaran Kugathasan <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sat, Jun 20, 2015 at 9:04 AM, Abimaran Kugathasan <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Harsha,
>>>>>>>>>
>>>>>>>>> Please find the policy.
>>>>>>>>>
>>>>>>>>> <Policy PolicyId="
>>>>>>>>> urn:oasis:names:tc:xacml:3.0:example:SimplePolicy"
>>>>>>>>> RuleCombiningAlgId=
>>>>>>>>> "urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"
>>>>>>>>> xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
>>>>>>>>>     <Description>Sample XACML Authorization Policy.</Description>
>>>>>>>>>     <Target/>
>>>>>>>>>     <Rule
>>>>>>>>>         RuleId= "urn:oasis:names:tc:xacml:3.0:example:SimpleRule1"
>>>>>>>>>         Effect="Permit">
>>>>>>>>>         <Description>
>>>>>>>>>             Sample XACML Authorization Policy.
>>>>>>>>>         </Description>
>>>>>>>>>         <Target>
>>>>>>>>>             <AnyOf>
>>>>>>>>>                 <AllOf>
>>>>>>>>>                     <Match
>>>>>>>>>                         MatchId=
>>>>>>>>> "urn:oasis:names:tc:xacml:1.0:function:string-regexp-match">
>>>>>>>>>                         <AttributeValue DataType="
>>>>>>>>> http://www.w3.org/2001/XMLSchema#string";
>>>>>>>>> <http://www.w3.org/2001/XMLSchema#string>>
>>>>>>>>> http://localhost:8280/services/echo/</AttributeValue>
>>>>>>>>>                         <AttributeDesignator
>>>>>>>>>                         MustBePresent="false"
>>>>>>>>>                         Category=
>>>>>>>>> "urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
>>>>>>>>>                         AttributeId=
>>>>>>>>> "urn:oasis:names:tc:xacml:1.0:resource:resource-id"
>>>>>>>>>                         DataType="
>>>>>>>>> http://www.w3.org/2001/XMLSchema#string";
>>>>>>>>> <http://www.w3.org/2001/XMLSchema#string>/>
>>>>>>>>>                     </Match>
>>>>>>>>>                 </AllOf>
>>>>>>>>>             </AnyOf>
>>>>>>>>>         </Target>
>>>>>>>>>     </Rule>
>>>>>>>>> </Policy>
>>>>>>>>>
>>>>>>>>> No, I haven't install any patches or SPs.
>>>>>>>>>
>>>>>>>>> On Sat, Jun 20, 2015 at 9:00 AM, Harsha Thirimanna <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> We don't need to specify the XACML version , because it is
>>>>>>>>>> already available in the policy as a name space.
>>>>>>>>>> Can you attach policy file ,
>>>>>>>>>> Did you try this with IS SP1 ?
>>>>>>>>>> On Jun 20, 2015 8:48 AM, "Abimaran Kugathasan" <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>
>>>>>>>>>>> When I tried sample policy given as sample in [1], I got
>>>>>>>>>>> following error in the UI.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Entitlement policy is not updated. Error is :Invalid Entitlement
>>>>>>>>>>>> Policy. Policy is not valid according to XACML schema
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I'm getting same for the sample [2].
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> IS 5.0.0 supports both XACML 2.0.and 3.0 specification. Do I
>>>>>>>>>>> have to set which version should support in a configuration file?
>>>>>>>>>>>
>>>>>>>>>>> [1] :
>>>>>>>>>>> https://docs.wso2.com/display/IS500/Writing+XACML+3+Policies+in+WSO2+Identity+Server+-+1
>>>>>>>>>>> [2] :
>>>>>>>>>>> https://docs.wso2.com/display/IS500/Writing+XACML+policies+in+WSO2+Identity+Server+-+1
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Thanks
>>>>>>>>>>> Abimaran Kugathasan
>>>>>>>>>>>
>>>>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>>>>> Data & APIs Technologies Team
>>>>>>>>>>> Mobile : +94 773922820
>>>>>>>>>>>
>>>>>>>>>>> <http://stackoverflow.com/users/515034>
>>>>>>>>>>> <http://lk.linkedin.com/in/abimaran>
>>>>>>>>>>> <http://www.lkabimaran.blogspot.com/>
>>>>>>>>>>> <https://github.com/abimarank>  <https://twitter.com/abimaran>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Dev mailing list
>>>>>>>>>>> [email protected]
>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Thanks
>>>>>>>>> Abimaran Kugathasan
>>>>>>>>>
>>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>>> Data & APIs Technologies Team
>>>>>>>>> Mobile : +94 773922820
>>>>>>>>>
>>>>>>>>> <http://stackoverflow.com/users/515034>
>>>>>>>>> <http://lk.linkedin.com/in/abimaran>
>>>>>>>>> <http://www.lkabimaran.blogspot.com/>
>>>>>>>>> <https://github.com/abimarank>  <https://twitter.com/abimaran>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thanks
>>>>>>>> Abimaran Kugathasan
>>>>>>>>
>>>>>>>> Software Engineer | WSO2 Inc
>>>>>>>> Data & APIs Technologies Team
>>>>>>>> Mobile : +94 773922820
>>>>>>>>
>>>>>>>> <http://stackoverflow.com/users/515034>
>>>>>>>> <http://lk.linkedin.com/in/abimaran>
>>>>>>>> <http://www.lkabimaran.blogspot.com/>
>>>>>>>> <https://github.com/abimarank>  <https://twitter.com/abimaran>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Thanks
>>>>>>> Abimaran Kugathasan
>>>>>>>
>>>>>>> Software Engineer | WSO2 Inc
>>>>>>> Data & APIs Technologies Team
>>>>>>> Mobile : +94 773922820
>>>>>>>
>>>>>>> <http://stackoverflow.com/users/515034>
>>>>>>> <http://lk.linkedin.com/in/abimaran>
>>>>>>> <http://www.lkabimaran.blogspot.com/>
>>>>>>> <https://github.com/abimarank>  <https://twitter.com/abimaran>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks
>>>>>> Abimaran Kugathasan
>>>>>>
>>>>>> Software Engineer | WSO2 Inc
>>>>>> Data & APIs Technologies Team
>>>>>> Mobile : +94 773922820
>>>>>>
>>>>>> <http://stackoverflow.com/users/515034>
>>>>>> <http://lk.linkedin.com/in/abimaran>
>>>>>> <http://www.lkabimaran.blogspot.com/>  <https://github.com/abimarank>
>>>>>>   <https://twitter.com/abimaran>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Thanks
>>>>> Abimaran Kugathasan
>>>>>
>>>>> Software Engineer | WSO2 Inc
>>>>> Data & APIs Technologies Team
>>>>> Mobile : +94 773922820
>>>>>
>>>>> <http://stackoverflow.com/users/515034>
>>>>>
>>>> ...
>
> [Message clipped]
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Omindu Rathnaweera
Software Engineer, WSO2 Inc.
Mobile: +94 771 197 211
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to