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

使用Keycloak 19.0.3与Kong-OIDC时缺失x-userinfo请求头问题排查

问题排查与解决方案

核心原因

Kong OIDC插件(revomatico版本)默认不会自动添加X-Userinfo请求头,需要手动开启对应配置项。

具体配置调整

在Kong的OIDC插件配置中,添加以下关键参数:

  • set_x_userinfo_header: 设置为true(此参数控制是否将用户信息注入到请求头中)
  • (可选)userinfo_header_name: 若需自定义头名称可在此指定,默认值即为X-Userinfo

如果通过Kong Admin API配置插件,示例请求如下:

curl -X POST http://kong-admin:8001/routes/{your-route-id}/plugins \
  --data "name=oidc" \
  --data "config.client_id={your-client-id}" \
  --data "config.client_secret={your-client-secret}" \
  --data "config.discovery={keycloak-discovery-url}" \
  --data "config.set_x_userinfo_header=true"

额外注意事项

  1. 插件安装简化:你的Dockerfile中重复安装了kong-oidc插件(多次执行安装命令),可能导致版本冲突或冗余,建议简化为单一安装方式:
FROM kong/kong:2.7.0

ENV OIDC_PLUGIN_VERSION=1.2.3-2
ENV GIT_VERSION=2.24.4-r0
ENV UNZIP_VERSION=6.0-r7
ENV LUAROCKS_VERSION=2.4.4-r1
# 补充jwt插件版本变量
ENV JWT_PLUGIN_VERSION=1.0.0

USER root
RUN apk update && apk add git unzip luarocks

# 安装kong-oidc插件
RUN git clone --branch v${OIDC_PLUGIN_VERSION} https://github.com/revomatico/kong-oidc.git \
    && cd /kong-oidc \
    && luarocks make

# 安装jwt-keycloak插件
RUN git clone --branch 20200505-access-token-processing https://github.com/BGaunitz/kong-plugin-jwt-keycloak.git \
    && cd /kong-plugin-jwt-keycloak \
    && luarocks make

USER kong

注:原Dockerfile中使用了${JWT_PLUGIN_VERSION}但未定义该变量,需补充对应版本值。

  1. 插件冲突排查:如果路由同时启用了oidc和jwt-keycloak插件,建议先单独启用oidc插件测试是否能生成X-Userinfo头,确认正常后再调整插件执行顺序或兼容性。

  2. Keycloak配置验证:确保Keycloak客户端的Access Type设为confidential,并确认客户端已获取profile等用户信息相关权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:05:26