如何在APIM的validate-jwt策略中验证JWT包含指定角色
在APIM的策略中检查数组类型的roles声明
直接通过<required-claims>配置即可,APIM的<validate-jwt>策略原生支持数组类型的声明检查,无需额外处理分隔符。
具体配置示例
如果需要验证令牌的roles数组中包含Api.Call角色,配置代码如下:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized"> <!-- 此处保留你的其他JWT验证配置,比如密钥、受众、发行方等 --> <required-claims> <claim name="roles" match="any"> <value>Api.Call</value> </claim> </required-claims> </validate-jwt>
参数说明
match="any":表示只要roles数组中存在至少一个匹配的角色值,验证就通过。如果需要同时满足多个角色(比如必须同时拥有Api.Call和Api.Admin),可以设置match="all"并添加多个<value>节点:
<claim name="roles" match="all"> <value>Api.Call</value> <value>Api.Admin</value> </claim>
- 无需设置
separator:因为roles是数组类型,APIM会直接遍历数组元素进行匹配,而非将其当作分隔符分隔的字符串处理。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

