JWT 认证
AISIX 可以使用 OpenID Connect(OIDC)身份服务提供方签发的短期 JSON Web Token(JWT)凭证认证 Agent,无须使用长期调用方 API Key。每个经过验证的外部身份都会映射到调用方 API Key,并继承该 Key 的模型访问权限、限流和用量归因。在 AISIX Cloud 中,映射后的 Key 还会携带预算。
支持的服务提供方包括 Keycloak、Entra ID、Okta、Auth0,以及使用受支持算法签署 JWT Token 的所有 OIDC 兼容服务提供方。AISIX 会为每个请求验证 Token 签名和声明,Agent 不需要调用方 API Key 的明文值。
面向人工运维人员的控制台单点登录和面向 Agent 请求的网关 JWT 认证彼此独立,配置其中一项不会影响另一项。
工作原理
当环境中至少存在一个已启用的 OIDC 服务提供方时,AISIX 会检查每个请求的 Bearer Token:
- 如果 Bearer 是 JWT,其
iss(签发者)声明会选择匹配的信任服务提供方。签发者与所有已启用服务提供方均不匹配的 Token 会被拒绝。 - AISIX 使用服务提供方的 JSON Web Key Set(JWKS)验证 Token 签名,并验证注册声明:始终必需的
exp(过期时间)、与服务提供方接受受众匹配的aud(受众),以及存在时的nbf(生效时间)。 - 执行服务提供方的
required_scopes和bound_claims要求。 - 服务提供方身份声明的值(默认为
sub)会选择jwt_subject与该值相等,且jwt_provider指向此服务提供方的调用方 API Key。随后请求会以此 Key 的身份运行。将绑定限定到服务提供方,可以防止第二个受信任服务提供方签发冒充此服务提供方身份的 Token。 - 当没有 Key 直接绑定该身份时,服务提供方的 Claim 映射——按优先级排序、匹配已验证声明的规则——可以把请求解析到一把既有的 Key,让一整组身份共享一把受治理的 Key 而无需逐个注册。既未命中绑定也未命中映射的 Token 会被拒绝。
未通过验证或无法映射到调用方 API Key 的 Token 会在请求到达服务提供方、MCP 服务器或向量存储前被 AISIX 拒绝。身份服务提供方的签名 Key 轮换会自动生效,无须重启网关。