JWT 是一种轻量级的身份验证和鉴权机制,广泛应用于Web开发、API安全、单点登录等场景。服务网格支持配置JWT策略并应用到数据面实现请求身份认证,保护后端服务安全。
JWT策略配置说明
配置项 | 说明 |
---|---|
安全策略名称 | 策略名称,如testjwt |
Issuer | JWT的颁发者,如果请求带的JWT中的iss字段和此字段不一致,则该JWT会被拒绝 |
JWKS来源 | 用于验证JWT的密钥来源 |
jwks | 用于验证JWT的密钥,当JWKS来源是jwks时填写 |
jwksUri | 用于验证JWT的密钥URI,当JWKS来源是jwksUri时填写 |
Audience | JWT颁发给的目标实体 |
JWTToken位置 | 获取JWT的位置,支持从请求头或者请求Query参数中获取 |
JWT透传 | 是否向后端透传JWT信息 |
将Payload通过Header透传 | 将JWT的Payload信息通过base64编码后添加到Header透传到后端 |
JWT策略绑定
策略生效粒度
当前支持命名空间、服务、工作负载、网关的生效粒度配置,说明如下
生效粒度 | 说明 |
---|---|
命名空间 | 策略下发到所选择命名空间下所有数据面 |
服务 | 策略下发到所选服务关联的工作负载数据面 |
工作负载 | 策略下发到指定工作负载的数据面 |
网关 | 策略下发到网关 |
请求匹配规则
对于JWT策略、OIDC策略和自定义授权服务策略,支持基于请求特征匹配决定是否执行当前策略,支持的匹配项及说明如下
匹配项 | 说明 |
---|---|
HTTP域名(Host) | 匹配一组请求的域名 |
HTTP路径(Path) | 匹配一组请求路径 |
HTTP方法(Method) | 匹配一组请求的HTTP Method |
端口(Port) | 匹配一组请求的目标服务端口 |
说明域名和路径匹配支持以下匹配模式
精确匹配:如abc匹配abc字符串
前缀匹配:abc*匹配abc、abcd、abce等
后缀匹配:*abc匹配abc、xabc、zabc等
存在匹配:*匹配所有非空值
请求匹配支持黑白名单模式
黑名单模式:选中请求必须执行认证策略
白名单模式:选中请求跳过认证策略,其他请求需要执行策略