将 Google Cloud 与 Azure Active Directory 联合:配置预配和单点登录

本文介绍如何在 Microsoft Azure AD 租户与您的 Cloud Identity 或 G Suite 帐号之间设置用户预配和单点登录。

本文假设您已在组织中使用 Microsoft Office 365 或 Azure AD,并希望将 Azure AD 用于允许用户向 Google Cloud 进行身份验证。Azure AD 自身可连接到本地 Active Directory,并且可以使用 AD FS 联合、直通式身份验证或密码哈希同步。

目标

  • 将 Azure AD 设置为自动将用户和群组(可选)预配到 Cloud Identity 或 G Suite。
  • 将单点登录配置为允许用户使用 Azure AD 用户帐号或从 Active Directory 预配到 Azure AD 的用户登录 Google Cloud。

费用

如果您使用的是免费版 Cloud Identity,则设置与 Azure AD 的联合不会使用 Google Cloud 的任何收费组件。

查看 Azure AD 价格页面,了解使用 Azure AD 的费用。

准备工作

  • 确保您了解将 Google Cloud 连接到 Azure AD 与直接将 Google Cloud 连接到 Active Directory 之间的区别。
  • 确定您要如何映射身份、群组和网域。 具体来讲,请回答以下问题:
    • 您是否计划将电子邮件地址或用户主体名称 (UPN) 用作用户的通用标识符?
    • 您是否计划预配群组?如果是,您是计划通过电子邮件地址还是通过名称来映射群组?
    • 您是计划将所有用户还是仅选择部分用户预配到 Google Cloud?
  • 在将正式版 Azure AD 租户连接到 Google Cloud 之前,请考虑使用 Azure AD 测试租户来设置和测试用户预配。
  • 如果您还没有帐号,请注册 Cloud Identity
  • 如果您使用的是免费版 Cloud Identity并打算预配超过 50 位用户,请通过支持联系人申请增加免费 Cloud Identity 用户总数。
  • 如果您怀疑您要用于 Cloud Identity 的任何网域可能已经被员工用来注册消费者帐号,可以考虑先迁移这些用户帐号。如需了解详情,请参阅评估现有用户帐号

准备 Cloud Identity 或 G Suite 帐号

为 Azure AD 创建用户

为了与 Cloud Identity 和 G Suite 的 API 进行交互,Azure AD 需要一个用户帐号。注册 Cloud Identity 或 G Suite 时,您已经创建了一个超级用户。虽然您可以将此用户用于 Azure AD,但最好创建一个单独的用户,由 Azure AD 专用。

  1. 打开管理控制台,然后使用您在注册 Cloud Identity 或 G Suite 时创建的超级用户登录。
  2. 在菜单中,转至目录 > 用户,然后点击添加新用户,以创建用户。
  3. 提供适当的姓名和电子邮件地址,例如:
    1. 名字Azure AD
    2. 姓氏Provisioning
    3. 主电子邮件azuread-provisioning
    4. 保留电子邮件地址的主域名。
  4. 自动生成新密码 (Automatically generate a new password) 设置为已停用,然后输入密码。
  5. 要求在下次登录时更改密码设置为已停用
  6. 点击添加新用户
  7. 点击完成

为了使 Azure AD 能够创建、列出和删除用户和群组,您必须为当前创建的用户授予额外的权限。此外,建议为该用户免除单点登录,否则,在遇到单点登录问题时,您可能无法重新授权 Azure AD。这两个操作均可通过使用户成为超级用户来完成:

  1. 在列表中找到新创建的用户并将其打开。
  2. 管理员角色和权限下,点击分配角色
  3. 启用超级用户角色。
  4. 点击保存

注册网域

在 Cloud Identity 和 G Suite 中,用户和群组由电子邮件地址进行标识。这些电子邮件地址使用的网域必须先进行注册和验证。

准备您需要注册的 DNS 网域列表:

  • 如果您计划通过 UPN 映射用户,请包括 UPN 使用的所有网域。如有疑问,请包括 Azure AD 租户的所有自定义网域。
  • 如果您计划通过电子邮件地址映射用户,请包括电子邮件地址中使用的所有网域。网域列表可能与 Azure AD 租户的自定义网域列表不同。

如果您计划预配群组,请修改 DNS 网域列表:

  • 如果您计划通过电子邮件地址映射群组,请包括群组电子邮件地址中使用的所有网域。如有疑问,请包括 Azure AD 租户的所有自定义网域。
  • 如果您计划通过名称映射群组,请添加专用子网域(例如 groups.[PRIMARY-DOMAIN]),其中 [PRIMARY-DOMAIN] 是您的 Cloud Identity 或 G Suite 帐号的主域名。

