本文介绍如何配置 Identity-Aware Proxy (IAP) 以使用外部身份。通过将 IAP 和 Identity Platform 结合使用,您可以使用多种身份提供商(例如 OAuth、SAML、OIDC 等)对用户进行身份验证,而不是只使用 Google 账号。
启用和配置 Identity Platform
IAP 使用 Identity Platform 来对外部身份进行身份验证。如需了解如何启用 Identity Platform,请参阅 Identity Platform 快速入门。
如果要利用多个租户,则还需要遵循多租户使用入门中的步骤。如果不需要隔离资源,则可以跳过此步骤,并在项目级层配置所有提供程序。如果不确定是否应启用多租户,请查阅外部身份概览。
最后,您需要启用提供程序。快速入门介绍了如何使用简单的用户名和密码身份验证,但是 Identity Platform 支持多种提供程序类型,包括:
- 电子邮件和密码
- OAuth(例如 Google、Facebook、Twitter 等)
- SAML
- OIDC
- 电话号码
- 匿名
请参阅 Identity Platform 文档的其余部分,了解如何配置其他提供程序。请注意,不支持将手机号码和匿名身份验证与多租户一起使用。 IAP 不支持使用电子邮件链接进行无密码登录。
允许 IAP 使用外部身份
一旦设置了 Identity Platform,您就可以配置 IAP 以将其用于身份验证。
在 Google Cloud 控制台中打开 IAP 页面。
打开 IAP 页面选择您配置 Identity Platform 时使用的同一项目。不支持使用其他项目。
选择应用标签页。
找到您要使用 IAP 限制访问的服务。
将 IAP 列中的开关切换到开启。
在侧面板中,点击使用外部身份来获得授权框中的开始。
确认您的选择。
在 Identity Platform 侧面板中:
选择是构建自己的登录页面,还是让 IAP 为您创建一个。
让 IAP 创建登录页面是最快的入门方法。您无需部署其他服务和编写任何新代码,即可使用 JSON 指定细微的自定义设置。如需了解详情,请参阅在 Cloud Run 上托管身份验证界面。
网域限定共享:默认情况下,如果项目受组织政策中网域限定共享限制的约束,您将无法创建公共服务。您可以使用标记和条件政策来避免特定服务受到此限制条件的约束。如需了解详情,请参阅关于在实施网域限定共享时创建公共 Cloud Run 服务的博文。
构建自己的页面比较复杂,但您可以完全控制身份验证流程和体验。如需了解详情,请参阅使用 FirebaseUI 创建身份验证界面和创建自定义身份验证界面。
如果您选择构建自己的界面,请输入身份验证网址。IAP 会将收到的未经身份验证的请求重定向到此网址。
在网址中添加您的 API 密钥是可选的。如果您不提供密钥,Google Cloud 控制台将自动附加您的默认密钥。
选择是使用项目提供商还是租户。
选中提供商或租户对应的复选框以将其启用。如果您需要修改提供商或租户,请选择配置提供商。
点击保存。
恭喜!IAP 已配置为使用外部身份对用户进行身份验证。
切换回 Google 身份
使用外部身份时,不能使用 IAM 进行授权。如果您想切换回 Google 身份以便利用 IAM,请按以下步骤操作:
返回 Google Cloud 控制台中的 IAP 页面。
打开 IAP 页面选择配置为使用 IAP 的资源。
打开 Identity Platform 信息面板。
选择使用 IAM 管理该资源。
请注意,切换回 Google 身份将清除您的身份验证网址以及关联的项目和租户。