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

对接第三方IDP时,Kong API网关的令牌校验与转发机制问询

Kong对接第三方Identity Provider的令牌校验与转发方案

1. 服务间调用的令牌校验与转发处理

服务间调用采用客户端凭证流(Client Credentials Flow),Kong通过openid-connect插件完成第三方令牌的校验与转发,具体流程如下:

配置步骤

  1. 启用并配置OpenID Connect插件
    针对后端服务对应的Kong Service,通过Admin API配置插件对接第三方IdP核心端点:

    curl -X POST http://kong:8001/services/backend-service/plugins \
      -d name=openid-connect \
      -d config.issuer=https://third-party-idp.com \
      -d config.client_id=service-client-id \
      -d config.client_secret=service-client-secret \
      -d config.scopes="service:read service:write" \
      -d config.forward_access_token=true \
      -d config.auth_methods=client_credentials
    

    关键参数说明:

    • issuer:第三方IdP的根域名,Kong会自动发现其JWKS、Token等端点
    • forward_access_token:开启后,Kong会将校验通过的原始令牌转发给后端服务
    • scopes:限定服务调用允许的权限范围,不匹配则返回403
  2. 令牌校验逻辑
    当上游服务携带Authorization: Bearer <服务令牌>请求Kong时:

    • Kong自动拉取第三方IdP的JWKS公钥,验证令牌的签名合法性
    • 校验令牌的过期时间(exp字段)、受众(aud)是否匹配配置要求
    • 检查令牌包含的scope是否符合插件配置的权限范围
  3. 请求转发
    校验通过后,Kong直接将令牌通过Authorization头部转发至后端服务;若需将令牌解析后的客户端信息传递给后端,可添加config.claims_to_headers参数,例如:

    -d config.claims_to_headers=client_id:X-Client-Id
    

2. UI到服务的令牌校验与转发处理

UI通过用户身份获取令牌(通常为授权码流或密码流),Kong同样通过openid-connect插件处理,流程如下:

配置步骤

  1. 配置OpenID Connect插件
    针对UI对应的Kong Service,配置插件对接第三方IdP:

    curl -X POST http://kong:8001/services/ui-backend-service/plugins \
      -d name=openid-connect \
      -d config.issuer=https://third-party-idp.com \
      -d config.client_id=ui-app-client-id \
      -d config.client_secret=ui-app-client-secret \
      -d config.scopes="user:read user:write" \
      -d config.forward_access_token=true \
      -d config.auth_methods=authorization_code,password
    

    关键参数说明:

    • auth_methods:匹配UI获取令牌采用的OAuth2/OIDC流程
    • scopes:限定用户允许的操作权限
  2. 令牌校验逻辑
    UI携带Authorization: Bearer <用户令牌>请求Kong时:

    • 验证令牌签名、过期时间、受众是否合法
    • 检查令牌的scope是否符合配置的用户权限
    • 若启用config.verify_audience=true,会强制校验令牌的aud字段与服务预期一致
  3. 请求转发
    校验通过后,Kong将原始令牌转发至后端;若需传递用户身份信息给后端,可配置claims_to_headers解析令牌中的用户字段:

    -d config.claims_to_headers=sub:X-User-Id,email:X-User-Email
    

额外说明

  • 若UI未提前获取令牌,Kong也可作为授权代理,引导用户跳转到第三方IdP完成登录,自动获取并校验令牌后转发请求(需配置config.redirect_uri等参数)
  • 对于过期令牌,Kong默认返回401,若UI持有Refresh Token,可自行调用第三方IdP刷新令牌后重新请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 21:43:10