

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
xacmlとは何か
xacml とは eXtensible Access Control Markup Language の略で、ソフトウェアやウェブアプリケーションの「誰が何にアクセスできるか」を決める仕組みを定義する標準規格です。日本語では「拡張可能なアクセス制御言語」と言われます。この規格は組織やシステム間で一貫した権限管理を実現するために開発され、データの保護や機密情報の取り扱いを安全にするのに役立ちます。
実際にはウェブサービスや企業の情報システムで権限判断を外部に任せたい場合に使われます。xacml を使うと権限のルールを一元管理でき、アプリのコードを変更せずに権限を追加したり変更したりできます。
どういう仕組みか
xacml の基本的な構成は PDP、PEP、および Policy です。PDP は権限判断を行う機械、PEP はアプリ側の入口で権限を実際に適用する部分、Policy は「誰が何を許可するか」というルールの集まりです。
要求が来ると、PEP はユーザー名やリソース名、操作内容といった 属性 を PDP に渡します。PDP は受け取った属性に基づいて Policy を照合し、Permit か Deny を返します。最後に PEP がこの判断を実際の処理に反映します。ここで Obligations や Advice がある場合は追加の処理も実行されます。
基本用語の整理
以下はよく出てくる用語と簡単な説明です。
| 要素 | 説明 |
|---|---|
| PDP | Policy Decision Point。権限の判断を行う部品 |
| PEP | Policy Enforcement Point。判断結果を実際の処理に適用する部品 |
| Policy | 個々の権限ルール。誰が何を許可するかを定義する |
| PolicySet | 複数の Policy をまとめる枠組み |
| Attribute | アクセス要求時の情報。ユーザー名、役割、リソース名など |
| Obligations | 判断結果に付随する追加のアクション。ログ出力や監査など |
具体的な利用イメージ
想像してみましょう。ある企業のオンライン文書管理システムは「機密ファイルは管理者のみ、一般社員は閲覧不可」というルールを持っています。xacml を使うとこのルールを PDP に集約し、全てのアクセス試行は PEP が監視します。ユーザーが機密ファイルにアクセスしようとすると、属性 と 要求 が PDP へ送られ、適切な権限があるかどうかが判断されます。結果が Permit なら処理が進み、Deny ならアクセスは拒否されます。
導入のポイントと注意点
初心者がxacml を導入する際には、まず「どの資源に対して誰が何をできるべきか」という基本方針を明確にします。次に属性の定義を揃え、PDP が照合する Policy を段階的に作成します。実運用ではパフォーマンスや保守性を考慮し、権限の階層化やサブセット管理、監査ログの設計を忘れずに。
まとめ
xacml は複雑に見えるかもしれませんが、基本の考え方はとてもシンプルです。権限の判断を一か所で行い、どの要求にも一貫した判断を適用する仕組みを提供します。中学生にも理解できるよう簡単に言えば「誰が何にアクセスできるかを決めるルールを外部の機械に任せる方法」です。
xacmlの同意語
- XACML
- eXtensible Access Control Markup Languageの略称。アクセス制御ポリシーをXML形式で表現・評価する標準規格。OASISが策定。
- eXtensible Access Control Markup Language
- XACMLの正式名称。拡張可能なアクセス制御を表現するマークアップ言語。
- 拡張可能なアクセス制御マークアップ言語
- XACMLの日本語表記・解説。拡張可能なアクセス制御を表現するマークアップ言語。
- OASIS XACML
- XACMLの標準化を担当する団体OASISが関わる表現。XACMLの公式表記の一つ。
- XACML 3.0
- XACMLの主要バージョンの一つ。現代的な機能とより高度なポリシー表現を提供。
- XACML 2.0
- XACMLの旧版。2.0系の仕様。
- XACML規格
- XACML自体の公式規格・仕様を指す表現。
- XACMLポリシー言語
- XACMLを使ってポリシーを記述する言語。アクセス権のルールをXMLで表現。
- XACMLベースのアクセス制御ポリシー
- XACMLを基盤としたアクセス制御ポリシーの総称。
xacmlの対義語・反対語
- オープンアクセス
- 制限のないアクセス。XACMLのようなポリシーベースの制御を用いず、誰でも自由にアクセスできる状態。
- 全許可ポリシー
- 全てのリクエストを常に許可する、極端なアクセス許可のポリシー。
- デフォルト許可
- ポリシーが存在しない場合でもアクセスを許可するデフォルト設定。
- ハードコーディングアクセス制御
- 権限判定をアプリケーションコード内で実装する方式。ポリシーエンジンを介さない点がXACMLと対極。
- JSONベースのアクセス制御
- XACML(XMLベース)に対して、ポリシーをJSONで表現・適用するアプローチ。
- XML以外フォーマットのアクセス制御
- XMLベースのXACMLとは異なるデータフォーマットを用いる対比の概念。
- アクセス制御なし
- 特定の制御ルールが適用されず、自由アクセスの状態。
xacmlの共起語
- PDP
- アクセス要求を受け取り、ポリシーと属性情報を評価して許可・拒否の決定を返す、XACMLの中核となる判断エンジン。
- PEP
- ポリシー適用点。実際のアクセスを制御し、PDPの決定に従って許可/拒否を適用するシステムの入口。
- PAP
- ポリシー管理点。ポリシーの作成・管理・配布を担当する管理機能。
- PIP
- ポリシー情報点。属性情報をPDPへ提供し、評価に必要なデータを供給する役割。
- Policy
- ポリシー。アクセス許可/拒否の判断基準を定義するルールの集合。
- PolicySet
- ポリシーセット。複数のポリシーを階層的にまとめる上位構造。
- Rule
- ルール。特定の条件に対して許可/拒否を定義する最小単位。
- Target
- ターゲット。主体・資源・アクションの組み合わせを適用対象として定義する要素。
- Subject-Attribute
- 主体属性。ユーザーなどの『誰が』を表す属性。
- Resource-Attribute
- 資源属性。アクセス対象のリソースを表す属性。
- Action-Attribute
- アクション属性。実行する操作を表す属性。
- Environment-Attribute
- 環境属性。時刻・場所・IPなどの環境情報を表す属性。
- Obligation
- 義務。アクセス実行後に発生させる追加処理(ログ記録等)を定義する要素。
- Advice
- アドバイス。拒否時の補足情報など、結果に付随する助言情報。
- Decision
- 決定結果。Permit(許可)/Deny(拒否)/NotApplicable/Indeterminate のいずれか。
- Combining-Algorithm
- 組み合わせアルゴリズム。複数ポリシーの決定をどう統合するかの規則。
- DenyOverrides
- Deny Overridesアルゴリズム。拒否を優先して結論を出す規則。
- PermitOverrides
- Permit Overridesアルゴリズム。許可を優先して結論を出す規則。
- FirstApplicable
- First Applicableアルゴリズム。最初に適用可能なポリシーの決定を採用。
- OnlyOneApplicable
- Only One Applicableアルゴリズム。適用可能ポリシーが1つのみの場合に採用。
- XACML-3.0
- XACMLのバージョン3.0。新機能や拡張を含む仕様。
- XACML-2.0
- XACMLのバージョン2.0。古い世代の仕様。
- XML
- XMLベースのポリシー言語。XACMLの記述形式として広く用いられる。
- XACML-JSON-Profile
- XACMLのJSONプロファイル。JSON形式でリクエスト/レスポンス/ポリシーを扱う規定。
- Request
- リクエスト。PDPへ評価を依頼するアクセス要求の表現。
- Response
- レスポンス。PDPが返す評価結果と補足情報。
- AttributeValue
- 属性値。属性に割り当てられる具体的な値。
- NotApplicable
- NotApplicable。適用可能なポリシーがなく、決定が行われない状態。
- Indeterminate
- Indeterminate。評価中にエラーなどで決定が確定しない状態。
xacmlの関連用語
- XACML
- Extensible Access Control Markup Language の略。アクセス制御ポリシーを XML で表現し、PDP が評価して決定を返す、アクセス制御の標準仕様です。
- PDP
- Policy Decision Point。受け取ったリクエストを評価して、許可(Permit)・拒否(Deny)・適用外(NotApplicable) のいずれかを返す中核コンポーネントです。
- PEP
- Policy Enforcement Point。アプリケーションの入口で PDP の判断に従い、実際のアクセスを許可または拒否します。
- PAP
- Policy Administration Point。ポリシーの作成・管理を担う部分です。
- PIP
- Policy Information Point。外部情報源(属性)を PDP に提供します。
- Policy
- XACML の基本単位。ルールを組み合わせて、どのリクエストを許可するかを定義します。
- PolicySet
- 複数の Policy をまとめたポリシー集合です。大規模なアクセス制御でよく使われます。
- Rule
- Policy の中の最小の判断単位。対象、条件、そして効果(Permit/Deny)を持ちます。
- Target
- このルールやポリシーが適用されるリクエストを定義する部分です。
- Condition
- 追加の条件。属性値を使って判断を細かく絞り込みます。
- Obligation
- PDP の決定と同時に実行される処理の指示。必須ではない処理を表します。
- Advice
- Obligation と似ていますが、必須ではない補足情報として実行される指示です。
- Effect
- Permit(許可)または Deny(拒否)の二択を表します。
- Permit
- アクセスを許可します。
- Deny
- アクセスを拒否します。
- NotApplicable
- このポリシー・ルールは適用対象外で、他の判断を待つ状態です。
- Request
- PDP に送られるアクセス要求。ユーザー属性などの情報を含みます。
- Response
- PDP から返される決定結果。具体的には Permit/Deny/NotApplicable が含まれます。
- Attribute
- リクエストやポリシーで使われる情報の名前(例: userId, resourceId)。
- AttributeValue
- 属性の値。文字列、数値、日付などが含まれます。
- AttributeDesignator
- リクエスト内の属性を参照する設計要素。属性の位置を指示します。
- AttributeSelector
- XML などのツリーから属性を抽出する方法です。
- Function
- 比較・算術・文字列操作など、XACML で使われる関数の集合です。
- FunctionLibrary
- 使える関数の集合。XACML の仕様で定義されています。
- DataType
- XACML が扱うデータ型。例: string、boolean、integer、dateTime など。
- PolicyCombiningAlgorithm
- 複数のポリシーをどう組み合わせて最終結論を出すかのルール(例: deny-overrides、permit-overrides、first-applicable)。
- RuleCombiningAlgorithm
- 複数のルールをどう組み合わせて結論を出すかのルールです。
- XACML Profile
- 特定の用途のために定義された XACML の実装プロファイルです(例: 実装ガイドラインや制約を含む)。
- XACML 3.0
- XACML のバージョン 3.0。最新の主流仕様で、より高度な機能が追加されています。
- XACML 2.0
- XACML のバージョン 2.0。初期の主要バージョンのひとつです。



















