XACML

XACML
パラダイム宣言型プログラミング
開発者構造化情報標準推進機構(OASIS)
初登場2001年4月16日; 24年前[1] (2001年4月16日
ライセンスオアシス
ファイル名拡張子.xml、.alfa
Webサイトwww.oasis-open.org
主要な実装
アキシオマティクス、AuthzForce
方言
アルファ(XACML)
影響を受けた
XMLSAML
影響を受けた
アルファ(XACML)

拡張アクセス制御マークアップ言語XACML)は、アクセス制御ポリシーを規定するためのXMLベースの標準マークアップ言語です。OASISによって発行されたこの標準は、宣言型の細粒度で属性ベースのアクセス制御ポリシー言語、アーキテクチャ、そしてポリシーで定義されたルールに従ってアクセス要求評価する方法を記述する処理モデルを定義しています。[2]

XACMLは、主に属性ベースのアクセス制御システムです。XACMLでは、属性(リソースにアクセスする主体、アクセス対象となるリソース、環境に関する情報)が、アクセスを許可するか否かを決定するための入力として機能します。[3] XACMLは、ロールベースのアクセス制御の実装にも使用できます[4]

XACMLでは、アクセス制御の決定はルールとして表現されます。各ルールは、特定のリクエストが承認されるかどうかを決定する一連の条件で構成されます。ルールがリクエストに適用可能であるにもかかわらず、ルール内の条件が評価されない場合、結果は不確定となります。ルールはポリシーにグループ化され、ポリシーセットはポリシーと、場合によっては他のポリシーセットを含みます。これらのポリシーセットには、特定のリクエストに対して評価されるべきかどうかを決定する単純な条件であるターゲットも含まれます。組み合わせアルゴリズムを使用することで、ルールとポリシーを様々な方法で組み合わせ、異なる結果を得ることができます。XACMLは、義務式とアドバイス式もサポートしています。義務式は、リクエストの処理中に実行されなければならないアクション(例えば、ログ記録など)を指定します。アドバイス式も同様ですが、無視することができます。[3]

XACMLはアクセス制御機能を複数のコンポーネントに分割します。アクセス制御が使用される各オペレーティング環境には、ポリシー適用ポイント(PEP)があり、認可を要求し、リソースへのアクセスを許可または拒否する機能を実装します。これらは、環境に依存しない中央のポリシー決定ポイント(PDP)を参照し、実際にアクセスを許可するかどうかを決定します。PDPは、ポリシー検索ポイント(PRP)に格納されたポリシーを参照します。ポリシーは、ポリシー管理ポイント(PAP)を通じて管理されます。[3]

バージョン3.0は2013年1月にOASISによって承認されました。[5]

歴史

バージョン1.0は2003年にOASIS 標準化団体によって承認されました。 [引用が必要]

バージョン2.0は、2005年2月1日にOASIS標準化団体によって承認されました。[引用が必要]

バージョン 3.0 は、2013 年 1 月に OASIS によって承認されました。

建築

用語

非規範的な用語(PAPを除くRFC 2904に準拠)

略語学期説明
PAPポリシー管理ポイントアクセス認可ポリシーを管理するポイント
PDP政策決定ポイントアクセス決定を発行する前に、認可ポリシーに照らしてアクセス要求を評価するポイント
ペップポリシー適用ポイントユーザのリソースへのアクセス要求を傍受し、アクセス決定を得るためにPDPに決定要求を行うポイント

(つまり、リソースへのアクセスが承認または拒否される)、そして受け取った決定に基づいて行動する

ピップ政策情報ポイント属性値のソースとして機能するシステムエンティティ(リソース、サブジェクト、環境など)
PRPポリシー取得ポイントXACML アクセス認証ポリシーが保存されるポイント。通常はデータベースまたはファイルシステムです。

流れ

この画像は、XACML アーキテクチャとサンプルの認証フローを示しています。
この画像は、XACML アーキテクチャとサンプルの認証フローを示しています。
  1. ユーザーがリクエストを送信すると、ポリシー適用ポイント(PEP)によってインターセプトされます。
  2. PEPはリクエストをXACML認証リクエストに変換する
  3. PEPは認可要求をポリシー決定ポイント(PDP)に転送します。
  4. PDPは、設定されているポリシーに基づいて認可リクエストを評価します。ポリシーはポリシー取得ポイント(PRP)を介して取得され、ポリシー管理ポイント(PAP)によって管理されます。必要に応じて、基盤となるポリシー情報ポイント(PIP)から属性値も取得します。
  5. PDPは決定(許可/拒否/該当なし/不確定)に達し、それをPEPに返します。

