【ADFS+Office365】 UPNを使わないでシングルサインオン

今回はセミナーで紹介させていただいたAlternate Login IDのフォローアップです。
そのため、前段の説明を多少端折っていることをご了承ください。
(Alternate Login ID=代替ログインIDそのものの説明は公式サイトにもあります。ぜひご覧ください。
)

■ ■ ■

ADFSサーバーを使って、Office 365のシングルサインオンを構成する場合、
今まではユーザーのUPNを使って、Active DirectoryのユーザーとAzure ADのユーザーの関連付けを行います。(正確にはUPN以外のものも使いますが..)

UPNは本来、ユーザー名@ドメイン名で構成されるものですが、Office365へのシングルサインオンを行う場合、関連付けが正しくできるよう、Office365のメールアドレスとUPNが同じ名前でなければなりません。そのため、Active Directoryドメイン名にxxxx.localなんて名前を使っている組織では、代替UPNサフィックスを使ってUPNを構成する必要がありました。
(このあたりはMVP渡辺さんの投稿にある「準備④.代替UPNサフィックスの設定」が詳しいので、
そちらをご覧ください。
)

一方、認証に関わる重要な情報である、UPNを勝手に変えてしまうと、既存のアプリケーションに影響を及ぼす場合があります。

そこで、Windows Server 2012 R2に更新プログラムKB2919355をインストールすると、ADFSを利用したOffice365へのシングルサインオンにUPNを使わなくなります。

では、実際に設定してみましょう。

用意するもの

シンプルです。
・Windows Server 2012 R2のADFSサーバー
・更新プログラムKB2919355

あらかじめ、更新プログラムはADFSサーバーにインストールしておいてください。
続いて設定方法です。

設定1:UPNの代わりに使う情報の指定

Office365へのシングルサインオンにUPNを使わない場合、代替となる情報をOffice365(AzureAD)に送信しなければなりません。代替の属性はADFSサーバーで
Set-AdfsClaimsProviderTrustコマンドレットを使います。

Set-AdfsClaimsProviderTrust -TrustIdentifier “AD Authority” -AlternativeLoginID mail -LookupForest <Active Directory ドメイン名>

設定2:トークンに格納する情報の設定

ADFSサーバーでは、Office365にアクセスする際に送信されるトークンに格納する情報を設定できます。この設定は、ADFSサーバーでOffice365へのシングルサインオンの設定を一通り行えば、ADFS管理ツールの[証明書利用者信頼]で、Microsoft Office365 Identity Platformという証明書利用者信頼ができます。

ALI001

Microsoft Office365 Identity Platform証明書利用者信頼を右クリックして、[要求規則の編集]を開きます。表示される[発行承認規則]タブでトークンに格納する情報は定義されています。
これの1番目の規則の編集画面を開いて、

ALI002

規則の中のsamaccountnameと書いてある部分をmailに書き換えて保存します。

ALI003

以上で、ADFSサーバー側の設定は完了です。

設定3:ディレクトリ同期ツールの設定

続いてディレクトリ同期ツールの設定です。
ディレクトリ同期ツールをインストールしたコンピューターから
c:Program FilesWindows Azure Active Directory SyncSYNCBUSUIShellmiisclient.exeを実行します。
実行したツールから[Management Agent]タブをクリックし、Active Directory Connectorのプロパティを開きます。

ALI004

プロパティ画面が開いたら、左ペインの[Configure Attribute Flow]をクリックし、
[object Type: User] を展開して
<dn>,sAMAccountName,userPrincipalName →
userPrincipalName (Rules Extension) のマッピングを
mail → userPrincipalName (Direct) に変更します。

ALI005

ここまで設定は完了です。
あとは、ディレクトリ同期を1度実行すれば、Active Directoryユーザーのメールアドレスに基づいて
Azure ADに新しいユーザーが作られるようになります。