1

次のようないくつかのポリシーを宣言したいと思います。

some one can visit anything under the img path, but img folders are scattered everwhere, so the attributevalue in the xacml policy may seem like this: "/rootpath/**XPATH_PART**/img/*".

この種のポリシーの書き方。

「XACML3.0コア仕様」、「マルチプロファイル」に目を通したところ、

Each Individual Decision Request SHALL be identical to the original request context with two exceptions: the “multiple:content-selector” attribute SHALL NOT be present and an added “content-selector” attribute value SHALL be an XPath expression that evaluates to a single node in the <Content> element

これは、ポリシー ファイルで、最初に言ったように AttributeValue で XPath を使用して複数のリソースを参照できないことを意味していると思いますよね?リクエストは、指定された属性 ID を持つリソースを要求する個々のリクエストに解決されるためです。

私が見逃した、または誤解した仕様に何かありますか? または、誰かが私が望むことを行うためのより良い方法を提案できますか?

リソースで正規表現を使用してそれができるかどうか疑問に思っています。対応する機能は urn:oasis:names:tc:xacml:1.0:function:string-regexp-match.

PS: 私は自分の会社の認証サーバーをセットアップしようとしています。でも、私の周りには誰も知らない。アクセス制御システムの設定について何か提案をいただければ幸いです。

4

1 に答える 1

1

私は Axiomatics の何人かの同僚と話をしましたが、結論として、XPath は必要なく、むしろ正規表現が必要であるということです。XACML は、URI データ型で機能する正規表現関数を提供します。これは anyURIRegexpMatch と呼ばれ、文字列 (正規表現) と、正規表現を適用する XACML 属性を受け取ります。true または false を返します。

ルール ターゲットは、ALFA ( Axiomatics Language for Authorization )では次のようになります。

policy matchResources{
    apply firstApplicable
    rule allow{
        target clause anyURIRegexpMatch("^https?://(?:[a-z\\-]+\\.)+[a-z]{2,6}(?:/[^/#?]+)+\\.(?:jpg|gif|png)$", resourceId)
        permit
    }
}

この他の例 (XACML 2.0) も参照してください: How do I apply XACML rul​​es to every child URI?

于 2014-12-03T19:57:54.020 に答える