2017-03-19 4 views
0

Ich bin versuchen, eine JSON Anforderung an WSO2 Berechtigung Endpunkt zu senden POSTMAN mitWSO2 Identity Server XACML JSON anfordern Ergebnisse in „grenzwertig“ [können nicht AttributeDesignator Attribut finden]

Hier ist meine veröffentlichten Richtlinien im Identitätsserver:

<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="samplePolicy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-overrides" Version="1.0"> 
    <Target> 
     <AnyOf> 
      <AllOf> 
       <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> 
        <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"/> 
       </Match> 
      </AllOf> 
     </AnyOf> 
    </Target> 
    <Rule Effect="Permit" RuleId="permit"/> 

Hier ist JSON Anfrage sende ich:

{ 
    "Request": { 
     "Action": { 
      "Attribute": [ 
       { 
        "AttributeId": "urn:oasis:names:tc:xacml:1.0:action:action-id", 
        "Value": "read" 
       } 
      ] 
     }, 
     "Resource": { 
      "Attribute": [ 
       { 
        "AttributeId": "urn:oasis:names:tc:xacml:1.0:resource:resource-id", 
        "Value": "http://127.0.0.1/service/very_secure/" 
       } 
      ] 
     } 
    } 
} 

beiden Blöcke des Codes aus diesem Blog kamen https://medium.com/@gdrdabarera/how-entitlement-management-works-with-rest-api-via-xacml-in-wso2-identity-server-5-3-0-7a60940d040c#.4lxgiw6tn

Aber egal was ich versuchte, es mir immer „grenzwertig“ Antwort

Postman response screenshot

ich auch meine eigene Politik und Wunsch versuchen, aber ich bekomme immer die gleiche Antwort

Was ist los auf?

Antwort

2

mit Fixed: alle Leerzeichen entfernen vor und nach dem "Lesen" Attributwert in der XML-Politik:

<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="samplePolicyforJSON" RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-overrides" Version="1.0"> 
    <Target> 
     <AnyOf> 
     <AllOf> 
      <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> 
       <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"></AttributeDesignator> 
      </Match> 
     </AllOf> 
     </AnyOf> 
    </Target> 
    <Rule Effect="Permit" RuleId="permit"></Rule> 
</Policy> 

Getestet mit:

XACML Anfrage:

{ 
    "Request": { 
     "Action": { 
      "Attribute": [ 
       { 
        "AttributeId": "urn:oasis:names:tc:xacml:1.0:action:action-id", 
        "Value": "read" 
       } 
      ] 
     }, 
     "Resource": { 
      "Attribute": [ 
       { 
        "AttributeId": "urn:oasis:names:tc:xacml:1.0:resource:resource-id", 
        "Value": "http://127.0.0.1/service/very_secure/" 
       } 
      ] 
     } 
    } 
} 

XACML Antwort:

{ 
    "Response": [ 
    { 
     "Decision": "Permit", 
     "Status": { 
     "StatusCode": { 
      "Value": "urn:oasis:names:tc:xacml:1.0:status:ok" 
     } 
     } 
    } 
    ] 
} 

Und mit:

XACML Anfrage:

<Request xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" CombinedDecision="false" ReturnPolicyIdList="false"> 
    <Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource"> 
     <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" IncludeInResult="false"> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">http://localhost/secureAccess/resource</AttributeValue> 
     </Attribute> 
    </Attributes> 
    <Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action"> 
     <Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" IncludeInResult="false"> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue> 
     </Attribute> 
    </Attributes> 
</Request> 

XACML Antwort:

<Response xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"> 
    <Result> 
     <Decision>Permit</Decision> 
     <Status> 
      <StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:ok"/> 
     </Status> 
    </Result> 
</Response> 
+0

Tatsächlich ist der zusätzliche Speicherplatz nicht in meiner Richtlinie enthalten. Es ist nur der Fehler in meinem Beitrag. Ich schaffe es, das Problem zu lösen, indem ich den Server neu starte. Danke trotzdem. – user3444828

0

Wenn Sie alle Schritte richtig befolgt, sollte es funktionieren. Überprüfen Sie nach dem Hinzufügen der Richtlinie, ob die Richtlinie korrekt hinzugefügt wurde. z. Entfernen Sie unnötige Leerzeichen in der Richtlinie

Veröffentlichen Sie es in der PDP korrekt und versuchen Sie es. Sie können auch die "try" -Option im Richtlinienfenster in IS 5.3.0 ausprobieren. Verwenden Sie nur die XML-Anforderung, da sie nicht für JSON funktioniert.

Verwandte Themen