OASIS規格解説
XACML(eXtensible Access Control Markup
Language)
(株)日本ユニテック
青木 秀起
XACMLとは、XML文書に対するアクセス権を設定するための仕様です。あるリソースに対して、「だれ」がどのような「権限」で「どこ」にアクセスできるのかを記述します。2003年2月にOASIS標準として承認されました。XACMLの特徴は、"20才以上のユーザ"とか、"ユーザ登録している者のみ"など、複雑な条件判断によるアクセス制御ができるということです。
(http://www.oasis-open.org/committees/xacml/)
XACMLのデータフロー・モデル
XACMLのデータフロー・モデルは図1のようになっています。
図1XACMLのデータフロー・モデル
①PAPはポリシーとポリシー・セットを作成してPDPに渡す。
②アクセス要求者がアクセス要求をPEPに送信する。
③PEPはそのアクセス要求をコンテキスト・ハンドラに渡す。コンテキスト・ハンドラはそれをPIPに照会する。
④PIPは、主体、リソース、環境についての属性を要求し、PIPはその属性を取得する。
⑤PIPは、要求された属性をコンテキスト・ハンドラに返す。
⑥必要なら、コンテキスト・ハンドラはリソースについての情報も取得する。
⑦コンテキスト・ハンドラはPDPに決定要求を送信する。PDPはポリシーを評価する。
⑧PDPは応答コンテキスト(許可か不許可か)をコンテキスト・ハンドラに返す。
⑨コンテキスト・ハンドラは応答コンテキストを変換してPEPに返す。
⑩PEPは責務を実行する。
⑪アクセスを許可する場合、PEPはリソースへのアクセスを許可する。許可しない場合、アクセスを拒否する。
XACMLコンテキスト
図1で、PDPとコンテキスト・ハンドラの間でやり取りされる正規化された要求/応答メッセージを「XACMLコンテキスト」と呼びます。
図2 XACMLコンテキスト
図2にあるとおり、PDPは、コンテキスト・ハンドラから送られた要求コンテキストを、あらかじめ登録されたポリシーと比較し、許可/不許可を示す応答コンテキストをコンテキスト・ハンドラに送信します。
アクセス制御ルール
使用されるポリシー言語モデルの主な構成要素は、ルール、ポリシー、ポリシー・セットです。ルールは、ポリシーの最も基本的な単位で、対象、結果、条件で構成されます。PDPは、対象のルールが条件に適合しているかを評価し、許可/不許可の結果を決定します。ポリシーは、PAPによってはまとめられた複数のルールのことでで、ポリシー・セットは複数のポリシーをまとめたものです。
図3 ポリシー言語モデル
最後に、XACMLポリシーの記述例を紹介しましょう。リスト1は、"unitec.comというeメール名を持つすべてのユーザはどのリソースに対しても動作を実行できる"ことを表現しています(名前空間等を省略し、簡略化してあります)。
<?xml version=1.0"?>
<Policy>
<Target>
<Subjects>
<AnySubject/>
</Subjects>
<Resources>
<AnyResource/>
</Resources>
<Actions>
<AnyAction/>
</Actions>
</Target>
<Rule RuleId= "ARule2"
Effect="Permit">
<Target>
<Subjects>
<Subject>
<SubjectMatch
MatchId="rfc822Name-match">
<SubjectAttributeDesignator
AttributeId="subject-id" DataType="rfc822Name"/>
<AttributeValue
DataType=" rfc822Name">unitec.com</AttributeValue>
</SubjectMatch>
</Subject>
</Subjects>
<Resources>
<AnyResource/>
</Resources>
<Actions>
<AnyAction/>
</Actions>
</Target>
</Rule>
</ Policy> |
リスト1.XACMLポリシーの記述例
まとめ
現在XACMLを実装している製品はJiffy XACML(jiffySoftware社)やXACML
Implementation(Sun社)などで、実装はあまり進んでいません。とはいえ、XACMLは柔軟なアクセス制限機能を有しており、医療情報の開示やオンライン売買契約など幅広く適用されることが期待されます。
関連サービス
標準化仕様の動向調査
最新動向を伝えるDXメールニュース
(無料)
|