政策要素

構造要素

XACML は 3 つのレベルの要素で構成されています。

  • ポリシーセット、
  • ポリシー、
  • ルール。

ポリシーセットには、任意の数のポリシー要素とポリシーセット要素を含めることができます。ポリシーには、任意の数のルール要素を含めることができます。

属性とカテゴリ

ポリシー、ポリシー セット、ルール、リクエストはすべて、サブジェクト、リソース、環境、アクションを使用します。

  • サブジェクト要素はアクセスを要求するエンティティです。サブジェクトには1つ以上の属性があります。
  • リソース要素は、データ、サービス、またはシステムコンポーネントです。リソースには1つ以上の属性があります。
  • アクション要素は、リソースに対して要求されるアクセスの種類を定義します。アクションには1つ以上の属性があります。
  • 環境要素はオプションで追加情報を提供できます。

ターゲット

XACMLはターゲットを提供します。これは基本的に、ポリシーセット、ポリシー、またはルールを特定のリクエストに適用するために満たさなければならない、サブジェクト、リソース、およびアクションに関する簡略化された条件のセットです。特定のリクエストに適用可能なポリシーまたはポリシーセットが見つかると、そのルールが評価され、アクセス決定とレスポンスが決定されます。

適用性を確認する手段であることに加え、ターゲット情報はポリシーをインデックス化する手段も提供します。これは、多数のポリシーを保存し、適用可能なポリシーを素早く絞り込む必要がある場合に役立ちます。サービスへのアクセス要求が到着すると、ポリシーはターゲット制約に基づいてインデックス化されているため、PDPはこの要求に適用される可能性のあるポリシーをどこで検索すればよいかを認識します。なお、ターゲットは、すべての要求に適用されるように指定することもできます。

ポリシー セット、ポリシー、ルールにはすべてターゲット要素を含めることができます。

条件

条件はルール内にのみ存在します。条件は本質的にターゲットの高度な形式であり、より幅広い関数を使用できます。さらに重要なのは、subject-id==doctor-idのように、2つ以上の属性を比較できることです。条件を使用することで、職務分離チェックや関係性に基づくアクセス制御を実装できます。

義務とアドバイス

XACMLでは、「義務」と呼ばれる概念が用いられます。義務とは、ポリシー決定ポイント(PDP)からポリシー施行ポイント(PEP)への、アクセスが承認される前または後に実行されなければならない指示です。PEPがこの指示を遵守できない場合、承認されたアクセスは実行されないか、あるいは実行されないかのどちらかになります。義務の拡張により、形式的な要件とポリシーの施行との間のギャップが解消されます。義務の例は以下のようになります。

アクセス制御ルール: 属性 patientID=x を持つリソース MedicalJournal へのアクセスを許可する 件名が患者の指定医師と一致する場合 そしてアクションが読み取られる 義務をもって 許可時: doLog_Inform(患者ID, 件名, 時間) 拒否時: doLog_UnauthorizedLogin(患者ID、件名、時間)

XACMLの義務は、アクセス制御ルールとして実装するのが難しい形式的な要件(例えば否認防止など)を満たすための効果的な手段となります。さらに、形式的な要件は、個別の機能ではなく義務としてアクセス制御ポリシーの一部となるため、ポリシーの一貫性が保たれ、IT環境の集中化が容易になります。

義務は、「ガラスを割る」シナリオや信頼の昇格(「2 要素認証なしでは 1,000 ドルを送金できません - 2FA ページへのリンクはこちらです」)に使用できます。

XACML は、義務に加えて、義務と同一のアドバイスもサポートしますが、PEP にはアドバイスを実施する義務がないという違いがあります (これが名前の由来です)。

アルゴリズムの組み合わせ

XACMLにおいて、互いに矛盾する2つのルール(またはポリシー)がある場合、どうなるでしょうか?例えば、最初のルールではマネージャーはドキュメントを閲覧できると定められており、2つ目のルールでは誰も午前9時までは作業できないと定められているとします。もしリクエストがアリスが午前8時にドキュメントを閲覧しようとするものだったらどうなるでしょうか?どちらのルールが優先されるでしょうか?これは、組み合わせアルゴリズムが教えてくれることです。アルゴリズムは競合の解決に役立ちます。

