Azure APIM 策略:允许多个标头名称用于发送 JWT,或策略中的'OR'条件



我需要配置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>

最新更新