Microsoft Entra ID(以前称为 Azure AD)B2B 用户预配和单点登录

Last reviewed 2023-02-27 UTC

本文档介绍如何扩展 Microsoft Entra ID(以前称为 Azure AD)用户预配和单点登录,以便为 Microsoft Entra ID B2B 协作用户启用单点登录 (SSO)。

本文档假定您在组织中使用 Microsoft Office 365 或 Microsoft Entra ID,并且您已将 Microsoft Entra ID 用户预配和单点登录配置为如下图所示。

配置 Microsoft Entra ID 用户预配和单点登录。

在该图中,来自外部身份提供商 (IdP) 和其他 Microsoft Entra ID 租户的用户通过 B2B 登录来登录 Microsoft Entra ID 租户。

目标

  • 扩展 Microsoft Entra ID 用户预配配置,以涵盖 Microsoft Entra B2B 访客用户。
  • 扩展 Microsoft Entra ID SSO 配置以涵盖 Microsoft Entra B2B 访客用户。
  • 配置 Cloud Identity 以限制访客用户的会话时长。

须知事项

确保您已设置 Microsoft Entra ID 用户预配和单点登录

Microsoft Entra B2B 访客用户

借助 Microsoft Entra ID,您可以邀请外部用户作为 Microsoft Entra ID 租户的访客。当您邀请外部用户时,Microsoft Entra ID 会在您的租户中创建一个访客用户账号。这些访客用户账号与常规 Microsoft Entra ID 用户账号之间存在以下区别:

  • 访客用户没有密码。登录时,系统会将访客用户自动重定向到其主租户或受邀时所在的外部身份提供商 (IdP)。
  • 访客用户账号的用户主体名称 (UPN) 使用从邀请对象的电子邮件地址派生的前缀,并与租户的初始网域相结合 - 例如:prefix#EXT#@tenant.onmicrosoft.com
  • 如果您邀请的用户来自其他 Microsoft Entra ID 租户,并且该用户后来被从其主租户中删除,则该访客用户账号在您的 Microsoft Entra ID 租户中仍有效。

这些差异会影响您配置用户预配和单点登录的方式:

  • 由于 onmicrosoft.com 是 Microsoft 所有的 DNS 网域,因此您无法将 tenant.onmicrosoft.com 作为辅助域名添加到您的 Cloud Identity 或 Google Workspace 账号。请注意,在将用户预配到 Cloud Identity 或 Google Workspace 时,您不能使用访客用户的 UPN 作为主电子邮件地址。

    如需将访客用户预配到 Cloud Identity 或 Google Workspace,您必须设置一个将访客用户的 UPN 转换为您的 Cloud Identity 或 Google Workspace 账号使用的网域的映射。

    本文档中设置的 UPN 映射如下表所示。

    Microsoft Entra ID 中的原始 UPN Cloud Identity 或 Google Workspace 中的主电子邮件地址
    常规用户 alice@example.com alice@example.com
    Microsoft Entra ID 访客 charlie@altostrat.com charlie_altostrat.com@example.com
    外部访客 user@hotmail.com user_hotmail.com@example.com
  • 当用户被从其主租户中删除时,Microsoft Entra ID 将不会暂停 Cloud Identity 或 Google Workspace 中的相应用户。这可能会导致安全风险:虽然此类用户进行的使用单点登录的任何尝试都将失败,但现有浏览器会话和刷新令牌(包括 Google Cloud CLI 使用的浏览器会话和刷新令牌)可能在几天或几周内仍有效,从而允许该用户继续访问资源。

    借助本文档中介绍的方法,您可以通过将访客用户预配到 Cloud Identity 或 Google Workspace 中的专用组织部门,以及应用将会话时长限制为 8 小时的政策来降低此风险。该政策可确保浏览器会话和现有刷新令牌在用户被从其主租户中删除后至多 8 小时内失效,从而有效撤消所有访问权限。但是,在您从 Microsoft Entra ID 账号中删除访客用户之前,Cloud Identity 或 Google Workspace 中的用户仍处于活跃状态。

准备 Cloud Identity 或 Google Workspace 账号

在 Cloud Identity 或 Google Workspace 账号中创建一个将在其中预配所有访客用户的组织单元。

  1. 打开管理控制台,然后使用您在注册 Cloud Identity 或 Google Workspace 时创建的超级用户登录。
  2. 在菜单中,转到目录 > 组织部门
  3. 点击创建组织部门,并为组织部门提供名称和说明:
    1. 组织单元名称guests
    2. 说明Microsoft Entra B2B guest users
  4. 点击创建

向组织单元应用将会话时长限制为 8 小时的政策。该会话时长不仅适用于浏览器会话,也会限制 OAuth 刷新令牌的生存期。

  1. 在管理控制台中,点击安全 > 访问权限和数据控件 > Google Cloud 会话控制
  2. 选择组织部门访客并应用以下设置:

    • 重新身份验证政策需要重新身份验证
    • 重新身份验证频率8 小时

      此时长反映了访客用户在 Microsoft Entra ID 中被暂停后仍可访问 Google Cloud 资源的最长时间。

    • 重新身份验证方法密码

      此设置可确保会话过期后,用户必须使用 Microsoft Entra ID 重新进行身份验证。

  3. 点击覆盖

