在 Google Workspace 和 Microsoft Entra ID 之间配置联合
本文介绍将 Google Workspace 配置为 Microsoft Entra ID 的标识提供者 (IdP) 所需的步骤。
配置后,用户可以使用其 Google 工作区凭据登录到 Microsoft Entra ID。
必备条件
若要将 Google Workspace 配置为 Microsoft Entra ID 的 IdP,必须满足以下先决条件:
- Microsoft Entra 租户,具有一个或多个自定义 DNS 域 (即格式不为 *.onmicrosoft.com 的域)
- 如果联合域尚未添加到 Microsoft Entra ID,则必须有权访问 DNS 域才能创建 DNS 记录。 这是验证 DNS 命名空间的所有权所必需的
- 了解如何 使用 Microsoft Entra 管理中心添加自定义域名
- 以至少外部标识提供者管理员身份访问 Microsoft Entra 管理中心
- 使用具有 超级管理员 权限的帐户访问 Google 工作区
若要测试联合身份验证,必须满足以下先决条件:
- 已创建用户的 Google 工作区环境
重要提示
用户需要 Google Workspace 中定义的电子邮件地址,该地址用于匹配 Microsoft Entra ID 中的用户。 有关标识匹配的详细信息,请参阅 Microsoft Entra ID 中的标识匹配。
- 已创建的各个 Microsoft Entra 帐户:每个 Google 工作区用户都需要 Microsoft Entra ID 中定义的匹配帐户。 这些帐户通常通过自动化解决方案创建,例如:
- 学校数据同步 (SDS)
- Microsoft Entra Connect Sync for environment with on-premises AD DS
- 调用 Microsoft Graph API 的 PowerShell 脚本
- IdP 提供的预配工具 - Google 工作区提供 自动预配
将 Google Workspace 配置为 Microsoft Entra ID 的 IdP
使用具有超级管理员权限的帐户登录到 Google 工作区管理控制台
选择 “应用” > “Web 和移动应用”
选择 “添加应用 > ”搜索应用 并搜索 Microsoft
在搜索结果页中,将鼠标悬停在 “Microsoft Office 365 - Web (SAML) ”应用上,然后选择“ 选择
在 “Google 标识提供者详细信息 ”页上,选择“ 下载元数据 ”,并记下 IdP 元数据 - GoogleIDPMetadata.xml 的保存位置-文件,因为稍后将用于设置 Microsoft Entra ID
在 “服务提供商详细信息 ”页上
- 选择选项 “签名的响应”
- 验证名称 ID 格式是否设置为 PERSISTENT
- 根据 Microsoft Entra ID 中预配 Microsoft Entra 用户的方式,可能需要调整 名称 ID 映射。
如果使用 Google 自动预配,请选择“基本信息>主电子邮件” - 选择“ 继续”
在 “属性映射 ”页上,将 Google 属性映射到 Microsoft Entra 属性
Google Directory 属性 Microsoft Entra 属性 基本信息:主电子邮件 应用属性:IDPEmail 重要提示
必须确保 Microsoft Entra 用户帐户的电子邮件与 Google 工作区中的电子邮件匹配。
选择“完成”
配置应用后,必须在 Google Workspace 中为用户启用它:
- 使用具有超级管理员权限的帐户登录到 Google 工作区管理控制台
- 选择 “应用” > “Web 和移动应用”
- 选择 Microsoft Office 365
- 选择 “用户访问”
- 为所有人>“保存”选择“打开”
将 Microsoft Entra ID 配置为 Google Workspace 的服务提供商 (SP)
Microsoft Entra ID 的配置包括更改自定义 DNS 域的身份验证方法。 可以使用 PowerShell 完成此配置。
使用从 Google Workspace 下载的 IdP 元数据 XML 文件,修改以下脚本的 $DomainName 变量以匹配环境,然后在 PowerShell 会话中运行它。 当系统提示向 Microsoft Entra ID 进行身份验证时,请至少以外部标识提供者管理员身份登录
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
$domainId = "<your domain name>"
$xml = [Xml](Get-Content GoogleIDPMetadata.xml)
$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
若要验证配置是否正确,可以使用以下 PowerShell 命令:
Get-MgDomainFederationConfiguration -DomainId $domainId |fl
ActiveSignInUri : https://accounts.google.com/o/saml2/idp?idpid=<GUID>
DisplayName : Google Workspace Identity
FederatedIdpMfaBehavior : acceptIfMfaDoneByFederatedIdp
Id : 3f600dce-ab37-4798-9341-ffd34b147f70
IsSignedAuthenticationRequestRequired :
IssuerUri : https://accounts.google.com/o/saml2?idpid=<GUID>
MetadataExchangeUri :
NextSigningCertificate :
PassiveSignInUri : https://accounts.google.com/o/saml2/idp?idpid=<GUID>
PreferredAuthenticationProtocol : saml
PromptLoginBehavior :
SignOutUri : https://accounts.google.com/logout
SigningCertificate : <BASE64 encoded certificate>
AdditionalProperties : {}
验证 Google Workspace 和 Microsoft Entra ID 之间的联合身份验证
在专用浏览器会话中,导航到 https://portal.azure.com 并使用 Google 工作区帐户登录:
- 使用 Google Workspace 中定义的电子邮件作为用户名
- 用户被重定向到 Google Workspace 以登录
- Google 工作区身份验证后,用户被重定向回 Microsoft Entra ID 并登录