XACMLは、<Policy>要素または<PolicySet>要素のRuleCombiningAlgId属性またはPolicyCombiningAlgId属性によって識別される複数の結合アルゴリズムを定義しています。ルール結合アルゴリズムは、一連のルールの個々の評価結果に基づいてアクセス決定に至る手順を定義します。同様に、ポリシー結合アルゴリズムは、一連のポリシーの個々の評価結果に基づいてアクセス決定に至る手順を定義します。

機能

XACML は、属性を他の属性や値と操作および比較するための多数の関数 (約 300 個) を定義します。

  • 等式、不等式、その他のマッチング関数
  • 算術関数
  • 文字列関数
  • 論理関数(AND、OR、NOT)
  • セット関数とバッグ関数
  • 高階関数
  • 正規表現関数
  • XPath関数

関数とその識別子は標準規格で完全に説明されています。関数は型固有であり、例えば文字列の等価性を判断する関数と整数の等価性を判断する関数が異なります。

等式、不等式、その他のマッチング関数

算術関数

これらの機能の正式な定義については、標準を参照してください。

  • 加算(倍精度と整数)
  • 減算(倍精度と整数)
  • 掛け算(倍精度と整数)
  • 割り算(倍精度と整数)
  • mod (double と integer)
  • abs(倍精度浮動小数点数と整数)
  • ラウンド

文字列関数

これらの機能の正式な定義については、標準を参照してください。

  • 文字列連結
  • 文字列の始まり
  • 文字列の末尾
  • 文字列を含む
  • 文字列部分文字列

論理関数(AND、OR、NOT)

セット関数とバッグ関数

正規表現関数

XPath関数

高階関数

高階関数のリストは以下の通りです。正式な定義については、XACML標準を参照してください。

  • anyOf (urn:oasis:names:tc:xacml:3.0:function:any-of)
    • パラメータ: anyAtomicOrBag anyAtomicOrBag*
    • 戻り値: ブール値
    • 説明: この関数は、ブール関数と2つ以上の属性値またはバッグを受け取ります。高階関数は、ブール関数を残りのパラメータに適用します。
    • 例: anyOf(function[stringEqual], allowedRoles, stringOneAndOnly(role))(a) ロールが単一値であり、(b) 単一値属性バッグ role 内の値と等しい値が属性バッグ allowedRoles 内に少なくとも 1 つある場合は true を返します。
  • allOf (urn:oasis:names:tc:xacml:3.0:function:all-of)
    • パラメータ: anyAtomicOrBag anyAtomicOrBag*
    • 戻り値: ブール値
  • anyOfAny (urn:oasis:names:tc:xacml:3.0:function:any-of-any)
    • パラメータ: anyAtomicOrBag anyAtomicOrBag*
    • 戻り値: ブール値
  • allOfAny (urn:oasis:names:tc:xacml:1.0:function:all-of-any)
    • パラメータ: bag[anyAtomic] bag[anyAtomic]
    • 戻り値: ブール値
  • anyOfAll (urn:oasis:names:tc:xacml:1.0:function:any-of-all)
    • パラメータ: bag[anyAtomic] bag[anyAtomic]
    • 戻り値: ブール値
  • allOfAll (urn:oasis:names:tc:xacml:1.0:function:all-of-all)
    • パラメータ: bag[anyAtomic] bag[anyAtomic]
    • 戻り値: ブール値
  • マップ (urn:oasis:names:tc:xacml:1.0:function:map)
    • パラメータ: anyAtomicOrBag anyAtomicOrBag*
    • 戻り値: bag[anyAtomic]

XACML 3.0

スキーマ

http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd

データ型

  • http://www.w3.org/2001/XMLSchema#anyURI
  • http://www.w3.org/2001/XMLSchema#base64Binary
  • http://www.w3.org/2001/XMLSchema#ブール値
  • http://www.w3.org/2001/XMLSchema#date
  • http://www.w3.org/2001/XMLSchema#dateTime
  • http://www.w3.org/2001/XMLSchema#dayTimeDuration
  • http://www.w3.org/2001/XMLSchema#double
  • http://www.w3.org/2001/XMLSchema#hexBinary
  • http://www.w3.org/2001/XMLSchema#integer
  • http://www.w3.org/2001/XMLSchema#文字列
  • http://www.w3.org/2001/XMLSchema#time
  • http://www.w3.org/2001/XMLSchema#年月期間
  • urn:oasis:names:tc:xacml:1.0:データ型:rfc822Name
  • urn:oasis:names:tc:xacml:1.0:データ型:x500Name
  • urn:oasis:names:tc:xacml:2.0:データ型:dnsName
  • urn:oasis:names:tc:xacml:2.0:データ型:ipアドレス
  • urn:oasis:names:tc:xacml:3.0:データ型:xpathExpression

