概要
Microsoft EntraID(旧AzureAD)のExternal Identitiesの設定をすることで、Google Workspace(のCloudIdentity)をIdPとして、Microsoft365へSAML認証でログインできます。
背景
元々設定してあったのですが、次のエラーでログインできなくなったので消して設定し直しました。
AADSTS5000811: Unable to verify token signature. The signing key identifier does not match any valid registered keys.

やりかた
CloudIdentityの設定
Googeの管理コンソールにログインし、[アプリ]-[ウェブアプリとモバイルアプリ]を開きます。
[アプリを追加]-[カスタムSAMLアプリの追加]をクリックします。

適当に名前をつけたりメタデータをダウンロードしたりしてください。
次のような設定になればよいはずです。


カスタムドメインの登録 (既に登録してある場合はスキップ)
AzurePortalにログインします。
[EntraID]-[カスタム ドメイン名]を開き、[カスタム ドメインの追加]からドメインを追加します。

既存のフェデレーション設定の削除 (既存のフェデレーション設定がない場合はスキップ)
PowerShellを起動して次のコマンドを実行します。
Get-MgDomainFederationConfiguration -DomainId <既存フェデレーションドメイン名> | fl
次のコマンドを実行してフェデレーション設定を削除します。
Remove-MgDomainFederationConfiguration -DomainId <既存フェデレーションドメイン名>フェデレーションの再設定
次のコマンドを順番に実行します。Connect-MGGraphで認証リダイレクトがくるのでMicrosoft EntraIDの管理者アカウントを準備しておいてください。
$domainId = "<既存フェデレーションドメイン名>"
$xml = [Xml](Get-Content <Google Workspaceから落としてきたメタデータのパス>)
$cert = -join $xml.EntityDescriptor.IDPSSODescriptor.KeyDescriptor.KeyInfo.X509Data.X509Certificate.Split()
$issuerUri = $xml.EntityDescriptor.entityID
$signinUri = $xml.EntityDescriptor.IDPSSODescriptor.SingleSignOnService | ? { $_.Binding.Contains('Redirect') } | % { $_.Location }
$signoutUri = "https://accounts.google.com/logout"
$displayName = "Google Workspace Identity"
Connect-MGGraph -Scopes "Domain.ReadWrite.All", "Directory.AccessAsUser.All"
$domainAuthParams = @{
DomainId = $domainId
IssuerUri = $issuerUri
DisplayName = $displayName
ActiveSignInUri = $signinUri
PassiveSignInUri = $signinUri
SignOutUri = $signoutUri
SigningCertificate = $cert
PreferredAuthenticationProtocol = "saml"
federatedIdpMfaBehavior = "acceptIfMfaDoneByFederatedIdp"
}
New-MgDomainFederationConfiguration @domainAuthParamsコマンドが正常に終了すれば完了です。portal.office.comとかで試してみましょう。
おまけ
参考
Google ワークスペースとMicrosoft Entra ID間のフェデレーションを構成するhttps://learn.microsoft.com/ja-jp/education/windows/configure-aad-google-trust
(筆者環境ではうまくいかなかったが)証明書だけアップデートする方法
AD FS のトークン署名証明書を手動でアップデートする方法
https://jpazureid.github.io/blog/active-directory-federation-service/migrate-msol-update-federation-domain
External Identities
調べている中でこんがらがったのがExternal Identitiesです。
Google Workspaceのメタデータを入れれたり、フェデレーションと似通った部分が多いのですが、こいつは外部ユーザーの認証のためのものです。自社のユーザーの、認証は他IdP(今回だとGoogle Workspace)に飛ばすが、Office365は自社テナントで使う、ような場合はこちらは使えません。


コメント