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

OAuth2 Proxy无法正确验证Keycloak签发JWT角色的问题求助

问题:OAuth2 Proxy添加allowed_roles后Keycloak JWT验证失败

现象

使用OAuth2 Proxy保护由Keycloak签发JWT的遗留资源服务器,无allowed_roles配置时,含匹配受众声明的有效JWT请求可正常转发至后端;但添加allowed_roles后,验证失败,报错[AuthFailure] Invalid authorization via session (unauthorized)...,无额外错误信息。

关键配置

skip_jwt_bearer_tokens = true
extra_jwt_issuers = [ "http://localhost:8081/realms/master=backend" ]
allowed_roles = [ "backend:read" ]

JWT令牌角色内容

"resource_access": {
    "backend": {
      "roles": [
        "read"
      ]
    }
  }

使用版本

  • Keycloak 25.0.1
  • OAuth2 Proxy 7.9.0

解决方向

  • 调整skip_jwt_bearer_tokens参数:
    若请求通过Bearer令牌访问且需Proxy验证角色,需将skip_jwt_bearer_tokens设为false。该参数为true时,Proxy会跳过对Bearer令牌的认证解析,无法读取JWT中的角色信息,进而导致授权失败。

  • 显式指定角色解析路径:
    针对Keycloak的JWT结构,可添加role_path配置指定角色所在的JSON路径,确保Proxy正确提取角色:

    role_path = "resource_access.backend.roles"
    allowed_roles = [ "read" ]
    
  • 升级OAuth2 Proxy版本:
    尽管相关角色解析问题已修复,但7.9.0版本可能仍存在边缘场景问题,尝试升级至最新稳定版本测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:32:39