在API Management的validate-jwt中验证JWT的scp权限声明
补全后的JWT验证策略
我来帮你完善这个验证JWT令牌权限范围的策略片段,确保它能正确检查令牌里的scp声明是否同时包含labresults.read和user_impersonation这两个权限:
<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Invalid JWT Token" require-signed-tokens="true"> <openid-config url="(snip)" /> <audiences> <audience>(snip)</audience> </audiences> <required-claims> <claim name="scp" match="all"> <value>labresults.read</value> <value>user_impersonation</value> </claim> </required-claims> </validate-jwt>
关键说明:
match="all"是这个策略的核心配置,它要求scp声明必须包含所有列出的权限值,这样就能保证令牌同时具备labresults.read和user_impersonation两个权限范围。- 要是你的
scp声明是用空格分隔的字符串格式(这是OIDC场景里权限范围的常见格式),这个匹配逻辑依然能正常工作——策略会自动解析空格分隔的权限列表,检查是否包含所有指定项。
内容的提问来源于stack exchange,提问作者Scott Chamberlain
相关产品推荐
相关产品推荐

