2011年4月15日金曜日

ディレクトリ同期ツールを使って Office365 へのユーザ同期を行う

# はじめに
# ベータ版の Office365 をベースに実験した結果ですので正式版で使える情報とは限りません。


前回は AD FS2.0 を使った Office365 とのフェデレーションの話でしたが、今回はディレクトリ同期を使ったオンプレミスの AD DS と Office365 のアカウント同期についてです。

まずはディレクトリ同期ツールをオンプレミス側にインストールする必要があるのですが、条件が少々あります。これは後からも書きますがこのディレクトリ同期ツールの正体が Identity Lifecycle Manager 2007 FP1( ILM 2007 FP1 ) だからです。。(たぶん)

■インストール要件
・OS
 Windows Server 2003 / 2003 R2 / 2008
 32bit版
 ドメインに参加しているサーバ(ドメインコントローラ以外)
・必要な機能
 .NET Framework 3.5.1
 PowerShell


では、さっそくインストールと設定をしてみます。(モジュールは Office365 のポータルからダウンロードできます)

■インストール
インストーラを起動するとセットアップウィザードが起動するので基本はそのままセットアップを行います。















■設定
インストールが完了したら構成ウィザードを使って設定を行います。
[構成ウィザードを今すぐ開始する]にチェックを入れて[完了]をクリックします。















構成ウィザードが起動します。















ここで Microsoft Online Services 管理者の情報を入力すると同期設定が開始されるのですが、開始前に Office365 側のディレクトリ同期をアクティブ化する必要があります。アクティブ化を行っていないと以下の様なメッセージが出て構成が開始できません。









Office365 側でのディレクトリ同期のアクティブ化は管理ポータルから実施します。
[管理]→[ユーザー]メニューから「 Active Directory 同期 」のセットアップを行います。












セットアップ画面の中の3番目に「 Active Directory 同期をアクティブ化する 」というメニューがあるので [ アクティブ化 ] をクリックします。





























構成ウィザードに戻り、先ほどの Microsoft Online Services 管理者の情報を入力すると今度は Active Diretory の資格情報を入力する画面が出てきますので、Active Directory の管理者権限のあるユーザ情報を入力します。















構成が終わると、自動的にディレクトリ同期が3時間おき開始されます。尚、その場ですぐに同期を実行したい場合は [ ディレクトリを今すぐ同期する ] にチェックを入れてウィザードを完了します。















ただ、ここで1点注意なのですが前回のポストで紹介した UPN を変更せずに AD FS2.0 とのフェデレーションを行う場合はディレクトリ同期をまだ開始しないでください。デフォルトではやはり UPN 情報が同期されてしまいますので、次に同期設定を変更します。
(これも同じくサポートされない可能性があるので注意が必要です)

■同期設定のカスタマイズ
先にも書きましたがディレクトリ同期ツールの実体は ILM 2007 FP1 です。ということで ILM 2007 の管理画面( Identity Manager ) から同期設定をカスタマイズするのですが、ディレクトリ同期をインストールしてから一度もログアウトしていない場合は、一旦ログオフします。( ILM / FIM を使っている方はわかると思いますが、 MIIS Admin グループにインストールしたユーザが登録されるのですがログオフ / ログオンを行わないと権限が反映されないためです )

再度ログオンをしたら、Identity Manager を起動します。
デフォルトでは
C:\Program Files\Microsoft Online Directory Sync\SYNCBUS\UIShell
以下にインストールされます。
実行ファイル名は miisclient.exe です。

Identity Manager を起動して Management Agent メニューを起動すると
・TargetWebService
・SourceAD
という2つの Management Agent が自動的に作成されているのがわかります。








今回は Active Directory の UPN ( userPrincipalName ) 属性ではなく、電子メールアドレス ( mail ) 属性を Office365 のログイン ID として使いたいので Office365 に対して UPN を渡している部分で電子メールアドレスを渡すように変更します。

変更手順は TargetWebService を選択した状態で右側の Action メニューの Properties をクリックします。すると Management Agent の設定画面が起動してくるので、 Configure Attribute Flow を選択して user オブジェクトの設定を開きます。
各種属性のマッピングルールが定義されている箇所から userPrincipalName を設定を見ると確かに MetaVerse の userPrincipalName を同期する形になっています。(尚、この MetaVerse の userPrincipalName 属性はもう一つの Management Agent の SourceAD の Attribute Flow 設定で Active Directory の userPrincipalName 属性がマッピングされています)
















この MetaVerse 側のマッピング属性を mail に変更することで Office365 に渡される userPrincipalName 属性の値に Active Directory の mail 属性の値を入れることが可能になります。
まずは、 MetaVerse 側の属性から mail を選択します。
















このマッピングの Type が Rule Extension となっているので [ Edit ] ボタンをクリックして Rule Extension を変更します。 Flow rule name のテキストボックスに入っている文字列を以下の様に変更します。
「 cd.generic.string.trim:userPrincipalName:userPrincipalName

「 cd.generic.string.trim:userPrincipalName:mail













これで、OKを押して Management Agent の設定を保存すれば同期設定のカスタマイズは完了です。


■同期する
さて、実際にユーザーを同期してみます。
3時間待っても良いのですが、ここでは手動で同期を実行します。
これも Identity Manager の画面から実行することになります。

実行のステップは以下の通りです。対象の Management Agent を選択して Action メニューから Run Profile を選択して実行します。
1.SourceAD / Full import and full sync
2.TargetWebService / Full confirm import
3.TargetWebService / Export
※2回目以降は Full となっている部分が Delta となっているプロファイルを選択します。この辺りは MIIS / ILM / FIM の話と同様です。


実行がうまく行くと、
C:\Program Files\Microsoft Online Directory Sync\SYNCBUS\MaData\TargetWebService
以下にexport.txtというファイルができるので内容を確認すると

version: 1

dn: CN={61537477396F527452454731677A395550362B5A70773D3D}
changetype: add
objectclass: user
CommonName: Fujie Naohiro
Surname: Fujie
accountEnabled: TRUE
countryCode: 0
displayName: Fujie Naohiro
givenName: Naohiro
mail: nfujie@adfs20.net
sourceAnchor: aStw9oRtREG1gz9UP6+Zpw==
userPrincipalName: nfujie@adfs20.net

という様な形で同期するユーザのエントリ情報が出力されています。

ここまで行けば Office365 の管理ポータルのユーザー一覧を見るとユーザが追加されているはずです。
ユーザの表示名の左側のアイコンが同期マーク?になっていれば Active Directory から同期されたユーザです。











同期が完了したらユーザにライセンスを割り当てれば AD FS2.0 でのフェデレーションでログインができるようになっているはずです。


また、一部のOUのユーザのみを同期する方法を MVP 国井さんがまとめているのでこちらも参考にしてください。
http://sophiakunii.wordpress.com/2010/10/18/bpos%E3%81%A7%E4%B8%80%E9%83%A8%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A0%E3%81%91%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%90%8C%E6%9C%9F%E3%81%99%E3%82%8B%E6%96%B9/

1 件のコメント:

sophiakunii さんのコメント...

ブログ投稿を取り上げてくださってありがとうございます。ところが、一部のOUのみ同期する方法は、MSとしては推奨しないと言われてしまったのですよ。。