在混合环境中对员工用户进行身份验证的模式

Last reviewed 2022-10-02 UTC

本文是多篇系列文章中的第二篇,该系列介绍了如何将您的身份管理解决方案扩展到 Google Cloud,以便您的员工用户能够在混合计算环境中进行身份验证并使用服务。

该系列文章包含以下部分:

简介

在实现混合策略的过程中将您的 IT 环境扩展到 Google Cloud 时,我们建议您采用一致的方法来跨环境管理身份。在设计和定制架构来满足这些限制条件和要求时,您可以依赖一些常见模式。这些模式分为两类:

  • 将外部身份提供商 (IdP) 与 GCP 联合的模式。这些模式旨在让 Google 成为您的员工用户的 IdP,从而自动维护 Google 身份并确保您的 IdP 始终为“可靠来源”。
  • 将 IdP 扩展到 Google Cloud 的模式。在这些模式中,您可以允许部署在 Google Cloud 上的应用重复使用您的 IdP,具体方式是直接连接到该 IdP 或在 Google Cloud 上维护该 IdP 的一个副本。

将外部 IdP 与 Google Cloud 联合的模式

如需允许访问 Google Cloud 控制台、Google Cloud CLI 或将 Google 作为 IdP 的其他任何资源,员工用户必须具有 Google 身份。当所有员工都已经有了 IdP 账号的时候,再为每一位员工手动维护 Google 身份将非常麻烦。通过在 IdP 和 Google Cloud 之间联合用户身份,您可以自动维护 Google 账号并将其生命周期与现有账号联系起来。 这种联合有助于确保达到以下目标:

  • 您的 IdP 仍然是身份管理的唯一可靠来源。
  • 对于 IdP 管理的所有用户账号或所选的部分账号,系统将自动创建 Google 账号。
  • 如果在 IdP 中停用或删除了某个账号,那么相应的 Google 账号也会随之暂停或删除。
  • 为防止密码或其他凭据被复制,用户身份验证操作将委托给您的 IdP。

使用 GCDS 和 AD FS 将 Active Directory 与 Cloud Identity 联合

如果您使用 Active Directory 作为 IdP,可以使用 Google Cloud Directory Sync (GCDS) 和 Active Directory Federation Services (AD FS) 将 Active Directory 与 Cloud Identity 联合

  • Google Cloud Directory Sync 是 Google 提供的免费工具,可实现同步过程。Google Cloud Directory Sync 通过安全套接字层 (SSL) 与 Google Identity Platform 通信,通常在现有计算环境中运行。
  • AD FS 由 Microsoft 作为 Windows Server 的一部分提供。借助 AD FS,您可以使用 Active Directory 进行联合身份验证。 AD FS 通常在现有计算环境中运行。

如需详细了解此方法,请参阅将 GCP 与 Active Directory 联合

模式:使用 GCDS 和 AD FS 将 Active Directory 与 Cloud Identity 联合

作为此模式的一种变体,您还可以将 Active Directory 轻量级目录服务 (AD LDS) 或其他 LDAP 目录与 AD FS 或其他符合 SAML 标准的 IdP 搭配使用。

用户体验

  1. 当您对受保护的资源发出请求时,系统会将您重定向到 Google 登录屏幕并提示您输入电子邮件地址。
  2. 如果发现该电子邮件地址与某一已从 Active Directory 同步的账号相关联,系统就会将您重定向到 AD FS。
  3. 您可能会看到一个登录屏幕,提示您输入 Active Directory 用户名和密码,具体取决于 AD FS 的配置。AD FS 也可能会尝试根据您的 Windows 登录信息 (IWA) 为您自动登录。
  4. 当您通过 AD FS 身份验证后,系统会将您重定向回该受保护资源。

优势

  • 这种方法可跨 Google Cloud 上的本地应用和资源实现单点登录体验。
  • 如果您已将 AD FS 配置为需要多重身份验证,该配置将自动应用于 Google Cloud。
  • 您无需将密码或其他凭据同步到 Google。
  • 由于 Cloud Identity API 可公开访问,因此您无需在本地网络和 Google Cloud 之间建立混合连接

