本文介绍如何配置 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 身份将清除您的身份验证网址以及关联的项目和租户。