6.0 DirXMLエンタイトルメントDTD

DirXMLエンタイトルメントは、概念的には名前付きフラグであり、特定のアクションが実行されるようにIdentity Managerドライバの環境設定を指定します。通常、このアクションは、接続システムのリソースに対するアクセスの許可に関連するものになります。このため、エンタイトルメントは、(役割ベースエンタイトルメントを実現するために)、次の3つの基本的なアクションに使用されてきました。

エンタイトルメントは、DirXML-Driverオブジェクトに含まれる、eDirectory DirXML-Entitlementオブジェクトで実現されます。DirXML-Entitlementオブジェクトを同じコンテナで包含することによって、エンタイトルメントと実装するIdentity Managerドライバの環境設定との対応関係を確立できます。DirXML-Entitlementオブジェクトの名前が、エンタイトルメントの名前になります。DirXML-EntitlementオブジェクトのXmlData属性には、ルート要素が<entitlement>のXMLドキュメントが格納されます。

エンタイトルメントで、eDirectoryオブジェクトへアクセスを許可したり取り消したりするには、補助クラスのDirXML-EntitlementRecipientと関連するDirXML-EntitlementRef属性をeDirectoryオブジェクトに追加します。DirXML-EntitlementRef属性は、SYN_PATH構文で記述され、「書き込み管理」が行われています。このパス構文の値の「volume」(DN)部分は、DirXML-Entitlementオブジェクトを参照します。この属性は書き込み管理されているため、eDirectoryオブジェクトのDirXML-EntitlementRef属性の値を設定するエージェントには、書き込み対象オブジェクトのDirXML-EntitlementRef属性に対する書き込みアクセス権が必要です。さらに、DirXML-EntitlementRef値のDNの部分から参照される、DirXML-EntitlementオブジェクトのACL属性に対する書き込みアクセス権が必要です。DirXML-EntitlementRef属性の「path」(文字列)部分には、ルート要素が<ref>のXMLドキュメントが格納されます。DirXML-EntitlementRef属性の「nameSpace」(整数)部分は、フラグを保持するためのビットマスクとして使用されます。32ビット整数のビット0は、このフラグ値として使用され、状態ビットとして認識されます。0は取り消し、1は許可を意味します。ビット1は、アップグレードプロセスによって許可されたエンタイトルメントを示すフラグとして使用され、アップグレードビットとして認識されます。1は、エンタイトルメントが以前の形式で前に許可されており、エンタイトルメントの状態に変化がないことを意味します。ビット2~31は、将来の使用のために予約されています。

Identity Managerドライバの環境設定によって、エンタイトルメントの許可または取り消しアクションが(正常または異常に)終了すると、結果がDirXML-EntitlementResult属性によってeDirectoryオブジェクトに書き込まれます。DirXML-EntitlementResultは、複数値のSYN_OCTET_STRINGであり、ルート要素が<result>のXMLドキュメントを格納します。

エンタイトルメントは、エンタイトルメントの許可または取り消しが実現されるように、Identity Managerドライバに特定のリソースを許可するよう指定する単なるフラグであるため、接続アプリケーションでリソースへのアクセス権の実際の許可または取り消しを処理するポリシーがドライバに必要です。DirXMLスクリプトでは、エンタイトルメントのポリシーの実装が明確にサポートされています。<if-entitlement>条件は、指定したエンタイトルメントが許可または変更されているかを判定するために使用します。<token-entitlement>、<token-added-entitlement>、および<token-removed-entitlement>トークンは、許可または取り消されたエンタイトルメントのリストの取得に使用します。<do-implement-entitlement>アクションは、エンタイトルメントを実装するポリシーアクションの指定に使用します。これにより、エンタイトルメントの結果をDirXML-EntitlementResultに自動的に記録させることができます。エンタイトルメントのトークンは、空のノードセットか、1つ以上の<entitlement-impl>要素を含むノードセットを返します。エンタイトルメントの情報の取得や、<do-implement-entitlement>に引数を渡すために使用することができます。

DirXML要素DTDのすべての要素のリストについては、「DirXMLエンタイトルメントDTDの要素」を参照してください。