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

Keycloak v24.x能否添加仅支持OAuth2而非OIDC的身份提供商?

在Keycloak v24.x中配置仅支持OAuth2的身份提供商

可以实现,但默认通过well-known URL自动配置的身份提供商会强制携带OIDC的openid scope,这是导致你报错的核心原因。以下是具体解决步骤:

1. 手动创建身份提供商(不要使用well-known URL)

  • 登录Keycloak控制台,进入目标Realm → 「身份提供商」→ 「添加提供商」,选择OpenID Connect类型(Keycloak没有单独的纯OAuth2提供商类型,但可通过调整配置适配)
  • 填写核心配置项:
    • 提供商ID:自定义标识(例如oauth2-only-provider)
    • 提供商名称:登录界面显示的名称
    • 授权端点:对方OAuth2服务的授权URL
    • 令牌端点:对方OAuth2服务的令牌URL
    • 客户端ID/客户端密钥:对方提供的应用凭证
    • 用户信息端点:如果对方提供用户信息接口则填写,无则留空

2. 移除默认的openid scope

在身份提供商的配置页面,找到「Scopes」字段,清空默认的openid值,替换为对方OAuth2支持的scope(例如profile、email或对方自定义的权限范围)

3. 配置用户属性映射(关键步骤)

由于对方不支持OIDC,没有id_token返回用户身份信息,需要从access_token或用户信息接口提取数据:

  • 进入身份提供商的「Mappers」标签页:
    • 如果对方的access_token包含用户属性(如sub、name),添加「JSON Token」类型的映射器,指定从access_token的对应字段提取值,映射到Keycloak的用户属性(如username、email)
    • 如果填写了用户信息端点,确保开启「Use User Info」选项,添加「User Attribute」类型的映射器来获取用户数据

4. 测试登录流程

设置完成后,在登录界面选择该提供商,Keycloak会以纯OAuth2模式发起请求,不再携带openid scope,授权完成后会根据映射规则创建或关联Keycloak用户

错误原因说明

你遇到的报错:

{"error": "invalid_scope",
 "error_description": "The requested 'openid' scope is not valid."}

是因为通过well-known URL自动配置时,Keycloak默认会添加OIDC协议必需的openid scope,但对方仅支持纯OAuth2,无法识别该scope,因此返回错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 05:42:08