对用户进行身份验证

为了对 Google Cloud 应用中的用户进行身份验证,Google 提供了以下用户身份验证方法:

身份验证服务 摘要
Identity Platform(推荐) 使用密码、电话号码、主流联合身份提供方(如 Google、Facebook、Twitter 以及任何支持 SAML 或 OpenID Connect 协议的提供方)对用户进行身份验证。它提供企业功能,包括多重身份验证、OIDC 和 SAML 单点登录支持、多租户、99.95% SLA 等。

:启动新项目时推荐使用该方法,以便使用 Identity Platform 的功能以及 Firebase Authentication 中的旧版功能
Firebase Authentication 使用不同的身份验证选项(包括 Google、Facebook 和 Twitter)对用户进行身份验证。Firebase Authentication 支持的用户数量最多,而且需要维护的代码量最小。

使用最少的步骤部署解决方案的推荐方法。
网页版 Google Identity 服务 使用 Gmail 和 Google Workspace 中的 Google 用户账号对用户进行身份验证。

推荐使用此方法来支持 Google 专用账号或在现有登录系统中支持 Google 账号。
OAuth 2.0 和 OpenID Connect 提供您选择的提供方(包括 Google)的联合身份。

如果您想自行构建用户身份验证协议,建议您使用这种方法。
Identity-Aware Proxy (IAP) 通过在 App Engine 应用上方添加身份和访问权限管理 (IAM) 验证层来提供身份验证。IAP 允许您在请求到达应用资源之前控制对 App Engine 服务的访问权限。这使得 IAP 不适合防范同一 Google Cloud 项目中的活动。

如果您想使用 Google 账号和 IAM 来控制用户访问权限,建议您使用此方法。
Users API 对使用 Google 和 Google Workspace 账号的用户进行身份验证。App Engine Users 服务只能通过旧版捆绑服务访问。

Identity Platform

Identity Platform 是一个客户身份和访问权限管理 (CIAM) 平台,组织可利用该平台为用户在其应用中注册和登录自定义身份和身份验证。Identity Platform 支持多种身份验证方法(SAML、OIDC、电子邮件地址/密码、社交媒体服务、电话号码和自定义身份验证),以便为各种身份验证解决方案提供灵活的集成选项。Identity Platform 以 Google Cloud 的全球规模、性能、网络和安全性为基础,提供企业级的支持和服务等级协议 (SLA),可满足几乎所有应用或服务的需求。

该解决方案最适合大多数需要基于可靠的企业级功能和 SLA 的灵活身份验证选项的用户。

Identity Platform 提供了自己的用户身份系统。如果您已为您的网域使用 Google Workspace,并且想要根据该登录信息对用户进行身份验证,则应使用网页版 Google Identity 服务

如需了解如何将 Identity Platform 与 App Engine 集成,请参阅在 App Engine 上登录用户方法指南。

Firebase Authentication

Firebase Authentication 提供可自定义的普适性身份和身份验证服务,为您处理用户注册和登录流程。与 Identity Platform 类似,Firebase Authentication 支持多种身份验证方法(SAML、OIDC、电子邮件地址/密码、社交媒体、移动设备和自定义身份验证),以便为各种身份验证解决方案提供灵活的集成选项。

Firebase Authentication 与 Identity Platform 的区别在于,它缺少某些企业功能。如需了解详情,请参阅 Identity Platform 与 Firebase Authentication 之间的区别

如果您希望使用最轻量级的方法为 App Engine 应用设置用户身份验证,则此解决方案是最佳选择。对于许多用户而言,Firebase Authentication 是实现或测试身份验证的最快方法。

如需详细了解 Firebase Authentication,请参阅以下资源:

  • Firebase Web 教程重点介绍了如何在网站上使用 Firebase,包括以 Google 为身份提供方的用户登录方式。

  • Firebase 快速入门应用通过联合登录和用户名/密码登录示例,展示了如何跨平台集成 Firebase。示例演示了如何使用 JavaScript SDK 进行 Firebase 身份验证,以及如何在 iOSAndroid 上进行 Firebase 身份验证。

网页版 Google Identity 服务

网页版 Google Identity 服务是基于 OAuth 2.0 和 OpenID Connect 协议构建的 Google 登录客户端库。通过提供在您网站或应用中显示的“使用 Google 账号登录”按钮,您可以快速轻松地登录。

如果您想根据用户的 Google 账号对用户进行身份验证,或者您为网域使用 Google 管理控制台,则此解决方案是最佳解决方案。

OAuth 2.0 和 OpenID Connect

OpenID Connect 是以 OAuth 2.0 协议为基础构建的身份层。Google 提供的 OAuth 2.0 实现符合 OpenID Connect 规范,并且已通过 OpenID 认证。 还有几个其他提供方可用。

如果您希望完全自定义和控制身份验证实现,此解决方案是最佳选择。

如需了解详情,请参阅 OpenID Connect

Identity-Aware Proxy (IAP)

与在应用中实现身份验证的其他身份验证选项不同,IAP 通过在资源的前面添加 IAM 身份验证和授权层来保护应用的安全。该层会在应用到达之前验证入站外部请求。未经授权的用户将无权访问您的 App Engine 应用。

您可以为整个应用、特定服务或应用版本启用 IAP。受 IAP 保护的服务或应用只能由具有正确 IAM 角色主账号访问。如果用户尝试访问受 IAP 保护的资源,IAP 会为您执行身份验证和授权检查。如需了解 IAP 如何保护应用资源,请参阅 IAP 概览

IAP 无法针对项目内的活动提供保护,例如某个 App Engine 服务访问同一项目中的其他服务。

如果您想使用 Google 用户账号和 IAM 来授权用户访问,则最适合使用此解决方案。

如需了解如何为 App Engine 资源配置 IAP,请参阅 IAP 快速入门

Users API

Users API 允许 App Engine 应用执行以下任务:

  • 检测当前用户是否使用了 Google 账号登录。
  • 将用户重定向到相应的登录页面进行登录。
  • 如果用户还没有 Google 账号,则要求他们创建一个账号。

用户登录应用后,应用可以访问用户的电子邮件地址。应用还可以检测当前用户是否为管理员,从而轻松实现仅管理员能够访问的应用区域。

如果您要将现有应用从第一代运行时升级到第二代运行时,并且希望继续使用 Users API,则此解决方案非常有效。如果您希望稍后能够灵活地迁移到 Cloud Run 或其他 Google Cloud 应用托管平台,我们建议您迁移到更现代的用户身份验证解决方案。

如需了解如何集成 Users API,请参阅 Users API 概览

其他身份验证服务

Auth0 使用多个身份提供方和单点登录功能进行身份验证。