XACML 3.0の新機能

新しいプロフィール

XACML 3.0 では、管理委任、XACML の JSON プロファイル (要求/応答)、XACML の REST プロファイル、XACML の多重決定プロファイルなどが導入されています。

委任

委任の実装はXACML 3.0で新しく追加されました。委任メカニズムは、アクセスポリシーの分散管理をサポートするために使用されます。これにより、権限(委任者)は、ルートポリシーを変更することなく、自身の権限または他のユーザーの権限の全部または一部を別のユーザー(委任先)に委任できます。

これは、この委任モデルでは委任権限とアクセス権が分離されているためです。これらは管理制御ポリシーと呼ばれます。アクセス制御と管理ポリシーは、次のシナリオのように連携して機能します。

複数の企業によるパートナーシップを通じて提供される多くのサービスは、アクセス制御システムによって保護されています。このシステムは、リソースを保護し、委任を可能にするために、以下の中心的なルールを実装しています。

アクセス制御ルール: アクセスを許可する 属性WebServiceを持つリソースへ 対象が従業員で、アクションが読み取りまたは書き込みの場合。 管理制御ルール: アクセス制御ルール #1 の委任を許可する 属性 Consultant を持つサブジェクトに。 条件: 委任は6ヶ月以内に期限切れとなる。 リソースには属性 StrictlyInternal があってはなりません。 

(属性は、LDAP カタログなどの外部ソースから取得できます。)

コンサルタントが企業に入社すると、コンサルタントの上司がローカルで委任を発行し、コンサルタントがシステムに直接アクセスすることを許可することができます。

委任者 (このシナリオでは監督者) は、コンサルタントに対して限定されたアクセス権のセットのみを委任する権限を持つ場合があります。

その他の機能

XACML 3.0 のその他の新機能については、http://www.webfarmr.eu/2010/07/enhancements-and-new-features-in-xacml-3-axiomatics/をご覧ください。

XACML TC は、ここで変更点のリストも公開しています: http://wiki.oasis-open.org/xacml/DifferencesBetweenXACML2.0AndXACML3.0

サンプルポリシー

XACMLにおける日付と時刻に基づく認証

このルールは、「使用したら失う」というアクセス制御パラダイムを実装します。ユーザーが30日間ログインしない場合、アクセスが失われます。

擬似コード: currentDateTime > lastLogin + 30 日の場合は拒否

<Rule RuleId="f6637b3f-3690-4cce-989c-2ce9c053d6fa" Effect="Deny" >  <Description>使用するか失効するか: このポリシーは、lastLogin が今日の日付から 30 日以上離れている場合にアクセスを拒否します</Description>  <Target/>  <Condition>  <Apply FunctionId=" urn:oasis:names:tc:xacml:1.0:function:any-of " >  <Function FunctionId=" urn:oasis:names:tc:xacml:1.0:function:dateTime-greater-than " />  <Apply FunctionId=" urn:oasis:names:tc:xacml:3.0:function:dateTime-add-dayTimeDuration " >  <Apply FunctionId=" urn:oasis:names:tc:xacml:1.0:function:dateTime-one-and-only " >  <AttributeDesignator	Category=" urn:oasis:names:tc:xacml:1.0:subject-category:access-subject "	属性ID="com.acme.user.lastLogin"	データ型=" http://www.w3.org/2001/XMLSchema#dateTime " MustBePresent="false" />  </Apply>  <AttributeValueデータ型=" http://www.w3.org/2001/XMLSchema#dayTimeDuration " > P30D </AttributeValue>  </Apply>  <AttributeDesignator	カテゴリ=" urn:oasis:names:tc:xacml:3.0:attribute-category:environment "	属性ID=" urn:oasis:names:tc:xacml:1.0:environment:current-dateTime "	データ型=" http://www.w3.org/2001/XMLSchema#dateTime " MustBePresent="false" /> </ 適用> </条件>  </ルール >