现在您已经确定了 DNS 网域列表,接下来就可以注册任何缺失的网域了。对于列表中尚未注册的每个网域,请执行以下步骤:

  1. 在管理控制台中,导航到帐号 > 网域
  2. 点击添加/移除域名
  3. 点击添加网域或网域别名
  4. 在对话框中,选择添加其他网域
  5. 在下面的文本框中,输入域名。
  6. 点击继续并验证网域所有权

    如果该网域是之前已验证的其他网域的子网域,则该网域可立即使用。否则,系统会要求您验证该网域。

  7. 点击选择您的域名注册商或提供商,选择相应 DNS 网域的注册商或提供商。

  8. 您现在可以看到一组特定于所选注册商或提供商的说明。请按照以下说明验证网域的所有权。

配置 Azure AD 预配

创建企业应用

您现在可以通过设置 Microsoft Azure 市场中的 Google Cloud/G Suite Connector by Microsoft 库应用,将 Azure AD 连接到 Cloud Identity 或 G Suite 帐号。

该库应用可以配置为处理用户预配和单点登录。但是,如果您使用此应用的一个实例来同时实现这两种用途,则可能会遇到 Azure AD 限制风险。为避免此风险,请使用该库应用的两个实例。

首先,创建一个该库应用的实例来处理用户预配:

  1. 打开 Azure 门户并以具有全局管理员权限的用户身份登录。
  2. 选择 Azure Active Directory > Enterprise applications
  3. 点击 New application
  4. 搜索 Google Cloud,然后点击结果列表中的 Google Cloud/G Suite Connector by Microsoft 项。
  5. 将应用的名称设置为 Google Cloud (Provisioning)
  6. 点击 Add
  7. 添加应用可能需要几秒钟的时间,然后您应该会被重定向到标题为 Google Cloud(预配)- 概览 (Google Cloud (Provisioning) - Overview) 的页面。
  8. 在左侧菜单中,点击管理 > 属性 (Property):
    1. 启用以供用户登录设置为
    2. 需要使用用户分配设置为
    3. 对用户可见设置为
    4. 点击保存
  9. 在左侧菜单中,点击管理 > 预配
    1. 预配模式更改为自动
    2. 点击管理员凭据 > 授权
    3. 使用您之前创建的 azuread-provisioning@[DOMAIN] 用户登录,其中 [DOMAIN] 是您的 Cloud Identity 或 G Suite 帐号的主域名。
    4. 由于这是您首次使用此用户登录,因此系统会询问您是否接受 Google 服务条款和隐私权政策。
    5. 如果您同意这些条款,请点击接受
    6. 点击允许以确认对 Cloud Identity API 的访问。
    7. 点击测试连接以验证 Azure AD 可以使用 Cloud Identity 或 G Suite 成功进行身份验证。
    8. 点击保存

配置用户预配

配置用户预配的正确方法取决于您是计划通过电子邮件地址还是 UPN 映射用户。

通过 UPN 映射

  1. Mappings 下,点击 Provision Azure Active Directory Users
  2. Attribute Mapping 下,选择 surname 行,并将 Default value if null 设置为 _
  3. 选择 givenName 行,并将 Default value if null 设置为 _
  4. 点击 OK
  5. 点击保存
  6. 点击,确认保存更改将导致用户和组重新同步。
  7. 点击 X 关闭 Attribute Mapping 对话框。

通过电子邮件地址映射

  1. Mappings 下,点击 Provision Azure Active Directory Users
  2. Attribute Mapping 下,选择 userPrincipalName 行,并将 Source Attribute 设置为 mail
  3. 选择 surname 行,并将 Default value if null 设置为 _
  4. 选择 givenName 行,并将 Default value if null 设置为 _
  5. 点击 OK
  6. 点击保存
  7. 点击,确认保存更改将导致用户和组重新同步。
  8. 点击 X 关闭 Attribute Mapping 对话框。

配置群组预配

配置群组预配的正确方法同样取决于您是要通过电子邮件地址还是 UPN 映射群组。

没有群组映射

  1. Mappings 下,点击 Provision Azure Active Directory Groups
  2. Enabled 设置为 No
  3. 点击保存
  4. 点击,确认保存更改将导致用户和组重新同步。
  5. 点击 X 关闭 Attribute Mapping 对话框。

通过电子邮件地址映射

  • 如果您通过电子邮件地址映射群组,请保留默认设置。

