1

私は信じられないほど新しい人としてに取り組んでおり、いくつかのポリシーの作成に取り組んでいます。もちろん、私は問題に直面しています。通常、いくつかのprint.lnステートメントをJavaに投げて、コードがどこに到達しているか(または到達していないか)を把握し始めますが、OASISドキュメントには何も表示されません印刷またはデバッグ用の XACML の

それで、それを行う方法があるかどうか、またはポリシー/ルール評価で何かがどのように機能するか、またはその理由を理解するために投入できるものがあるかどうか疑問に思っています.

具体的な問題は、ポリシー ルールから許可を取得していることです。「PI」と同じように「P」を評価し、許可を返すようです。

    <Condition>
        <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of">
            <Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal" />
            <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PI</AttributeValue>
            <AttributeDesignator
                AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
                Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
                DataType="http://www.w3.org/2001/XMLSchema#string" MustBePresent="true" />
        </Apply>
    </Condition>

function:any-of と string-equal 関数が原因で、ここで真の条件が評価される可能性があると思いますが、よくわかりません。私はこれについて別の人と一緒に作業していますが、彼はそれが問題ではないと主張しているようですが、コード全体を解決する必要はありません。

しかし、特に最初に適用されるようなさまざまなアルゴリズムを実行するときに評価がどこに到達したかを知りたいので、印刷を行う方法があれば素晴らしいでしょう。

4

1 に答える 1

1

あなたが求めているものは、OASIS XACML 仕様とは何の関係もなく、すべてはあなたが使用しているエンジンと関係があります。ステートメント/トレースを印刷するようにBalanaに指示する必要があります。Axiomatics Policy Serverはその可能性を提供します。評価をシミュレートして、何が起こったのか、どのような結果が得られたのか、その理由を示すトレースを取得できます。

urn:oasis:names:tc:xacml:1.0:subject:subject-idあなたのスニペットは、 (フラグが true に設定されているため)に少なくとも 1 つMustBePresentの値があり、これらの値の 1 つが に等しくなければならない場合に true を返すことを示していPIます。

たとえば、次のポリシーがあるとします (これはあなたのものと同じですが、 aRuleと a で囲まれていPolicyます:

ALFA 記法 (ウィキペディア)

namespace example{

    import Attributes.*

    policy simpleCondition{
        apply firstApplicable
        rule simpleCondition{
            condition "PI"==subjectId
            permit
        }

    }
}

XACML 3.0 表記法

<?xml version="1.0" encoding="UTF-8"?>
 <!--This file was generated by the ALFA Plugin for Eclipse from Axiomatics AB (http://www.axiomatics.com). 
 Any modification to this file will be lost upon recompilation of the source ALFA file-->
<xacml3:Policy xmlns:xacml3="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
    PolicyId="http://axiomatics.com/alfa/identifier/example.simpleCondition"
    RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable"
    Version="1.0">
    <xacml3:Description />
    <xacml3:PolicyDefaults>
        <xacml3:XPathVersion>http://www.w3.org/TR/1999/REC-xpath-19991116</xacml3:XPathVersion>
    </xacml3:PolicyDefaults>
    <xacml3:Target />
    <xacml3:Rule 
            Effect="Permit"
            RuleId="http://axiomatics.com/alfa/identifier/example.simpleCondition.simpleCondition">
        <xacml3:Description />
        <xacml3:Target />
        <xacml3:Condition>
            <xacml3:Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:any-of">
                <xacml3:Function FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-equal"/>
                <xacml3:AttributeValue
                    DataType="http://www.w3.org/2001/XMLSchema#string">PI</xacml3:AttributeValue>
                <xacml3:AttributeDesignator 
                    AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id"
                    DataType="http://www.w3.org/2001/XMLSchema#string"
                    Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject"
                    MustBePresent="false"
                />
            </xacml3:Apply>
        </xacml3:Condition>
    </xacml3:Rule>
</xacml3:Policy>

Axiomatics Policy Administration Point (PAP) を使用したポリシーのテスト

XACML リクエストを作成して、ユース ケースをテストします。

空の XACML リクエスト

<xacml-ctx:Request ReturnPolicyIdList="true" CombinedDecision="false" xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="http://axiomatics.com/xacml/attribute-category/none" >
   </xacml-ctx:Attributes>
</xacml-ctx:Request>

フラグのため、このリクエストはIndeterminateMustBePresentにつながります。

サブジェクト ID が間違っている XACML リクエスト

<xacml-ctx:Request ReturnPolicyIdList="true" CombinedDecision="false" xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
   <xacml-ctx:Attributes Category="http://axiomatics.com/xacml/attribute-category/none" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" >
      <xacml-ctx:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" IncludeInResult="true">
         <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Not PI</xacml-ctx:AttributeValue>
      </xacml-ctx:Attribute>
   </xacml-ctx:Attributes>
</xacml-ctx:Request>

このリクエストはNotApplicableにつながります。

正しいサブジェクト ID、PI を含む XACML リクエスト

<xacml-ctx:Request ReturnPolicyIdList="true" CombinedDecision="false" xmlns:xacml-ctx="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
   <xacml-ctx:Attributes Category="http://axiomatics.com/xacml/attribute-category/none" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" >
   </xacml-ctx:Attributes>
   <xacml-ctx:Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" >
      <xacml-ctx:Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" IncludeInResult="true">
         <xacml-ctx:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">PI</xacml-ctx:AttributeValue>
      </xacml-ctx:Attribute>
   </xacml-ctx:Attributes>
</xacml-ctx:Request>

この要求はPermitにつながります。

これは、Axiomatics ポリシー管理ポイントで評価トレースがどのように見えるかです。

Axiomatics Policy Server でのポリシー シミュレーション

于 2015-07-15T07:36:23.777 に答える