You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Keycloak以access_type=offline对接Google认证获取刷新令牌?

解决Keycloak对接Google认证无法获取Refresh Token的问题

我之前踩过这个坑!Google在OAuth2离线令牌的处理上确实不走寻常路——它不遵循标准的offline_access scope约定,而是要求认证请求必须带上access_type=offline参数才行。下面是具体的Keycloak配置步骤:

1. 打开Google身份提供者配置

登录Keycloak管理控制台,进入目标Realm,点击左侧菜单的Identity Providers,找到已创建的Google提供者(如果还没创建,先点「Add provider」选择Google)。

2. 添加关键认证参数

在Google提供者的配置页面,滚动到Advanced Settings(高级设置)区域,找到Authentication URL Parameters(认证URL参数):

  • 点击「Add parameter」
  • 参数名填:access_type
  • 参数值填:offline

这一步是核心,只有带上这个参数,Google才会返回refresh token。

3. 检查基础Scope配置

虽然不需要offline_access,但要确保你请求了必要的基础Scope,比如openid、email、profile。这些可以在Google提供者配置的Scopes字段里设置,默认一般已经包含,但建议确认一下。

4. 额外提示:强制返回Refresh Token

如果用户之前已经授权过你的应用,Google可能不会重复返回refresh token。如果需要每次认证都获取新的refresh token,可以在Authentication URL Parameters里再加一行:

  • 参数名:prompt
  • 参数值:consent

配置完成后,重新测试登录流程,应该就能拿到refresh token了。如果还是有问题,可以去Keycloak的日志里排查,确认认证请求是否正确带上了access_type=offline参数。

内容的提问来源于stack exchange,提问作者raisercostin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:52:09