通过名称映射

  1. Mappings 部分下,点击 Provision Azure Active Directory Groups
  2. Attribute Mappings 部分中,点击 mail,即可打开 Edit Attribute 对话框。
  3. 配置以下设置:
    1. Mapping typeExpression
    2. ExpressionJoin("@", NormalizeDiacritics(StripSpaces([displayName])), "[GROUPS-DOMAIN]")。将 [GROUPS-DOMAIN] 替换为所有群组电子邮件地址应使用的网域,例如 groups.example.com
    3. Target attributeemail
  4. 点击 OK
  5. 点击保存
  6. 点击,确认保存更改将导致用户和组重新同步。
  7. 点击 X 关闭 Attribute Mapping 对话框。

配置用户分配

如果您知道只有某部分用户需要访问 Google Cloud,则可以选择通过向特定用户或用户群组分配企业应用来限定要预配的那部分用户。

如果要预配所有用户,则可以跳过以下步骤。

  1. 在左侧菜单中,点击管理 > 用户和组
  2. 点击添加用户
  3. 选择用户
  4. 选择要预配的用户或群组。如果选择组,则会自动预配该组的所有成员。
  5. 点击选择
  6. 点击分配

启用自动预配

下一步是将 Azure AD 配置为自动将用户预配到 Cloud Identity 或 G Suite:

  1. 在左侧菜单中,点击管理 > 预配
  2. 选择修改预配
  3. 设置下,将预配状态设置为开启
  4. 范围设置为以下任一项:

    1. 如果已配置用户分配,则设置为仅同步分配的用户和组
    2. 否则,设置为同步所有用户和组

    如果未显示用于设置范围的框,请点击保存并刷新页面。

  5. 点击保存

Azure AD 启动初始同步。根据目录中的用户和群组数量,此过程可能需要几分钟或几小时的时间。您可以刷新浏览器页面,在页面底部查看同步状态,或者在菜单中选择审核日志以查看更多详细信息。

问题排查

如果同步在五分钟内未启动,则可以通过执行以下操作强制启动:

  1. 预配状态设置为关闭
  2. 点击保存
  3. 预配状态设置为开启
  4. 点击保存
  5. 勾选清除当前状态并重启同步
  6. 点击保存
  7. 点击,确认重启同步。

如果仍未启动同步,请点击测试连接以验证是否已成功保存凭据。

配置 Azure AD 以进行单点登录

虽然现在所有相关的 Azure AD 用户都已自动预配到 Cloud Identity 或 G Suite,但您还无法使用这些用户登录。若要允许用户登录,您仍需要配置单点登录。

创建企业应用

创建第二个企业应用来处理单点登录:

  1. Azure 门户中,导航到 Azure Active Directory > Enterprise applications
  2. 点击 New application
  3. 搜索 Google Cloud,然后点击结果列表中的 Google Cloud/G Suite Connector by Microsoft
  4. 将应用的名称设置为 Google Cloud
  5. 点击 Add

    添加应用可能需要几秒钟的时间。然后,您会被重定向到标题为 Google Cloud - 概览 (Google Cloud - Overview) 的页面。

  6. 在左侧菜单中,点击管理 > 属性

  7. 启用以供用户登录设置为

  8. 请将需要使用用户分配设置为,除非您希望允许所有用户使用单点登录。

  9. 点击保存

配置用户分配

如果您已经知道只有某部分用户需要访问 Google Cloud,则可以选择通过向特定用户或用户群组分配企业应用来限定允许登录的那部分用户。

如果您之前将需要使用用户分配设置为,则可以跳过以下步骤。

  1. 在左侧菜单中,点击管理 > 用户和组
  2. 点击添加用户
  3. 选择用户和组/未选择内容
  4. 选择要允许使用单点登录的用户或组。
  5. 点击选择
  6. 点击分配

配置 SAML 设置

要使 Cloud Identity 能够使用 Azure AD 进行身份验证,您必须调整某些设置:

  1. 在左侧菜单中,点击 Manage > Single sign-on
  2. 在投票屏幕上,点击 SAML 卡片。
  3. Basic SAML Configuration 卡片上,点击 图标。
  4. Basic SAML Configuration 对话框中,输入以下设置:
    1. Identifier (Entity ID)google.com
    2. Reply URLhttps://www.google.com/
    3. Sign on URLhttps://www.google.com/a/[PRIMARY-DOMAIN]/ServiceLogin?continue=https://console.cloud.google.com/,注意将 [PRIMARY-DOMAIN] 替换为您的 Cloud Identity 或 G Suite 帐号使用的主域名。
  5. 点击 Save,然后点击 X 关闭该对话框。
  6. SAML Signing Certificate 卡片上,找到标记为 Certificate (Raw) 的条目,然后点击 Download 将该证书下载到本地计算机。
  7. Set up Google Cloud 卡片上,查找 Login URLLogout URL。您很快就会需要这些网址。