最佳实践

  • Active Directory 和 Cloud Identity 使用不同的逻辑结构。请务必了解这些差异,并评估哪种网域、身份和群组映射方式最适合您的情况。如需了解详情,请参阅我们的关于将 Google Cloud 与 Active Directory 联合的指南
  • 同步群组和用户。通过这种方法,您可以设置 IAM,从而利用 Active Directory 中的群组成员资格来控制谁有权访问 Google Cloud 中的资源。
  • 部署并公开 AD FS 以供员工用户进行访问;不过除非必要,否则不要公开 AD FS。尽管要求员工用户必须能够访问 AD FS,但并未要求必须能够从 Google 或部署在 Google Cloud 上的任何应用访问 AD FS。
  • 考虑在 AD FS 中启用集成式 Windows 身份验证 (IWA),以允许用户根据其 Windows 登录信息自动登录。
  • 如果 AD FS 不可用,用户可能无法使用 Google Cloud 控制台或任何其他将 Google 作为 IdP 的资源。因此,请务必根据您的可用性目标对 AD FS 及其所依赖的网域控制器进行部署和规模调整。
  • 如果您借助 Google Cloud 确保业务连续性,那么依赖本地 AD FS 可能影响使用 Google Cloud 作为部署的独立副本的目的。在这种情况下,请考虑在 Google Cloud 上部署所有相关系统的副本:
    • 将 Active Directory 复制到 Google Cloud,并部署 GCDS 以在 Google Cloud 上运行。
    • 在 Google Cloud 上运行专用 AD FS 服务器。这些服务器使用在 Google Cloud 上运行的 Active Directory 网域控制器。
    • 将 Cloud Identity 配置为使用部署在 Google Cloud 上的 AD FS 服务器进行单点登录。

将 Azure AD 与 Cloud Identity 联合

如果您是 Microsoft Office 365 或 Azure 客户,您可能已将本地 Active Directory 连接到 Azure AD。如果所有可能需要访问 Google Cloud 的用户账号均已同步到 Azure AD,您可以通过将 Cloud Identity 与 Azure AD 联合来重复使用此集成,如下图所示。

将 Cloud Identity 与 Azure AD 联合

如需详细了解此方法,请参阅将 GCP 与 Azure Active Directory 联合

用户体验

  1. 当您对受保护的资源发出请求时,系统会将您重定向到 Google 登录屏幕并提示您输入电子邮件地址。
  2. 如果该电子邮件地址与某一已从 Azure AD 同步的账号相关联,系统会将您重定向到 Azure AD。
  3. Azure AD 可能提示您输入用户名和密码,具体取决于本地 Active Directory 与 Azure AD 的连接方式。它也可能会将您重定向到本地 AD FS。
  4. 当您成功通过 Azure AD 身份验证后,系统会将您重定向回该受保护资源。

优势

  • 您无需在本地安装任何其他软件。
  • 通过这种方法,您可以跨 Office 365、Azure 和 Google Cloud 上的资源实现单点登录体验。
  • 如果您已将 Azure AD 配置为需要多重身份验证 (MFA),MFA 将自动应用于 Google Cloud。
  • 如果您的本地 Active Directory 使用多个网域或林,并且您已自行将 Azure AD Connect 配置为将此结构映射到 Azure AD 租户,可以利用此集成。
  • 您无需将密码或其他凭据同步到 Google。
  • 由于 Cloud Identity API 可公开访问,因此您无需在本地网络和 Google Cloud 之间或者在 Azure 和 Google Cloud 之间建立混合连接
  • 在 Office 365 门户中,您可以将 Google Cloud 控制台显示为磁贴。

最佳实践

  • 由于 Azure AD 和 Cloud Identity 采用不同的逻辑结构,因此您必须了解二者的具体差异,评估哪种网域、身份和群组映射方式最适合您的情况。如需了解详情,请参阅将 Google Cloud 与 Azure AD 联合
  • 同步群组和用户。通过此方法,您可以设置 IAM,以便在 Azure AD 中使用群组成员资格来控制谁有权访问 Google Cloud 中的资源。
  • 如果您借助 Google Cloud 确保业务连续性,那么依赖 Azure AD 进行身份验证可能影响将 Google Cloud 用作部署的独立副本这一目的。

