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

为何quarkus.oidc.credentials.secret配置被忽略?bearer-only为何不允许?

问题1:初始状态client-id、secret配置不生效原因

当仅使用quarkus-oidc扩展、未开启Keycloak策略校验时,Quarkus OIDC默认运行在无状态本地JWT校验模式:

  • 仅需配置quarkus.oidc.auth-server-url即可正常工作,Quarkus会自动从对应Keycloak Realm的OIDC发现端点拉取签名公钥,在本地完成JWT签名合法性、过期时间的校验
  • 该模式下没有显式开启受众(aud)校验的话,不会验证JWT的受众字段与配置的client-id是否一致,因此client-id填错或者注释都不会触发错误
  • 该模式不需要和Keycloak做后端主动交互,secret配置完全不会被调用,因此不影响运行
问题2:开启策略校验后报Bearer-only not allowed原因

引入quarkus-keycloak-authorization扩展并开启策略强制校验后,Quarkus的认证授权逻辑发生变化:

  • 不再仅做本地JWT校验,需要主动向Keycloak发起授权请求,携带当前请求的资源、上下文信息,查询当前用户是否有权限访问对应资源
  • Keycloak中bearer-only类型的客户端定位为仅作为资源服务接收Bearer令牌校验,不允许主动发起OAuth2授权请求,因此Quarkus用该类型客户端调用授权接口时会被Keycloak直接拒绝,抛出对应错误
  • 该模式下需要用client-id和secret和Keycloak做服务端身份认证,因此配置不再被忽略,填错会直接触发认证失败错误

修复建议:将Keycloak中backend-client的访问类型从bearer-only修改为confidential即可正常使用策略校验功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:51:00