XACMLにおける時間ベースの認証

このルールは、現在の時刻が午前 9 時より大きく午後 5 時までの場合にアクセスを許可します。

<Rule RuleId="c01d7519-be21-4985-88d8-10941f44590a" Effect="Permit" >  <Description> 9時から5時までの時間であれば許可する</Description>  <Target>  <AnyOf>  <AllOf>  <Match MatchId=" urn:oasis:names:tc:xacml:1.0:function:time-greater-than " >  <AttributeValue DataType=" http://www.w3.org/2001/XMLSchema#time " > 09:00:00 </AttributeValue>  <AttributeDesignator	Category=" urn:oasis:names:tc:xacml:3.0:attribute-category:environment "	属性ID=" urn:oasis:names:tc:xacml:1.0:environment:current-time "	出席が必要="false"	データ型=" http://www.w3.org/2001/XMLSchema#time " />  </Match>  </AllOf>  </AnyOf>  <AnyOf>  <AllOf>  <Match MatchId=" urn:oasis:names:tc:xacml:1.0:function:time-less-than " >  <AttributeValueデータ型=" http://www.w3.org/2001/XMLSchema#time " > 17:00:00 </AttributeValue>  <AttributeDesignator	カテゴリ=" urn:oasis:names:tc:xacml:3.0:attribute-category:environment "	属性ID=" urn:oasis:names:tc:xacml:1.0:environment:current-time "	出席が必要="false"	データ型=" http://www.w3.org/2001/XMLSchema#time " /> <  /一致>  </すべて>  </任意> </ ターゲット>  </ルール>

サンプルリクエストとレスポンス

XACML 3.0 リクエスト

<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:3.0:attribute-category:action " >  <xacml-ctx:Attribute AttributeId="actionId" IncludeInResult="true" >  <xacml-ctx:AttributeValue DataType=" http://www.w3.org/2001/XMLSchema#string " >ビュー</xacml-ctx:AttributeValue>  </xacml-ctx:Attribute>  </xacml-ctx:Attributes>  <xacml-ctx:Attributes Category=" urn:oasis:names:tc:xacml:3.0:attribute-category:resource " >  <xacml-ctx:Attribute AttributeId="resource-id" IncludeInResult="true" >  <xacml-ctx:AttributeValue DataType=" http://www.w3.org/2001/XMLSchema#string " > doc#123 </xacml-ctx:AttributeValue>  </xacml-ctx:Attribute>  </xacml-ctx:Attributes>  <xacml-ctx:Attributes Category=" urn:oasis:names:tc:xacml:1.0:subject-category:access-subject " >  <xacml-ctx:Attribute AttributeId="user.identifier" IncludeInResult="true" >  <xacml-ctx:AttributeValue DataType=" http://www.w3.org/2001/XMLSchema#string " >アリス</xacml-ctx:AttributeValue>  </xacml-ctx:Attribute>  </xacml-ctx:Attributes>  </xacml-ctx:Request>

XACML 3.0 の応答

XACML 3.0 サンプルレスポンス

<xacml-ctx:Response xmlns:xacml-ctx=" urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 " >  <xacml-ctx:Result>  <xacml-ctx:Decision>該当なし</xacml-ctx:Decision>  <xacml-ctx:Status>  <xacml-ctx:StatusCode Value=" urn:oasis:names:tc:xacml:1.0:status:ok " />  </xacml-ctx:Status>  </xacml-ctx:Result> </xacml-ctx:Response>

XACML 3.0 義務を伴うサンプル応答

以下には義務ブロックが含まれています。義務とは、決定フローを強化するために決定とともに返されるステートメントです。この例では、PEPはアクセスが許可されたことを記録する必要があります。

<xacml-ctx:Response xmlns:xacml-ctx=" urn:oasis:names:tc:xacml:3.0:core:schema:wd-17 " >  <xacml-ctx:Result>  <xacml-ctx:Decision>許可</xacml-ctx:Decision>  <xacml-ctx:Status>  <xacml-ctx:StatusCode Value=" urn:oasis:names:tc:xacml:1.0:status:ok " />  </xacml-ctx:Status>  <xacml-ctx:Obligations>  <xacml-ctx:Obligation ObligationId="logAccess" >  </xacml-ctx:Obligation>  </xacml-ctx:Obligations>  <xacml-ctx:PolicyIdentifierList>  <xacml-ctx:PolicyIdReference Version="1.0" > http://www.axiomatics.com/automatic-unique-id/18a9eae9-c92b-4087-b2ac-c5a33d7ff477 </xacml-ctx:PolicyIdReference>  </xacml-ctx:PolicyIdentifierList>  </xacml-ctx:Result>  </xacml-ctx:Response>