将外部 IdP 扩展到 Google Cloud 的模式

您计划在 Google Cloud 上部署的某些应用可能需要使用 Cloud Identity 未提供的身份验证协议。为了支持这些工作负载,您必须允许这些应用在 Google Cloud 中使用您的 IdP。

以下部分介绍了允许部署在 Google Cloud 上的工作负载使用 IdP 的常见模式。

将本地 AD FS 公开到 Google Cloud

如果某应用需要使用 WS-Trust 或 WS-Federation,或者在使用 OpenID Connect 时依赖于 AD FS 特定的功能或声明,您可以允许该应用直接使用 AD FS 进行身份验证。

直接使用 AD FS 进行身份验证的应用

通过使用 AD FS,应用可对用户进行身份验证。但是,由于身份验证并非基于 Google 身份,因此应用将无法执行任何使用用户凭据进行身份验证的 API 调用。对 Google Cloud API 的任何调用必须使用服务账号进行身份验证。

用户体验

  1. 当您对受保护的资源发出请求时,系统会将您重定向到 ADFS 登录屏幕并提示您输入电子邮件地址。如果 AD FS 未公开到互联网,那么要访问 AD FS,您可能需要连接到公司网络或企业 VPN。
  2. 您可能会看到一个登录屏幕,提示您输入 Active Directory 用户名和密码,具体取决于 AD FS 的配置。AD FS 也可能会尝试根据您的 Windows 登录信息为您自动登录。
  3. 当您通过 AD FS 身份验证后,系统会将您重定向回该受保护资源。

优势

  • 您可以使用 Cloud Identity 不支持的身份验证协议,包括 WS-Trust 和 WS-Federation。
  • 针对 AD FS 对应用进行开发和测试后,可避免因将应用切换为使用 Cloud Identity 而可能引发的风险。
  • 无需在本地网络和 Google Cloud 之间建立混合连接

最佳实践

  • 部署并公开 AD FS 以供员工用户进行访问;不过除非必要,否则不要公开 AD FS。尽管要求员工用户必须能够访问 AD FS,但并未要求必须能够从 Google 或部署在 Google Cloud 上的任何应用访问 AD FS。
  • 如果 AD FS 不可用,用户可能无法再使用该应用。务必根据您的可用性目标对 AD FS 及其所依赖的网域控制器进行部署和规模调整。
  • 考虑重构依赖于 WS-Trust 和 WS-Federation 的应用,以使其改用 SAML 或 OpenID Connect。
  • 如果应用依赖于在 AD FS 所发布的 IdTokens 中作为声明公开的群组信息,请考虑从其他来源(如 Directory API)中检索群组信息。查询 Directory API 是一项特权操作,需要使用启用了 Google Workspace 全网域委派功能服务账号

将本地 LDAP 目录公开到 Google Cloud

您的某些应用可能要求用户提供其用户名和密码,并使用这些凭据尝试执行 LDAP 绑定操作。如果您无法修改这些应用以使用其他方式(如 SAML)执行身份验证,可以授予其访问本地 LDAP 目录的权限。

授予用户访问本地 LDAP 目录的权限

优势

  • 您无需更改应用。

最佳实践

  • 使用 Cloud VPNCloud Interconnect 在 Google Cloud 和本地网络之间建立混合连接,这样您就不需要通过互联网公开 LDAP 目录。
  • 验证因查询本地 LDAP 目录而带来的延迟时间不会对用户体验产生负面影响。
  • 确保应用和 LDAP 目录之间的通信处于加密状态。您可以使用 Cloud VPN 或搭配 LDAP/S 使用 Cloud Interconnect 来实现此类加密。
  • 如果 LDAP 目录或 Google Cloud 与本地网络之间的专用连接不可用,用户可能无法再使用基于 LDAP 的应用。因此,请务必根据您的可用性目标对各个服务器进行部署和规模调整,并考虑使用冗余 VPN 隧道互连
  • 如果您使用 Google Cloud 来确保业务连续性,那么依赖本地 LDAP 目录可能会影响使用 Google Cloud 作为现有部署的独立副本的目的。在这种情况下,请考虑将 LDAP 目录复制到 Google Cloud
  • 如果您使用 Active Directory,请考虑在 Google Cloud 上运行一个副本,尤其是在您打算将运行于 Google Cloud 上的 Windows 机器加入 Active Directory 网域的情况下。

