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

时间:2019-06-25 17:32:50

标签: jwt azure-api-management

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

如何在政策之间实施“或”条件? 谢谢!

1 个答案:

答案 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>