启用外部身份

本文介绍如何配置 Identity-Aware Proxy (IAP) 以使用外部身份。通过将 IAP 和 Identity Platform 结合使用,您可以使用多种身份提供商(例如 OAuth、SAML、OIDC 等)对用户进行身份验证,而不是只使用 Google 账号。

启用和配置 Identity Platform

IAP 使用 Identity Platform 来对外部身份进行身份验证。如需了解如何启用 Identity Platform,请参阅 Identity Platform 快速入门

如果要利用多个租户,则还需要遵循多租户使用入门中的步骤。如果不需要隔离资源,则可以跳过此步骤,并在项目级层配置所有提供程序。如果不确定是否应启用多租户,请查阅外部身份概览

最后,您需要启用提供程序。quickstart介绍了如何使用简单的用户名和密码身份验证,但是 Identity Platform 支持多种提供程序类型,包括:

  • 电子邮件和密码
  • OAuth(例如 Google、Facebook、Twitter 等)
  • SAML
  • OIDC
  • 电话号码
  • 匿名

请参阅 Identity Platform 文档的其余部分,了解如何配置其他提供程序。请注意,手机号码和匿名身份验证不支持多租户。IAP 不支持使用电子邮件链接进行无密码登录。

允许 IAP 使用外部身份

一旦设置了 Identity Platform,您就可以配置 IAP 以将其用于身份验证。

  1. 在 Google Cloud 控制台中打开 IAP 页面。
    打开 IAP 页面

  2. 选择您配置 Identity Platform 时使用的同一项目。不支持使用其他项目。

  3. 选择应用程序标签页。

  4. 找到您要使用 IAP 限制访问的 App Engine 应用或 Compute Engine 服务。

  5. 将 IAP 列中的开关切换到开启

  6. 在侧面板中,点击使用外部身份来获得授权框中的开始

  7. 确认您的选择。

  8. 在 Identity Platform 侧面板中:

    1. 选择是构建自己的登录页面,还是让 IAP 为您创建一个。

      让 IAP 创建登录页面是最快的入门方法。您无需部署其他服务和编写任何新代码,即可使用 JSON 指定细微的自定义设置。如需了解详情,请参阅在 Cloud Run 上托管身份验证界面

      网域限制共享:如果项目受到组织政策中的网域限制共享限制条件的约束,则默认情况下,您将无法创建公共服务。您可以使用标记和条件政策来使特定服务不受此限制条件的约束。如需了解详情,请参阅有关在强制执行网域限定共享时创建公共 Cloud Run 服务的博文。

      构建自己的页面比较复杂,但您可以完全控制身份验证流程和体验。如需了解详情,请参阅使用 FirebaseUI 创建身份验证界面创建自定义身份验证界面

    2. 如果您选择构建自己的界面,请输入身份验证网址。IAP 会将收到的未经身份验证的请求重定向到此网址。

      在网址中添加您的 API 密钥是可选的。如果您不提供密钥,Google Cloud 控制台会自动附加您的默认密钥。

    3. 选择是使用项目提供商还是租户

    4. 选中提供商或租户对应的复选框以将其启用。如果您需要修改提供商或租户,请选择配置提供商

  9. 点击保存

恭喜!IAP 已配置为使用外部身份对用户进行身份验证。

切换回 Google 身份

使用外部身份时,不能使用 IAM 进行授权。如果您想切换回 Google 身份以便利用 IAM,请按以下步骤操作:

  1. 返回 Google Cloud 控制台中的 IAP 页面。
    打开 IAP 页面

  2. 选择配置为使用 IAP 的资源。

  3. 打开 Identity Platform 信息面板。

  4. 选择使用 IAM 管理该资源

请注意,切换回 Google 身份将清除您的身份验证网址以及关联的项目和租户。

后续步骤