将本地 LDAP 目录复制到 Google Cloud

将本地 LDAP 目录复制到 Google Cloud 的模式类似于将本地 LDAP 目录公开到 Google Cloud。对于使用 LDAP 验证用户名和密码的应用,这种方法旨在能够在 Google Cloud 上运行这些应用。您可以在 Google Cloud 上维护本地目录的一个副本,而不允许此类应用查询本地 LDAP 目录。

在 Google Cloud 上维护本地目录的一个副本

优势

  • 您无需更改应用。
  • 对于在 Google Cloud 上运行的基于 LDAP 的应用,其可用性不会受本地目录的可用性或与本地网络的连接性影响。此模式非常适合业务连续性混合场景

最佳实践

  • 使用 Cloud VPNCloud Interconnect 在 Google Cloud 和本地网络之间建立混合连接,这样您就不需要通过互联网公开 LDAP 目录。
  • 确保通过安全通道执行本地 LDAP 目录之间的复制。
  • 根据可用性目标,跨多个地区或区域部署多个 LDAP 目录副本。您可以使用内部负载平衡器在部署于同一区域的多个副本之间分布 LDAP 连接。
  • 搭配共享 VPC 使用单独的 Google Cloud 项目来部署 LDAP 副本,并授予对此项目的最小访问权限。

将本地 Active Directory 扩展到 Google Cloud

您计划在 Google Cloud 上部署的某些工作负载可能依赖于 Active Directory 网域服务,例如:

  • 需要加入网域的 Windows 机器
  • 使用 Kerberos 或 NTLM 进行身份验证的应用
  • 使用 Active Directory 作为 LDAP 目录来验证用户名和密码的应用

如需支持此类工作负载,您可以将本地 Active Directory 林扩展到 Google Cloud,例如,将资源林部署到 Google Cloud 并将其连接到本地 Active Directory 林,如下图所示。

将资源林连接到本地 Active Directory 林

如需详细了解此方法以及在混合环境中部署 Active Directory 的其他方法,请参阅在混合环境中使用 Active Directory 的模式

通过在 Google Cloud 上部署其他网域控制器,将本地 Active Directory 林扩展到 Google Cloud

优势

  • 您的工作负载可充分利用 Active Directory,包括能够将 Windows 机器加入 Active Directory 网域。
  • 对于在 Google Cloud 上运行的基于 Active Directory 的应用,其可用性不会受本地资源的可用性或与本地网络的连接性影响。此模式非常适合业务连续性混合场景

最佳实践

  • 使用 Cloud VPNCloud Interconnect 在 Google Cloud 和本地网络之间建立混合连接。
  • 如需最大程度地减少 Google Cloud 与本地网络之间的通信,请为 Google Cloud 部署单独创建一个 Active Directory 站点。您可以为每个共享 VPC 使用一个站点,也可以为每个共享 VPC 和区域使用一个站点,以最大程度地减少区域间通信。
  • 单独创建一个 Active Directory 网域以专用于在 Google Cloud 上部署的资源,并将该网域添加到现有林。使用单独网域有助于减少复制开销和分区大小。
  • 至少部署两个网域控制器并将其分布在多个地区中,以提高可用性。如果您使用多个区域,应考虑在每个区域中都部署网域控制器。
  • 搭配共享 VPC 使用单独的 Google Cloud 项目来部署网域控制器,并授予对此项目的最小访问权限。通过生成密码或访问网域控制器实例的串行控制台,恶意项目成员有可能侵入网域。
  • 考虑在 Google Cloud 上部署 AD FS 服务器场和 GCDS。通过这种方法,您可以将 Active Directory 与 Cloud Identity 联合,而无需依赖资源的可用性或与本地网络的连接性。

后续步骤