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

如何配置APISIX OpenID-Connect插件同时支持PKCE与客户端密钥流?

APISIX OpenID-Connect 同时支持PKCE与常规授权码流的配置方法

APISIX的OpenID-Connect插件支持让客户端自主选择使用PKCE流或常规授权码流,无需在服务端强制二选一,具体配置和逻辑如下:

核心配置逻辑

将插件的use_pkce参数设置为true即可,这个配置的作用是允许客户端使用PKCE,而非强制所有客户端必须使用。插件会根据客户端请求中的参数自动适配对应的流程:

  • 当原生应用发起授权请求时,只要带上code_challenge和code_challenge_method参数,插件就会触发PKCE验证流程,后续令牌交换阶段需要客户端提供code_verifier;
  • 当Web应用(持有客户端密钥)发起授权请求时,无需携带PKCE相关参数,插件会自动走常规授权码流,在令牌交换阶段验证客户端ID与密钥。

具体配置示例

{
  "plugins": {
    "openid-connect": {
      "client_id": "your-shared-client-id",
      "client_secret": "your-web-app-secret",
      "use_pkce": true,
      "discovery": "https://your-identity-provider/.well-known/openid-configuration",
      "redirect_uri": "https://your-apisix-endpoint/callback"
    }
  }
}

注意事项

  • 确保你的APISIX版本在2.10及以上,该版本才引入了客户端自主选择PKCE的支持;
  • Web应用类型的客户端必须配置client_secret,原生应用可以不设置该字段(或留空);
  • 令牌交换阶段,原生应用需携带code_verifier参数,Web应用则携带client_secret完成身份验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:12:02