其余步骤因您是通过电子邮件地址还是 UPN 映射用户而有所不同。

通过 UPN 映射

  1. User Attributes & Claims 卡片上,点击 图标。
  2. 删除 Additional claims 下列出的所有声明。您可以通过点击 按钮并选择 Delete 来删除记录。
  3. 现在,特性和声明列表应如下所示:

    “User Attributes & Claims”对话框

  4. 点击 X 关闭该对话框。

通过电子邮件地址映射

  1. User Attributes & Claims 卡片上,点击 图标。
  2. 选择标为 Unique User Identifier (Name ID) 的行
  3. Source attribute 更改为 user.mail
  4. 点击 Save
  5. 删除 Additional claims 下列出的所有声明。如需删除所有记录,请点击 ,然后点击 Delete

    “User Attributes & Claims”对话框

  6. 点击 关闭该对话框。

配置 Cloud Identity 或 G Suite 以进行单点登录

现在您已准备好 Azure AD 进行单点登录,接下来可以在 Cloud Identity 或 G Suite 中启用单点登录:

  1. 打开管理控制台,然后使用超级用户登录。
  2. 在菜单中,导航到安全性 > 设置
  3. 点击设置采用第三方身份提供商的单点登录 (SSO)
  4. 验证证书下方,点击选择文件,然后选择先前下载的令牌签名证书。
  5. 点击上传
  6. 点击保存
  7. 确保已启用设置采用第三方身份提供商的单点登录
  8. 输入以下设置:
    1. 登录页面网址:输入 Azure 门户的 Set up Google Cloud 卡片中的 Login URL
    2. 退出页面网址:输入 Azure 门户的 Set up Google Cloud 卡片中的 Logout URL
    3. 更改密码网址https://account.activedirectory.windowsazure.com/changepassword.aspx
  9. 点击保存
  10. 在下一页上,确认您打算启用单点登录,然后点击我理解并同意
  11. 点击右上角头像退出管理控制台。 然后点击退出

测试单点登录

现在您已在 Azure AD 和 Cloud Identity 或 G Suite 中都完成了单点登录配置,接下来可以通过以下两种方式访问 Google Cloud:

如需检查第二种方式是否按预期工作,请运行以下测试:

  1. 选择已预配到 Cloud Identity 或 G Suite 且未被分配超级用户权限的 Azure AD 用户。由于具有超级用户权限的用户始终必须使用 Google 凭据登录,因此不适合测试单点登录。
  2. 打开新的浏览器窗口,然后转到 https://console.cloud.google.com/
  3. 在显示的“Google 登录”页面中,输入用户的电子邮件地址,然后点击下一步。如果您使用网域替换,则此地址必须是已替换的电子邮件地址。

    “Google 登录”对话框

  4. 您将被重定向到 Azure AD 并将看到另一个登录提示。 输入用户的电子邮件地址(不使用网域替换),然后点击下一步

    “Azure AD 登录”对话框

  5. 输入密码后,系统会提示您是否保持登录状态。暂时选择

    成功进行身份验证后,Azure AD 应将您重定向回“Google 登录”。由于这是您首次使用此用户登录,因此系统会询问您是否接受 Google 服务条款和隐私权政策。

  6. 如果您同意这些条款,请点击接受

    您将被重定向到 Cloud Console,Cloud Console 会要求您确认偏好设置并接受 Google Cloud 服务条款。

  7. 如果您同意这些条款,请选择,然后点击同意并继续

  8. 点击页面左上角的头像图标,然后点击退出登录

    您将被重定向到 Azure AD 页面,确认您已成功退出。

请注意,具有超级用户权限的用户不必进行单点登录,因此您仍然可以使用管理控制台来验证或更改设置。

清理

为避免因本教程中使用的资源导致您的 Google Cloud Platform 帐号产生费用,请执行以下操作:

如需在 Cloud Identity 或 G Suite 帐号中停用单点登录,请执行以下步骤:

  • 打开管理控制台,然后使用您在注册 Cloud Identity 或 G Suite 时创建的超级用户登录。
  • 在菜单中,导航到安全性 > 设置
  • 点击设置采用第三方身份提供商的单点登录 (SSO)
  • 确保已停用设置采用第三方身份提供商的单点登录

您可以在 Azure AD 中移除单点登录和预配设置,如下所示:

  • Azure 门户中,导航到 Azure AD > Enterprise applications
  • 从应用列表中选择 Google Cloud
  • 在左侧菜单中,点击 Manage > Single sign-on
  • 点击删除
  • 点击确认删除。

后续步骤