皆さんこんにちは。国井です。
以前、当ブログでAlternate Login ID(代替ID/代替ログインID)という方法を利用して、Office365(Azure AD)のシングルサインオン(SSO)を構成する方法を紹介しました。
代替IDを使うとディレクトリ同期やSSOにUPNを使わなくなるので、kunii@example.localのようなUPNでも、代替UPNサフィックスを使わないでSSOができるという、ありがたいお話でした。
以前は代替IDの設定は結構面倒だったのですが、AAD Connectでは驚くほど簡単になっています。これって、よく質問されるポイントでもあるので、今日は設定を載せておきます。
■ ■ ■
AAD Connectを使ってSSO設定を行う際(ウィザードのステップバイステップはこちらに乗せてあります)、AAD Connectのウィザード設定で[Azure AD サインインの構成]というページがあるので、[ユーザープリンシパル名]としてuserPrincipalNameではなく、mailを選択するだけ。
これにより、mail属性をベースにAzure ADへディレクトリ同期が行われ、SSOもmail属性ベースで行われるようになります。
(2016年7月26日追記)
ディレクトリ同期ツールでmail属性を設定するだけ、と思っていたら、ADFSの要求プロバイダー信頼への設定を行ってくれないことが確認できました。そのため、以下の設定を追加でPowerShellから行う必要があるようです。
Set-ADFSClaimsProviderTrust -Target Identifier “AD AUTHORITY” -AlternateLoginID <attribute> -LookupForests <forest domain>
contoso.comドメインのmail属性を利用する場合だったら、こんな感じで実行します。
実行結果はGet-ADFSClaimsProviderTrustコマンドレットで確認できます。
ここまでの結果、AlternateLoginIDクレームにmail属性がセットされ、ID連携の処理が実行されます。
また余談ですが、
(以下、同期ツールに詳しい人だけ見てもらえれば良いです)
Synchronization Servicesツールから同期された様子を見てみると、Azure ADにエクスポートするタイミングでuserPrincipalNameの値にActive DirectoryユーザーのUPNではなく、メールアドレスが入ります。
(もともとのActive DirectoryでのUPN値はonPremisesUserPrincipalName属性の値としてセットされます)
一方、メタバースにユーザーの情報を格納するときは、userPrincipalNameの値にメールアドレスではなく、Active DirectoryでのUPN値が入ります。
そのほか、代替IDを使っている場合、ADFSサーバーから発行されるトークンには、代替ログインIDというクレームが追加され、その中にメールアドレスが入ります。
■ ■ ■
ADFSを使ったシングルサインオンをしたいけど、UPNを変更したくない、というお客様はいらっしゃるようですが、代替IDを使うことによって、UPNを変えなくても簡単にシングルサインオン環境を構築できることがわかります。ただし、代替IDの利用には、いくつかの制限事項があるのでご注意を(以下参考)。
■代替ログイン ID を構成します
https://technet.microsoft.com/ja-jp/library/dn659436%28v=ws.11%29.aspx?f=255&MSPPError=-2147217396
■(参考サイト)Introduction to Active Directory Federation Services (AD FS) AlternateLoginID Feature
https://blogs.technet.microsoft.com/askpfeplat/2014/04/20/introduction-to-active-directory-federation-services-ad-fs-alternateloginid-feature/