我需要配置APIM以支持任何预定义标头中提供的JWT。为此,我需要按“ OR”条件组合两个策略,但是找不到相应语法的文档。
我有两种类型的客户端应用程序。其中一些按照Azure文档中的建议以“授权”令牌发送JWT:
Authorization: Bearer eyJhbGciOi....
而其他应用使用自定义标头名称:
custom_token: eyJhbGciOi....
我都需要支持。但是我不能一一指定策略,因为在以下情况下使用“ AND”条件:
<validate-jwt header name="Authorization" ... </validate-jwt>
<validate-jwt header name="custom_token" ... </validate-jwt>
如何在政策之间实施“或”条件? 谢谢!
答案 0 :(得分:1)
好的,我找到了解决方案。这比我担心的要容易:
<choose>
<when condition="@(!context.Request.Headers.GetValueOrDefault("Authorization", "").Equals(""))">
<validate-jwt header-name="Authorization" ..... </validate-jwt>
</when>
<otherwise>
<validate-jwt header-name="custom_token" ..... </validate-jwt>
</otherwise>
</choose>