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

Keycloak经Nginx认证后iss声明使用内网IP问题求助

解决Keycloak JWT中iss字段显示内部IP的问题

核心问题排查

你当前的curl请求直接访问Keycloak内部IP,完全绕过了Nginx代理,导致Keycloak接收不到配置的X-Forwarded-*请求头,自然会用内部IP作为iss字段的值。

解决步骤

  1. 通过Nginx公网域名发起请求
    必须使用公网域名访问Keycloak的token端点,而非直接调用内部IP。修正后的curl命令示例:

    curl --location 'https://your-public-domain/auth/realms/demo1/protocol/openid-connect/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'client_id=rest-client' \
    --data-urlencode 'grant_type=password' \
    --data-urlencode 'username=user1' \
    --data-urlencode 'password=pass1'
    
  2. 配置Keycloak强制使用公网域名
    根据Keycloak版本选择对应配置:

    • Quarkus版本(Keycloak 17+):
      替换原有PROXY_ADDRESS_FORWARDING配置,改用以下环境变量:
      - name: KC_PROXY
        value: "edge"
      - name: KC_HOSTNAME
        value: "your-public-domain"
      
      KC_HOSTNAME就是你需要的类似KEYCLOAK_SERVER_NAME的配置项,会强制Keycloak在iss字段及所有公开端点中使用指定公网域名。
    • WildFly版本(Keycloak 16及以下):
      保留PROXY_ADDRESS_FORWARDING=true,同时添加KEYCLOAK_SERVER_NAME环境变量:
      - name: PROXY_ADDRESS_FORWARDING
        value: "true"
      - name: KEYCLOAK_SERVER_NAME
        value: "your-public-domain"
      
  3. 确认Nginx代理配置生效
    确保Nginx的location块正确代理Keycloak,示例配置如下:

    location /auth {
        proxy_pass http://internal-ip-of-keycloak/auth;
        proxy_set_header Host $host;                                
        proxy_set_header X-Real-IP $remote_addr;                    
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;    
        proxy_set_header X-Forwarded-Port $server_port;
        proxy_set_header X-Forwarded-Host $host;                            
        proxy_set_header X-Request-ID $request_id;    
    }
    

验证

配置完成后重启Keycloak和Nginx,通过公网域名发起登录请求,检查JWT的iss字段是否已变为指定的公网域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 05:35:09