查看文档目录

令牌校验(JWT)

令牌校验:在节点上用你的身份提供方公钥校验请求里的 JWT,并按令牌里的声明放行或拦截。

作用

节点用你登记的公钥校验请求带的 JWT:检查签名、过期时间、签发方和受众,再按令牌里的声明(如角色)决定放行还是拦截。校验在边缘完成,不必每个请求都回到你的认证服务。

使用场景

  • API 或后台只允许带有效登录令牌的请求访问。
  • 令牌里的 role 为 admin 才能访问管理路径。
  • 对接 Keycloak、Auth0、Azure AD 等身份提供方,使用它们公开的 JWKS 地址。

在哪里配置

两步:

  1. 控制台菜单“令牌校验”,添加“密钥集”,登记公钥和校验要求。
  2. 安全策略的 WAF 规则里,条件字段选“JWT 令牌”(有效或无效/缺失)和“JWT 声明”,选择刚才的密钥集,动作按需要设为拦截或放行。

配置项

密钥集

配置项默认值说明
名称、描述无名称在账号内唯一
公钥来源无“从地址拉取 JWKS”或“直接粘贴 JWKS”;创建后不能改来源
JWKS 地址无来源为地址时填写,只接受 https 的公网地址,由主控拉取
刷新间隔1 小时5 分钟、15 分钟、1 小时、6 小时、1 天
JWKS 内容无来源为粘贴时填写,只放公钥
允许的算法无RS256、ES256、EdDSA
令牌位置无最多 4 个,按顺序取第一个找到的:Authorization: Bearer、请求头、Cookie、查询参数
签发方 iss空留空不检查
受众 aud空可填多个,留空不检查
必须有过期时间开令牌缺少 exp 时判为无效
时钟容差60 秒校验过期与生效时间时允许的偏差
校验失败时的响应403可选 403 拦截页,或 401 并带 WWW-Authenticate: Bearer

每个账号最多 50 份密钥集。远程来源创建时会拉取一次,之后按刷新间隔更新;拉取失败时继续使用上一次的公钥,连续失败会发通知。“立即刷新”每分钟最多一次。

规则条件

字段操作符说明
JWT 令牌有效、无效或缺失值是密钥集
JWT 声明等于、在其中、包含、存在、数值不小于、数值不大于声明路径用点分隔,如 roles 或 user.level

一条规则里 JWT 令牌条件最多 1 个,声明条件最多 4 个;用了声明条件必须同时有“JWT 令牌有效”条件。

常见问题

怎么验证配置对不对

密钥集列表里点“试一下”,粘贴一个令牌,页面显示是否有效、失败原因、令牌头部和声明。令牌只在本次请求里解析,不保存也不写日志。

常见的失败原因

没有令牌、格式不对、算法不在允许列表、找不到对应的公钥(kid)、签名不对、已过期、缺少 exp、尚未生效、签发方不符、受众不符。

密钥集显示“拉取失败”

列表会写明原因,例如域名解析失败、地址指向内网、证书校验失败、响应不是合法的 JWK Set。私有网络里的身份提供方请改用“直接粘贴 JWKS”。

能用 HS256 吗

不支持对称算法。

平台管理员账号看不到“令牌校验”

这个菜单面向租户账号。