通过添加自定义令牌JWT(JSON Web Token)并绑定待验证的API即可创建API令牌合规验证规则,ESA将针对传入的请求进行令牌合规验证并进行处理,保障您的业务API安全。
配置API令牌规则
在ESA控制台,选择站点管理,在站点列单击目标站点。
在左侧导航栏,选择。
在API安全页面,选择API规则页签,单击令牌配置。

在设置页面,单击添加,添加令牌信息。

按业务需求完成令牌参数填写后,单击确定即可。
配置名称:输入您自定义的令牌名称,如
JWT-Demo。令牌位置:选择令牌在请求中的位置,可选择标头和Cookie两种字段,并输入对应的键值。
说明为适配不同业务中JWT的所在位置,通过单击Or可以创建逻辑
或条件,可同时判断最多4个令牌位置。令牌密钥:通过手动输入或上传JSON文件来添加令牌密钥,密钥要求可参考令牌说明。
说明若配置多个密钥,则会根据
kid字段选取密钥进行校验,若有一份密钥校验通过则通过。

完成令牌配置后即可进行API规则创建。返回API规则页签,单击新增规则按钮。

根据业务需求进行令牌校验相关参数配置即可。
规则名称:自定义规则名称,如
rule-jwt-demo。验证API:单击下拉选择需要进行令牌合规校验的主机记录,选择后ESA将自动为您展示所选主机记录下的API列表,检查并勾选所需的API即可。
选择令牌配置:勾选一个或多个需要校验的令牌。当勾选多个令牌时可选择:
至少校验一个配置:请求需要符合多个令牌配置中的一个即可,否则将被判定为不合规请求。
验证所有配置:请求需要同时符合所有令牌配置,否则将被判定为不合规请求。
说明当API请求中缺少令牌时,默认会将请求标记为不合规,若有特殊需要可在对应令牌右侧的缺少令牌时列下拉选择忽略。
执行操作:选择对不符合令牌校验的请求的操作:

防护效果
完成API规则创建后,您可以在左侧导航栏选择,在事件分析页面通过筛选器选择防护规则为API规则,下滑即可在采样日志栏中查看详细的防护日志。

令牌说明
当前令牌校验仅用于JWT验证。
字段说明
公钥格式仅支持JWK,且JWT公钥必须含有kid和alg字段。字段含义可参考:
kty:密钥类型,如EC-椭圆曲线密钥。use:公钥用途,如sig- 用于数字签名。crv:椭圆曲线类型,如P-256- NIST标准化的P-256椭圆曲线kid:自定义的密钥标识符,如esa。JWK必须带有kid字段,用于密钥的选择;同样的,请求的JWT的声明中也必须带有kid字段。使用该字段可用于令牌密钥的轮换。x:使用椭圆曲线密钥时,椭圆曲线公钥的x坐标。y:使用椭圆曲线密钥时,椭圆曲线公钥的y坐标。alg:算法标识,当前支持:ES256- ECDSA with SHA-256签名算法。
示例
{
"kty": "EC",
"use": "sig",
"crv": "P-256",
"kid": "esa",
"x": "QG3VFVwUX4IatQvBy7sqBvvmticCZ-eX5-nbtGKBOfI",
"y": "A3PXCshn7XcG7Ivvd2K_DerW4LHAlIVKdqhrUnczTD0",
"alg": "ES256"
}