ID同期を行う – 番外編MA・CS・MVについて理解する

 
Tech・EdではFIM2010の大きな枠組みについて解説する予定ですので、
管理エージェントとは?コネクタスペースとは?メタバースとは?というMIIS/ILM2007から
変わっていない部分についての説明はしない予定です(時間もないですし。。ごめんなさい)
 
そのため、Tech・Edのセッションを通じて、ILM/FIMの世界を初めて触れるという方のために
ID同期の3大要素、管理エージェントとは?コネクタスペースとは?メタバースとは?について紹介しておきたいと思います。
 
まずは前回も使った、この図を見てください。
 
人事システムからActive Directoryドメインサービス(ADDS)へID同期を行う様子を表していますが、
このときに、メタバース(MV)を通じて、同期が行われていることがわかると思います。
このようにFIMでは、メタバースと呼ばれるデータベースに各ディレクトリで格納されているID情報を
収集し、ほかのディレクトリへIDをコピーさせます。
ということで、メタバースは一方のディレクトリから他方のディレクトリへID情報をコピーするときに
利用するニュートラルなID情報データベースとの位置づけになります。
ちなみに、メタバースに新しくオブジェクトを登録するときはProjectionという処理によって行われ、
既にあるオブジェクトに対して、属性の追加や変更を行うような処理をJoinと呼びます。
FIMのID同期に関するトラブルシューティング等を行うときによく出てくる言葉なので、覚えておいてください。
 
ところで、上図の2番の処理のように、メタバースにID情報をコピーするとき、
変更元となるディレクトリデータベースとメタバースのスキーマが同じでなければ、
メタバースへの登録できません。(例えば、sAMAccountNameという属性はADDSでは必須の属性ですが、
メタバースにはそのような属性がないため、ADDSのユーザー情報はそのままProjectionすることができません)
そこで、ディレクトリデータベースからメタバースへ(または、メタバースからディレクトリデータベースからメタバースへ)
ID情報をコピーするときには、コピーする属性をあらかじめ指定しておきます。
上図でいうと、2番、3番、6番、7番の処理をするときに
ディレクトリ側のどの属性とメタバースのどの属性を関連づけるかを設定する訳ですね。
実際のケースで例えをあげると、
ディレクトリのdisplayname属性 → メタバースのdisplayname属性
ディレクトリのGivenName属性 → メタバースのFirstName属性
ディレクトリのsn属性 → メタバースのLastName属性
のように関連づけをしておくことで、選択された属性だけがコピーされるようになります。
 
このとき、メタバースへのID情報のコピーはディレクトリのデータベースから直接コピーするわけではなく、
一時的にディレクトリの情報をFIMのデータベースの中にコピーしておいて、それからメタバースへコピーします。
この一時的にディレクトリ情報をコピーしておく領域をコネクタスペース(CS)と呼びます。
言い方を変えると、CSとはステージング領域と言うことになります。
上図を見てもわかるように、ディレクトリからは直接コピーせずに、
CSにいったんコピーして(上図の1番の処理)から、MVへコピーして(上図の2番の処理)いることがわかります。
 
CSからMVへコピーするときには、先に説明したような、属性の関連づけが必要になりますが、
ディレクトリからCSへコピーするときには、属性の関連づけは必要ありません。
なぜなら、CSはディレクトリごとに作られ、CS内のスキーマはディレクトリにあわせて作られるからです。
上図でも、人事システムのCS、MSILMデータベースのCS、ADDSのCSがそれぞれ作られていますね。
 
最後に、管理エージェント(MA)ですが、
管理エージェントは、各ディレクトリとそのディレクトリ用に作られたCSを結ぶコネクタの役割を果たします。
ただし、MAは作成することによって、同時にCSも作成されます。
ブログの前の投稿で、MAの作成方法を紹介しましたが、あの手順を踏むことによって
裏ではCSも一緒に作られていたんですね。
 
 
次回は本編に戻って、MSILMデータベース用のMAの作成方法を紹介します。
 
追伸
アメリカのテレビドラマで、「Criminal Minds」というドラマをご存じでしょうか?
犯罪心理学を利用して犯人を特定するというFBIもののドラマなのですが、
この中で、善人ぶった犯人が「彼らを救いたいんだ (save them)」としゃべったことから、
犯人がネット上で使っているハンドルネームを突き止めるという話がありました。
それがメタバース(save themをひっくり返すと、mehtevas → メタバース)でした。
FIMのメタバースはmetaverseなので、全然関係なのですが、なぜか運命的なものを意味もなく感じてしまいました。
FIMのメタバースは偽善ではなく、私たちを救ってもらいたいものですね。
(↑と言っている私が一番、偽善っぽい?!)