特集
|
|
Page1
Page2
|
■MIIS管理用コンソール「Identity Manager」
次の画面はMIISにおける管理用コンソールである「Identity Manager」である(なお本稿ではService Pack 1を適用したMIIS 2003を使用している)。
Identity Managerでは、以下に挙げたような多くの処理を行うことができる。
- 管理エージェントの作成/変更/削除
- 実行プロファイルの作成/変更/削除
- コネクタ・スペース・エントリの検索
- メタバース・オブジェクト・タイプの作成/変更/削除
- メタバース・エントリの検索
- コネクタ・スペース・エントリとメタバース・エントリの手動での接続/接続解除
- 実行ログの確認
- 設定情報のインポート/エクスポート
またルール拡張を使用するかどうかの設定も同様にIdentity Managerで行う。
簡単なルール拡張プログラミングの例
さて、MIISの処理の流れについて理解できたところで、簡単なルール拡張プログラミングを紹介しよう。
MIISのルール拡張は、GUIでは設定できない複雑なルールを実現するために利用される。ここではインポート属性フローのルール拡張を例に取り上げよう。
インポート属性フローとは、データソースからインポートしたID情報をメタバース・エントリの属性へマップするための処理である。インポート属性フローのマッピングには、「ダイレクト(直接)」「定数値」「識別子のコンポーネント(識別名)」「ルール拡張」が指定できる。
マッピングの種類 | 説明 |
ダイレクト | コネクタ・スペース・エントリの属性値をそのままメタバース・エントリの属性にマップする |
定数値 | あらかじめ指定した値をメタバース・エントリの属性にマップする |
識別子のコンポーネント | 例えば「CN=鈴木 一郎,CN=Users,DC=domain,DC=local」という識別子に、コンポーネント番号1を指定すると、最初のコンポーネントである、[鈴木 一郎]という値をメタバース・エントリの属性にマップする |
ルール拡張 | 上記の3つの指定では要件を満たすことができない場合に指定する。属性値を自由に加工したうえでメタバース・エントリの属性にマップすることができる |
インポート属性フローのマッピングの種類 |
ここでは、社員情報用の管理エージェントのインポート属性フローでルール拡張を利用する例として、社員情報ビューの「姓」という列と、「名」という列の値を結合して、メタバース上のpersonオブジェクト・タイプのdisplayName属性にマップするサンプル・コードを紹介する。
それでは、インポート属性フローのルール拡張を作成してみよう。なお、紙面の関係上、管理エージェントの作成および設定手順を詳細に解説することはできない。詳しくは、Microsoft Identity Integration Server 2003 製品ヘルプファイルおよびシナリオステップバイステップ日本語資料をダウンロードして確認してほしい。
(1)属性フローのルールを作成する
まず属性フローのルールを新規作成する。これは以下の手順で行う。
Identity Managerですでに作成した管理エージェントのプロパティを開き、[Management Agent Designer]ペインから[Configure Attribute Flow]を選択して[Configure Attribute Flow]ペインを表示する。
そして、[Configure Attribute Flow]ペインの下にある[Mapping Type]の欄で「Advanced」ラジオボタンをチェックし、[Data Source Attribute]リストボックスから「姓」と「名」を選択、[Metaverse attribute]のリストボックスから「displayName」を選択して[New]ボタンをクリックする(図4)。
図4 インポート属性フローのルール拡張の設定 | ||||||
Identity Managerですでに作成した管理エージェントのプロパティを開く。 | ||||||
|
(2)インポート属性フロー(Import Attribute Flow)の詳細設定
次に、いま作成した属性フローについて詳細設定を行う。
[Build Attribute Flow](=属性フロー作成欄)の[New]ボタンがクリックされると、[Advanced Import Attribute Flow Options]ダイアログが表示されるので、[Rules extension]ラジオボタンをチェックし、[Flow rule name]テキストボックスに「displayName」を指定する(図5)。
図5 インポート属性フローのルール拡張の設定 | ||||||
[Build Attribute Flow](=属性フロー作成欄)の[New]ボタンがクリックされると、[Advanced Import Attribute Flow Options]ダイアログが表示される。 | ||||||
|
この設定により、MIISの同期処理の実行タイミングで、インポート属性フローのルール拡張が呼び出されるようになる。このとき、ルール拡張ハンドラに渡されるFlowNameには、[Flow rule name]テキストボックスに入力した値(本稿の例では「displayName」)が入る。
(3)インポート属性フローのルール拡張プログラミング
[Advanced Import Attribute Flow Options]ダイアログの設定ができたら、先ほどの管理エージェントのプロパティを開き、[Management Agent Designer]ペインから[Configure Extensions]を選択して[Configure Extensions]ペインを開き、そこでDLL名(=.NETで開発するMIISルール拡張用のプログラムの名前)をあらかじめ指定しておく。
図6 MIISルール拡張用のプログラムの設定 | |||
プロパティの[Management Agent Designer]ペインから「Configure Extensions」を選択して、[Configure Extensions]の設定項目を表示したところ。 | |||
|
Identity Managerのメニュー・バーから[Actions]−[Create Extension Projects]を選択する。これにより[Create Extension Project]ダイアログが表示されるので、後は次の画面の手順に従って項目を設定していけば、Visual Studio .NET 2003のプロジェクトが自動生成され、DLLのためのソース・コードのひな型を出力してくれる。
図7 MIISルール拡張プログラム用のVisual Studio .NET 2003プロジェクトの生成 | |||||||||||||||
Identity Managerのメニュー・バーから[Actions]−[Create Extension Projects]を選択すると、[Create Extension Project]ダイアログが表示される。 | |||||||||||||||
|
|||||||||||||||
インポート属性フローのルール拡張を実現するには、上の方法で自動生成されたソース・コード内のIMASynchronizationインターフェイスのMapAttributeForImportメソッドに、必要なコードを追加する。
|
|
リスト1 インポート属性フローのルール拡張のコード例 |
リスト1が、インポート属性フローのルール拡張プログラミングの例である。以下にこのコードの要点について解説しよう。
MIISは、対象となる拡張ルール名を第1パラメータのFlowRuleName変数にセットして、このIMASynchronization.MapAttributesForImportメソッドを呼び出す。 では、拡張ルール名が事前に指定した“displayName”であることを確認している。もし、それ以外の名前がセットされていたら、想定外の状況なのでEntryPointNotImplementedException例外を発生させる。FlowRuleNameが正しくセットされていたら、SetDisplayNameメソッドを呼び出す。
SetDisplayNameメソッドは独自に作成したプライベートなメソッドで、まず渡されたCSEntryクラスのインスタンス(csentry変数)の「姓」と「名」という属性名に値が存在することを確認し()、同じく渡されたMVEntryクラスのインスタンス(mventry変数)のdisplayName属性のValueプロパティに、「姓」と「名」という属性のStringValueプロパティの値をスペースで連結したものを代入している()。
CSEntryクラスはその名前から想像できるように、コネクタ・スペース・エントリを表すクラスである。同様にMVEntryクラスはメタバース・エントリを表す。リスト1の処理によってメタバース・エントリのdisplayName属性に値がマップされることになる。
■
以上が、簡単なルール拡張プログラミングの例である。ここで登場したCSEntryクラス、MVEntryクラス、IMASynchronizationインターフェイスなどについては、次回後編のMIISルール拡張プログラミングで解説する。
INDEX | ||
[特集] | ||
MIIS 2003プログラミング(前編) | ||
企業システムのID統合を推進するMIISとは何か? | ||
1.MIISの基本概念と処理の流れ | ||
2.簡単なルール拡張プログラミングの例 | ||
MIIS 2003プログラミング(後編) | ||
柔軟なID管理を実現するMIISルール拡張プログラミング | ||
1.管理エージェント用のルール拡張 | ||
2.メタバースのルール拡張 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|