我需要配置APIM以支持任何预定义的标头中提供的JWT。为此,我需要通过"或"条件结合两个策略,但我找不到有关语法的文档。
我有两种类型的客户端应用程序。他们中的一些人按照Azure文档中的建议在"授权"令牌中发送JWT:
Authorization: Bearer eyJhbGciOi....
当其他应用使用自定义标题名称:
custom_token: eyJhbGciOi....
我需要两者支持。但是,我无法一对一地指定政策为"one_answers"条件,如下所示:
<validate-jwt header name="Authorization" ... </validate-jwt>
<validate-jwt header name="custom_token" ... </validate-jwt>
政策之间如何实现"或"条件?谢谢!
好吧,我找到了一个解决方案。这比我害怕要容易:
<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>