Azure “验证”;scp“;在Api管理方面';s验证jwt
我试图验证传入的JWT令牌的作用域是否为“labresults.read”和“user\u模拟”。我做了以下的政策片段Azure “验证”;scp“;在Api管理方面';s验证jwt,azure,jwt,azure-api-management,Azure,Jwt,Azure Api Management,我试图验证传入的JWT令牌的作用域是否为“labresults.read”和“user\u模拟”。我做了以下的政策片段 <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Invalid JWT Token" require-signed-tokens="true"> <openid-config url="
<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>
当我在开发人员门户中查看错误报告的跟踪时,我会进行“尝试”
validate-jwt (648 ms){
"message": "JWT Validation Failed: Claim value mismatch: scp=labresults.read.."
}
我是否被迫使用单一的索赔
<claim name="scp">
<value>labresults.read user_impersonation</value>
</claim>
labresults.read用户\模拟
我真的不想这样做,因为我不想强迫这个api的消费者,这两个作用域将是唯一以特定顺序传入的东西
我需要做什么来验证propper方法的作用域?在MSDN论坛上从Microsoft的某个人那里得到了答案 我建议您在策略中指定“分隔符”属性 语句来验证JWT令牌并查看它是否有帮助。更多 信息,您可以参考此文档: Swikruti BoseMicrosoft MSFT(MSFT CSG) 第一次查看文档时,我完全忽略了separator属性。这里是指向msdn fourms上的的的链接
<claim name="scp">
<value>labresults.read user_impersonation</value>
</claim>