Micorosoft Graph用のMicrosoft Identity Manager(MIM)コネクタを試してみた

(2020年9月時点での最新はMicrosoft Identity Manager 2016)を取り扱っています。
今回のブログでは、そんなMicrosoft Identity Manager 2016(以下MIM)で利用できるカスタムコネクタの1つ、
Microsoft Graph用のMicrosoft Identity Manager コネクタを利用し、
AzureAD上のユーザー情報の取得する方法について、実際に必要な準備や手順を追いながらご紹介したいと思います。
事前準備
・Azureテナント
・Microsoft 365テナント
・MIM(事前に環境へインストールしておきます。)
上記の他に、MIMのMicrosoft公式リファレンスに則って、MIM同期サービスを利用するための最小構成として
・Active Directoryのドメインコントローラー
・Windows Server(MIMのインストール先)
・SQL Server
を用意しています。
SharePointサーバ及びExchangeサーバは、ポータルを利用しない最小構成では不要なため省いています。
Microsoft Graph用コネクタを使用する準備
まず最初に、コネクタをAzureAD上にアプリとして登録し、ディレクトリ内のオブジェクトに対して必要な権限を与えておく必要があります。
コネクタの公式リファレンスに必要な作業が一通り載っていますが、画面が古かったり飛んでいたり英語だったりするので、ここでも紹介いたします。
また、このあたりで用いられる認証の動きについては別の記事でも検証していますので、詳細が気になる方は是非ご一読ください。
1.Azureのポータルにアクセスし、左上の「≡」アイコンを展開して[Azure Active Directory]を開きます。
2.画面左のメニューから[アプリの登録]を開きます。
3.[新規登録]をクリックします。
4.名前を入力して、[登録]をクリックすると、アプリケーションが登録されます。
5.[アプリケーションID]は後の作業で使用するため、控えておきます。
6.画面左のメニューから、[証明書とシークレット]を開きます。
7.[新しいクライアントシークレット]を開き、[追加]をクリックしてシークレットキーを登録します。
8.シークレットキーが登録されたら、[値]の内容を控えておきます。
※ここで表示されている値は後から確認できないため必ず控えてください。
9.画面左のメニューから、[APIのアクセス許可]を開きます。
10.[アクセス許可の追加]をクリックし、[APIアクセス許可の要求]ウィンドウを開きます。
11.[Microsoft Graph]を選択し、[アプリケーションの許可]をクリックしてアクセス許可の一覧を開きます。
12.今回はユーザーの一覧のみの取得なので、下記のアクセス権を選択して[アクセス許可の追加]をクリックします。
・User.Read.All
・User.ReadWrite.All
・Directory.Read.All または Directory.ReadWrite.All
13.[○○に管理者の同意を与えます]をクリックして今追加したアクセス権をアプリに付与します。
※この操作はテナントの管理者アカウントでログインして行ってください。
以上で、アプリの登録は完了です。
カスタムコネクタの作成
ここまでで準備が完了したので、早速カスタムコネクタを利用してManagement Agent(以下MA)を作成し、
AzureADのユーザー情報をメタバース(以下MV)に取り込んでみましょう。
今回は、下記の属性を取り込むものとします。
・id
・displayName
・givenName
・jobTitle
・mail
・mobilePhone
・officeLocation
・preferredLaungage
・surname
・userPrincipalName
なお、コネクタの構成には下記が必要ですのでインストールされていない場合は先にインストールしておいてください。
・Microsoft .NET 4.5.2 Framework 以降
・Microsoft Identity Manager 2016 SP1(修正プログラム 4.4.1642.0 KB4021562が適用済みであること。)
・Microsoft Graph 用のMicrosoft Identity Manager コネクタ
1.MIMをインストールしたサーバーで、[Synchronization Service Manager]を起動します。
2.まず最初に、AzureADから取り込む属性を格納するためにpersonオブジェクトを拡張します。
[Metaverse Designer]タブに切り替え、[Object Types]ウィンドウで[person]を選択して、
[Actions]ウィンドウの[Add Attribute]をクリックします。
3.[New Attribute]をクリックします。
4.下記2つの属性を追加します。
・preferredLaungage
・userPrincipalName
5.次に、カスタムコネクタを利用して実際にMAを作成していきます。
[Management Agents]タブに切り替えて、[Create]をクリックします。
6.[Management agent for]のプルダウンで[Graph(Microsoft)]を選択し、名前と説明を入力して次の画面に進みます。
7.それぞれの項目を下記の通りに入力して次の画面に進みます。
・Graph API Version: 1.0
・Tenant Name:テナントのURL(○○.onmicrosoft.com または 設定しているならカスタムドメインでも可)
・Client ID:[アプリの登録]の5.で控えたアプリケーションID
・Client Secret:[アプリの登録]の8.で控えたシークレットキー
8.[Select Object Type]画面まで特に内容を変更せず進みます。
9.[Select Object Type]画面では、[user]にチェックを入れて次の画面へ進みます。
10.[Select Attributes]画面でAzureADから取り込む属性を選択します。
ここでは、最初に挙げた下記の属性にチェックを入れます。
実際に利用する際は、必要に応じて取り込む属性を変更することも可能です。
・id
・displayName
・givenName
・jobTitle
・mail
・mobilePhone
・officeLocation
・preferredLaungage
・surname
・userPrincipalName
11.[Configure Join and Projection Rules]画面まで特に内容を変更せず進みます。
12.[Configure Join and Projection Rules]画面で[New Join Rule...]をクリックします。
13.ここでは、AzureADから取り込んだユーザー情報をMVと紐づける際のキーを何にするかを設定します。
[Data source attribute]ウィンドウで[id]を選択し、[Metaverse object type]プルダウンを[person]に変更したうえで
[Metaverse attribute]ウィンドウで[uid]を選択して[Add Condition]をクリックします。
14.続けて、AzureADからユーザー情報を取り込む際、どのオブジェクトに対応させるかを設定します。
[New Projection Rule...]をクリックします。
15.[Declared]を選択し、[Metaverse object type]プルダウンを[person]に変更します。
16.[OK]をクリックしてウィンドウを閉じ、次の画面へ進みます。
17.[Configure Attribute Flow]では、AzureADから取り込んだ属性をpersonオブジェクトのどの属性と紐づけるかを設定できます。
[Data source attribute]ウィンドウでAzureAD側の属性を選択し、[Metaverse attribute]ウィンドウでpersonオブジェクトの対応先属性を選択して[New]をクリックします。
基本的に同名の属性同士を紐づけますが、下記の属性はこの通りに紐づけてください。
・id ⇒ uid
・surname ⇒ sn
18.残りの画面はすべて変更せずに進み、最後に[Finish]を押して画面を閉じます。
19.これでMAを作成することができました。
続けて、このMAのImportとSynchronizationのプロファイルを作成します。
[Actions]ウィンドウの[Configure Run Profiles]をクリックします。
20.[New Profile]をクリックします。
21.名前を入力して次の画面へ進みます。
22.[Type]プルダウンで[Full Import(Stage Only)]を選択して次の画面へ進みます。
23.特に変更せず[Finish]をクリックしてウィンドウを閉じます。
24.同様の手順で、Synchronizationのプロファイルも作成します。
各項目は下記の通りに設定してください。
・Name:MIMSynchronization
・Type:Full Synchronization
25.[Management Agents]画面に戻り、MAを右クリックして[Run]をクリックします。
26.[MIMImport]を選択して[OK]をクリックします。
これによってImport処理が行われ、MAのコネクタスペース(以下CS)にAzureAD上のユーザー情報を取り込めます。
27.[Operations]タブに切り替え、[Status]が[success]になっていることを確認します。
28.続けて、Synchronization処理を行い、CSに取り込んだユーザー情報をMVに取り込んでいきます。
[Management Agents]画面に戻り、MAを右クリックして[Run]をクリックします。
29.[MIMSynchronization]を選択して[OK]をクリックします。
30.[Operations]タブに切り替え、[Status]が[success]になっていることを確認します。
これでMVへの取り込みが完了しました。実際に取り込まれたデータを見てみましょう。
31.[Metaverse Search]タブに切り替え、[Scope by object]を[All]に変更して[Search]をクリックすることで取り込んだデータが
[Search Results]に一覧で表示されます。
32.ユーザー名をダブルクリックすることで詳細なデータを確認することができます。
最後に
また、AADCでは実現できない要件(例えばライセンス付与)も満たすことができるようになりそうですね!
QESではこのような検証を行うことで、よりお客様のニーズに対応できる技術を身に付けております。
本ブログの他にも、様々な技術・製品に対する検証の結果をブログとして掲載しておりますので、
他の記事についても是非ご一読ください。
私共が提供するサービス・ソリューションにつきましてはこちらに掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度お問い合わせください。