设置 Google 单点登录
OpenID Connect (OIDC) 在 OAuth 2.0 之上增加了身份层,使应用能够验证最终用户的身份,并从身份提供商 (IdP) 获取基本的用户资料信息。在单点登录 (SSO) 部署中,用户通过 IdP 完成身份认证后,即可访问已连接的应用,而无需分别登录每个应用。
Google Identity 为使用 Google 帐号的应用提供身份认证服务。Google Auth Platform 用于管理应用的 OAuth 权限请求页面品牌信息、受众、测试用户和 OAuth 客户端。在此集成中,Apache APISIX 会先将浏览器身份认证委托给 Google,再将请求代理到上游服务。
本指南介绍如何配置 Google Auth Platform 和 Web 应用客户端,并配置 APISIX 以使用带 Proof Key for Code Exchange (PKCE) 的 OIDC 授权码流。当请求中没有有效的 APISIX 会话时,APISIX 会将浏览器重定向到 Google。身份认证成功后,APISIX 使用授权码换取 Token、创建浏览器会话,并继续处理原始请求。
前置条件
- 安装 Docker。
- 安装 cURL 和 OpenSSL。
- 按照快速入门教程使用 Docker 启动 APISIX。
- 拥有 Google Cloud 项目的访问权限,以及配置 Google Auth Platform 和创建 OAuth 客户端的权限。
- 如果计划使用 ADC,请先安装并配置 ADC。
- 如果使用 Admin API 示例且启用了身份验证,请将管理员角色的密钥导出为
ADMIN_API_KEY。请在deployment.admin.admin_key下配置该密钥。Docker 快速入门为了便于本地评估而禁用了身份验证;生产环境中请保持启用。
配置 Google
为外部测试用户配置 Google Auth Platform,然后为 APISIX 创建 Web 应用客户端。
配置应用和受众
登录 Google Cloud 控制台,并选择用于管理 OAuth 配置的项目。打开 Google Auth Platform → 概览,然后配置应用:
- 选择开始。
- 输入
APISIX Authorization Code作为应用名称,并选择用户支持电子邮件地址。 - 选择下一步。
- 选择外部作为受众,然后选择下一步。
- 输入开发者联系电子邮件地址,然后选择下一步。
- 接受 Google API 服务用户数据政策,然后选择继续。
- 选择创建。
应用的初始发布状态为测试。在此状态下,只有被添加为测试用户的帐号才能完成身份认证流程。
添加用于测试的 Google 帐 号:
- 选择受众 → 添加用户。
- 输入帐号的电子邮件地址。
- 选择保存。
对于生产应用,请先配置必需的品牌信息,并查看 Google 的发布和验证要求,再将应用更改为正式版。
创建 OAuth 客户端
创建 Google 用于标识 APISIX 的 Web 应用客户端:
- 选择客户端 → 创建客户端。
- 选择 Web 应用作为应用类型。
- 输入
APISIX Authorization Code作为客户端名称。 - 在已获授权的重定向 URI 下,选择添加 URI,然后输入
http://localhost:9080/anything/user/callback。 - 选择创建。

Google 会在客户端创建后显示客户端 ID 和客户端密钥。请在关闭对话框前复制这两个值。之后仍可在客户端详情页查看客户端 ID,但 Google 不会再次显示或提供客户端密钥下载。如果密钥丢失,请添加新的客户端密钥。
在生产环境中,请使用用户可以访问的 HTTPS 重定向端点,并在 OAuth 客户端中注册完全一致的 URI。