如何配置Google作为身份提供商结合OAuth/OIDC实现多应用单点登录?
对应Google身份服务说明
你所需的能力对应的是Google原生支持的OAuth 2.0与OpenID Connect (OIDC) 身份认证服务,不属于直接对外暴露用户邮箱/密码的提供商类型:Google会在自身侧统一完成用户账号密码核验、二次登录验证、风险登录拦截等逻辑,你的应用全程不会接触到用户的谷歌账号明文凭证,完全符合标准OAuth/OIDC的工作流程要求,不需要调用非标准的谷歌专属登录API。
接入实现步骤
- 第一步:在Google Cloud Console创建OAuth 2.0客户端凭证,配置你应用的授权回调地址、允许的作用域,基础场景下默认申请
openid、email、profile三个作用域即可获取到用户的唯一身份标识、邮箱、基本资料信息 - 第二步:客户端侧按标准OIDC授权码流程发起请求,跳转至Google的公开授权端点,按规范携带
client_id、redirect_uri、response_type=code、scope=openid email profile、state等标准参数即可 - 第三步:用户在Google侧完成登录、身份核验、二次验证(若用户账号开启了该能力)操作后,会自动跳转回你预先配置的回调地址,同时携带授权码
code参数 - 第四步:后端服务携带拿到的
code、client_id、client_secret参数,向Google的公开令牌端点发起请求,兑换得到access_token、id_token、refresh_token三类凭证 - 第五步:本地校验
id_token的签名合法性(Google会定期公开签名公钥,可本地完成校验无需调用额外接口),解析后即可获取用户的身份信息,完成当前应用的登录态创建 - 第六步:多应用单点登录实现:所有接入同一Google Cloud账号下关联OAuth凭证的应用,只要用户在当前浏览器环境已经完成过谷歌账号登录,后续发起OIDC授权请求时会自动跳过登录核验步骤,直接返回授权码,实现跨应用免重复登录的SSO效果
注意事项
- 如果你是为企业/团队内部的多应用搭建SSO体系,建议搭配Google Workspace的企业身份管理能力使用,支持自定义用户组、权限策略、强制全员二次验证等管理功能,更适配企业级场景
- 所有涉及
client_secret的令牌兑换、刷新操作都要放在后端服务执行,禁止在前端侧暴露client_secret,避免凭证泄露 id_token默认有效期为1小时,过期后可使用refresh_token兑换新的有效凭证,不需要用户重复登录验证
内容的提问来源于stack exchange,提问作者user44021
相关产品推荐
相关产品推荐

