3.3 ポリシーの動作のしくみ

高度なレベルにおいては、ポリシーは、Identity Managerが更新を送受信する方法をカスタマイズできるようにするルールの集合です。ドライバは接続システムから識別ボールトに変更内容を送信します。識別ボールトでは、データを操作して目的の結果を得るためにポリシーが使用されます。

3.3.1 変更の検出と識別ボールトへの変更の送信

ドライバを作成すると、ドライバを展開している企業が使用する可能性のあるすべての情報を同期するための機能を組み込もうとします。開発者は、接続システム内で関連する変更を検出し、それを識別ボールトに送信するようにドライバを作成します。

変更内容は、Identity Managerの仕様に応じた形式でXMLドキュメントに格納されます。次に、このようなXMLドキュメントの抜粋を示します。

<nds dtdversion="2.0" ndsversion="8.7.3">
<source>
   <product version="2.0">DirXML</product>
   <contact>Novell, Inc.</contact>
</source>

<input>
   <add class-name="User" event-id="0" src-dn="\ACME\Sales\Smith"
   src-entry-id="33071">
      <add-attr attr-name="Surname">
         <value timestamp="1040071990#3" type="string">Smith</value>
      </add-attr>
      <add-attr attr-name="Telephone Number">
         <value timestamp="1040072034#1" type="teleNumber">111-1111</value>
      </add-attr>
   </add>
</input>
</nds>

3.3.2 情報のフィルタリング

ドライバは、関連する変更をすべて報告してから、ユーザが情報をフィルタできるように設計されています。これにより、必要な情報だけを現在の環境に取り込むことができます。

たとえば、ある企業でグループに関する情報が必要ない場合は、識別ボールトまたは接続システムに、グループに関する操作をすべてブロックするフィルタを実装できます。この企業でユーザとグループに関する情報が必要になった場合は、識別ボールトと接続システム間で両方のタイプのオブジェクトを同期できるようにフィルタを実装できます。

必要なオブジェクトだけを同期できるようにフィルタを定義するのは、ドライバのカスタマイズの第1歩です。

次の段階として、フィルタを通過したオブジェクトに対して、Identity Managerが何を行うかを定義します。例として、前に挙げたXMLドキュメントの追加操作を参照してください。接続システムに、名前が「Smith」、電話番号が「111-1111」のユーザが追加されています。この操作が許可されているとすると、Identity Managerでは、このユーザに対する処理内容を決定する必要があります。

3.3.3 ポリシーを使用した変更の適用

変更を加える場合、Identity Managerは、一連のポリシーを特定の順序で適用します。

まず、一致ポリシーが、「このオブジェクトはすでにデータストア内にあるか?」という質問に答えます。このためには、オブジェクトに固有の特性を定義する必要があります。一般的にチェックされる属性は、電子メールアドレスです。これは通常、固有であるためです。「2つのオブジェクトの電子メールアドレスが同じ場合、それらは同じオブジェクトである」というポリシーを定義できます。

一致するものがあった場合、Identity Managerは、これを関連付けと呼ばれる属性に記録します。関連付けは、Identity Managerが接続システム内のオブジェクトを関連付けられるようにする一意の値です。

一致しているものがない場合は、作成ポリシーが呼び出されます。作成ポリシーは、オブジェクトの作成条件をIdentity Managerに通知します。作成ルールでは特定の属性の存在を必須にすることができます。これらの属性が存在しない場合、Identity Managerは必要な情報が提供されるまで、オブジェクトの作成をブロックします。

オブジェクトが作成されると、配置ポリシーによって、オブジェクトの配置場所がIdentity Managerに通知されます。オブジェクトを、それが元々あったシステムと同じ階層構造で作成するように指定できます。また、オブジェクトを属性値に基づいてまったく別の場所に配置することもできます。

オブジェクトの位置属性に従ってユーザを階層に配置し、フルネーム属性に従って名前を付ける場合は、作成ポリシーでこれらの属性を必須にすることができます。これによって、属性は確実に存在するようになり、配置の方針どおりに正しく機能します。

ポリシーの利用法は、他にも多数あります。ポリシービルダを使用すると、一意の値の生成、属性の追加および削除、イベントおよびコマンドの生成、電子メールの送信など、多くのことを簡単に実行できます。XSLTを使用すると、アプリケーション間で情報を移動するXMLドキュメントを直接変換するといったさらに高度な変換が可能です。

セクション 3.0, ポリシーのタイプの理解に進んでさまざまなタイプのポリシーについてさらに詳しく学んだ上で、『Designer 2.1のポリシー』または『iManager for Identity Manager 3.5.1のポリシー』を参照してポリシービルダの使い方を学んでください。