XACML 3.0 の多重決定プロファイル

デフォルトでは、PDPは一度に1つのリクエスト(例:「アリスはアイテム#1を閲覧できますか?」)を処理します。PDPは1つの決定で応答します。しかし、場合によっては複数のリクエストを一度に送信する必要があります。例:「アリスはアイテム#1、#2、#3を閲覧/編集/削除できますか?」。XACMLの複数決定プロファイルは、このようなユースケースを可能にします。PDPは通常、すべての組み合わせの積を計算します。つまり、前述の例では、1つの応答で1 x 3 x 3 = 9つの決定が返されます。

複数決定プロファイルのサンプル JSON リクエスト

MDPを有効にするには、単一のオブジェクト(または単一のオブジェクト)の配列ではなく、任意のカテゴリのオブジェクトの配列を送信します。例えば、AccessSubjectはオブジェクトですが、Resourceはオブジェクトの配列です。後者は、このプロファイルをサポートするPDPでMDPプロセスをトリガーします。また、IncludeInResult属性の使用にも注意してください。この属性は、PDPにXACML属性とその値をレスポンスで返すように指示し、決定を関連する属性値と関連付けられるようにします。

{ "リクエスト" : { "ReturnPolicyIdList" : true , "AccessSubject" : { "属性" : [{ "AttributeId" : "com.acme.user.username", "値" : "Alice" }] }, 「リソース」 : [{ 「属性」 : [{ 「属性ID」 : 「com.acme.objectType」、 「値」 : 「レコード」 }, { 「属性ID」 : 「com.acme.record.recordId」、 「値」 : 「123」、 「IncludeInResult」 : true }] },{ 「属性」 : [{ 「属性ID」 :「com.acme.objectType」、 「値」 :「レコード」 }, { 「属性ID」 : 「com.acme.record.recordId」、 「値」 : 「124」、 「IncludeInResult」 : true }] },{ 「属性」 : [{ 「属性ID」 :「com.acme.objectType」、 「値」 :「レコード」 }, { 「属性ID」 : 「com.acme.record.recordId」、 「値」 : 「125」、 「IncludeInResult」 : true }] }], 「アクション」 : [{ 「属性」 : [{ 「属性ID」 : "com.acme.action", 「値」 : "view", 「IncludeInResult」 : true }] },{ 「属性」 : [{ 「属性ID」 :「com.acme.action」、 「値」 :「編集」、 「IncludeInResult」 : true }] },{ 「属性」 : [{ 「属性ID」 :「com.acme.action」、 「値」 :「削除」、 「IncludeInResult」 : true }] }] }}

複数決定プロファイルのサンプル JSON レスポンス

{ "応答": [ { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「3」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「125」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「view」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「2」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「124」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「view」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「123」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「edit」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : { 「ID」 : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", 「バージョン」 : "1" }, 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「123」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「delete」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : { 「ID」 : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", 「バージョン」 : "1" }, 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「3」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「125」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「delete」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「3」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「125」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「edit」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「2」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「124」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「delete」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「123」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「view」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : { 「ID」 : "c6b75be8-f3cb-4bda-9b63-812a1f7e5fae", 「バージョン」 : "1" }, 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } }, { 「決定」 :「拒否」、 「ステータス」 : { 「ステータスコード」 : { 「値」 :「urn:oasis:names:tc:xacml:1.0:status:ok } }, 「AssociatedAdvice」 : { 「Id」 : 「com.acme.message」、 「AttributeAssignment」 : [ { "AttributeId" : "com.acme.messageContent", "Value" : "アクセスが拒否されました - 権限が不十分です。", "Category" : " urn:oasis:names:tc:xacml:3.0:attribute-category:environment ", "DataType" : " http://www.w3.org/2001/XMLSchema#string " }, { 「属性ID」 : 「com.acme.user.clearance」、 「値」 : 「1」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:1.0:subject-category:access-subject」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer }, { 「属性ID」 : 「com.acme.record.classification」、 「値」 : 「2」、 「カテゴリ」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」、 「データ型」 : 「http://www.w3.org/2001/XMLSchema#integer } ] }, 「カテゴリー」 : [ { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:resource」, 「属性」 : { 「属性ID」 : 「com.acme.record.recordId」, 「値」 : 「124」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } }, { 「カテゴリーID」 : 「urn:oasis:names:tc:xacml:3.0:attribute-category:action」, 「属性」 : { 「属性ID」 : 「com.acme.action」, 「値」 : 「edit」, 「データ型」 : 「http://www.w3.org/2001/XMLSchema#string } } ], 「ポリシー識別子リスト」 : { 「ポリシーID参照」 : [ { 「ID」 : 「311a93c0-6e4c-47a0-8e05-76feb39f25e0」、 「バージョン」 : 「1」 }, { 「ID」 : 「c6b75be8-f3cb-4bda-9b63-812a1f7e5fae」、 「バージョン」 : 「1」 } ], 「ポリシーセットID参照」 : [ { 「ID」 : 「1016337f-f5f8-4ed4-bd4e-9a2be01fa211」、 「バージョン」 : 「1」 }, { 「ID」 : 「http://www.axiomatics.com/automatic-unique-id/5cc13395-20bd-48b3-a56b-68b1c26c3e54」、 「バージョン」 : 「1.0」 } ] } } ]}

開発者向けオリエンテーション

2013年と2014年、XACML技術委員会は、開発者の統合を容易にするための新しいプロファイルの設計に注力しました。これには以下が含まれます。

  • EMCのRemon Sinnemaが書いたXACMLのRESTプロファイル
  • AxiomaticsのDavid Brossardが書いたXACMLのJSONプロファイル
  • Axiomatics の Pablo Giambiagi、Srijith Nair、David Brossard によって書かれた XACML のALFAプロファイル

これら3つのプロファイルはすべて、カリフォルニア州モントレーで開催されたCloud Identity Summit 2014で紹介されました。これらのプロファイルを使用することで、きめ細かな認証をアプリケーションに統合することがはるかに容易になります。

XACMLのALFAプロファイル

ALFAはAbbreviated Language for Authorization(認可のための略語)の略です。ポリシーベースのアクセス制御ポリシーを実装するための軽量な構文です。例についてはメイン記事をご覧ください。

XACML の JSON プロファイル

XACML の JSON プロファイルは、PEP と PDP 間の統合を簡素化します。

サンプルJSONリクエスト

{ "リクエスト" : { "アクセス対象" : { "属性" : [ { 「属性ID」 : 「com.acme.user.employeeId」、 「値」 : 「Alice」 } ] }, 「リソース」 : { 「属性」 : [ { 「属性ID」 : 「com.acme.record.recordId」、 「値」 : 「123」 }, { 「属性ID」 : 「com.acme.object.objectType」、 「値」 : 「レコード」 } ] }, 「アクション」 : { 「属性」 : [ { 「属性ID」 : 「com.acme.action.actionId」、 「値」 : 「view」 } ] }, 「環境」 : { 「属性」 : [] } } }

サンプルJSONレスポンス

{ "レスポンス"  : { "決定"  : "許可", "ステータス"  : { "ステータスコード"  : { "値"  : " urn:oasis:names:tc:xacml:1.0:status:ok " } } } }

XACMLおよびその他の標準

XACMLとオープンポリシーエージェント

XACMLは、ほぼ完全にXMLXSLTに基づいたポリシー定義言語であり、OASISオープン仕様で定義されています。XACML仕様は、ポリシー決定ポイント(PDP)の設計や実装についてはカバーしておらず、PDPが使用するポリシー言語のみをカバーしています。多くの独自仕様およびオープンソースのPDPは、ポリシー定義言語としてXACMLを使用しています。

Open Policy Agent (OPA) は、オープンソースのポリシー決定ポイント (PDP) 実装であり、ポリシー言語を解釈してポリシー決定を行うことができます。OPA は、XACML 仕様をサポートする PDP 実装と同様に、ポリシー決定が必要なあらゆるシナリオで使用できる汎用 PDP 実装です。

OPA のポリシー定義言語は (Rego) であり、これは Datalog に基づいた JSON ベースのチューリング不完全な言語です。

XACML で記述されたポリシーは Rego に変換でき、その逆も可能です。

XACML と SAML

2つの企業がSAMLと2つのセキュリティトークンサービス(STS)を使用して連携し、信頼の輪を確立する、企業間連携の例です。この図では、SAMLはID交換と仮想化に使用されています。XACMLはサーバー側で使用され、アプリケーション機能へのアクセス(機能アクセス制御)と、その背後にあるデータへのアクセス(データアクセス制御)の可否を判断します。
2つの企業がSAMLと2つのセキュリティトークンサービス(STS)を使用して連携し、信頼の輪を確立する、企業間連携の例です。この図では、SAMLはID交換と仮想化に使用されています。XACMLはサーバー側で使用され、アプリケーション機能へのアクセス(機能アクセス制御)と、その背後にあるデータへのアクセス(データアクセス制御)の可否を判断します。

SAMLは、認証に使用されるアイデンティティSSOおよびフェデレーション標準です。SA​​MLは、異なるアプリケーション間で共通のアイデンティティトークン形式として使用されます。SAMLとXACMLはどちらもOASISによって定義されています。SAMLとXACMLは相互運用性を考慮して設計されており、SAMLはアイデンティティ情報/仮想アイデンティティの伝送に使用され、XACMLはポリシーを通じてアクセス制御ロジックを駆動するために使用されます。

XACMLとOAuth

OAuth 2.0は認可標準と考えられています。ただし、その起源、目的、そして応用範囲はXACMLとは異なります。OAuthの特徴は以下のとおりです。

  • 委任アクセス制御:ユーザーである私は、自分が所有するリソースへのアクセスを他のユーザーまたはサービスに委任します。例えば、OAuthを介して、Twitter(サービス)に私のFacebookウォール(リソース)への投稿権限を付与します。
  • パスワードアンチパターンへの対処。従来のレガシーモデルでは、2つのサービスを統合する場合、サービスBにサービスAのユーザー認証情報を提供し、サービスBがサービスAでユーザーになりすます必要があります。もちろん、これには多くのリスクが伴います。OAuthを使用すると、これらのパターンに伴う問題が解消され、ユーザーはサービスBがサービスAでユーザーに代わって実行できることを制御できるようになります。
  • HTTPベースのサービス/リソース
  • 所有者(ユーザー)の承認の管理

XACMLは、ユーザー承認、委任アクセス、パスワード管理などの処理は行いません。XACMLは、以下の機能のみを提供します。

  • 前述のポリシー決定ポイント (PDP) とポリシー適用ポイント (PEP) の概念を備えたアクセス制御アーキテクチャ。
  • OAuth 経由で処理/定義された同意を使用できるポリシーを含む、幅広いアクセス制御ポリシーを表現するためのポリシー言語。

XACML と OAuth を組み合わせることで、より包括的な認証アプローチを実現できます。

参照

参考文献

  1. ^ Best, Karl (2001年4月16日). 「OASIS TC 参加募集:XACML」. OASIS . 2016年10月31日閲覧
  2. ^ "pure-xacml". www.axiomatics.com . 2016年4月27日閲覧。
  3. ^ abc Ferraiolo, David; Chandramouli, Ramaswamy; Hu, Vincent; Kuhn, Rick (2016年10月). データサービスアプリケーションにおける属性ベースアクセス制御(ABAC)標準の比較(レポート).米国国立標準技術研究所. doi : 10.6028/NIST.SP.800-178 .
  4. ^ 例えば、 De la Rosa Algarín, Alberto、Ziminski, Timoteus B.、Demurjian 1, Steven A.、Kuykendall, Robert、Rivera Sánchez, Yaira K. (2013). 「XMLセキュリティフレームワークにおけるXACMLロールベースセキュリティポリシーの定義と適用」 Proceedings of the 9th International Conference on Web Information Systems and Technologies. doi : 10.5220/0004366200160025 .{{cite conference}}: CS1 maint: 数値名: 著者リスト (リンク)
  5. ^ eXtensible Access Control Markup Language (XACML) V3.0 が OASIS 標準として承認されました。eXtensible Access Control Markup Language (XACML) V3.0 が OASIS 標準として承認されました。
  • 拡張アクセス制御マークアップ言語 2006年9月24日アーカイブWayback Machine
  • OASIS XACML委員会のウェブサイト
  • OASIS、IBMの2つのソフトウェア特許に関する問題を宣言
「https://en.wikipedia.org/w/index.php?title=XACML&oldid=1306190220」から取得