配置 Microsoft Entra ID 预配

现在,您可以调整现有 Microsoft Entra ID 配置,以支持预配 B2B 访客用户。

  1. Azure 门户中,转到 Microsoft Entra ID > 企业应用
  2. 选择您用于用户预配的企业应用 Google Cloud(预配)
  3. 点击管理 > 预配
  4. 点击修改预配
  5. 映射下,点击预配 Microsoft Entra ID 用户
  6. 选择行 userPrincipalName
  7. 修改属性对话框中,应用以下更改:

    1. 映射类型:从直接更改为表达式
    2. 表达式

      Replace([originalUserPrincipalName], "#EXT#@TENANT_DOMAIN", , , "@PRIMARY_DOMAIN", , )

      替换以下内容:

      • TENANT_DOMAIN:您的 Microsoft Entra ID 租户的 .onmicrosoft.com 网域,例如 tenant.onmicrosoft.com
      • PRIMARY_DOMAIN:您的 Cloud Identity 或 Google Workspace 账号使用的主域名,例如 example.org
  8. 点击确定

  9. 选择添加新映射

  10. 修改属性对话框中,配置以下设置:

    1. 映射类型表达式
    2. 表达式

      IIF(Instr([originalUserPrincipalName], "#EXT#", , )="0", "/", "/guests")

    3. 目标属性OrgUnitPath

  11. 点击确定

  12. 点击保存

  13. 点击,确认保存更改将导致用户和组重新同步。

  14. 关闭属性映射对话框。

配置 Microsoft Entra ID 以进行单点登录

为确保访客用户可以使用单点登录进行身份验证,您现在需要扩展现有 Microsoft Entra ID 配置来为访客启用单点登录:

  1. 在 Azure 门户中,转到 Microsoft Entra ID > 企业应用
  2. 选择您用于单点登录的企业应用 Google Cloud
  3. 点击管理 > 单点登录
  4. 在投票屏幕上,点击 SAML 卡片。
  5. 用户属性和声明卡片上,点击修改
  6. 选择标为 Unique User Identifier (Name ID) 的行。
  7. 选择声明条件 (Claim conditions)。
  8. 为外部访客添加条件声明:
    • 用户类型外部访客
    • 来源转换
    • 转换RegexReplace()
    • 参数 1属性
    • 属性user.userprincipalname
    • 正则表达式模式(?'username'^.*?)#EXT#@(?i).*\.onmicrosoft\.com$
    • 替换模式{username}@PRIMARY_DOMAIN,注意将 PRIMARY_DOMAIN 替换为您的 Cloud Identity 或 Google Workspace 账号使用的主域名。
  9. 点击添加
  10. 为来自不同租户的 Microsoft Entra ID 访客添加条件声明:

    • 用户类型Microsoft Entra 访客
    • 来源转换
    • 转换RegexReplace()
    • 参数 1属性
    • 属性user.localuserprincipalname

    • 正则表达式模式(?'username'^.*?)#EXT#@(?i).*\.onmicrosoft\.com$

    • 替换模式{username}@PRIMARY_DOMAIN,注意将 PRIMARY_DOMAIN 替换为您的 Cloud Identity 或 Google Workspace 账号使用的主域名。

  11. 点击添加

  12. 为常规 Microsoft Entra ID 用户添加条件声明:

    • 用户类型成员
    • 来源属性
    • user.userprincipalname
  13. 点击保存

测试单点登录

要验证配置是否正常工作,您的 Microsoft Entra ID 租户中需要有三位测试用户:

  • 常规 Microsoft Entra ID 用户。
  • Microsoft Entra ID 访客用户。这是从其他 Microsoft Entra ID 租户中邀请的用户。
  • 一位外部访客用户。这是使用非 Microsoft Entra ID 电子邮件地址(如 @hotmail.com 地址)邀请的用户。

对每位用户执行以下测试:

  1. 打开新的无痕模式浏览器窗口并转到 https://console.cloud.google.com/
  2. 在显示的 Google 登录页面上,输入在前面的表Cloud Identity 或 Google Workspace 中的主电子邮件地址列中显示的用户电子邮件地址。参阅该表,了解 Cloud Identity 或 Google Workspace 中的电子邮件地址如何从用户主体名称派生而来。

    您将被重定向到 Microsoft Entra ID,并显示另一个登录提示。

  3. 在登录提示处,输入用户的 UPN,并按照说明进行身份验证。

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

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

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

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

  6. 点击头像图标,然后点击退出登录

    您将被重定向到 Microsoft Entra ID 页面,确认您已成功退出登录。

后续步骤