Политики Azure APIM: разрешить использование нескольких имен заголовков для отправки JWT или условия «ИЛИ» в политиках - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно настроить APIM для поддержки JWT в любом из предопределенных заголовков. Для этого мне нужно объединить две политики по условию «ИЛИ», но я не могу найти документацию по соответствующему синтаксису.

У меня есть два типа клиентских приложений. Некоторые из них отправляют JWT в токене «Авторизация», как рекомендуется в документации Azure:

Authorization: Bearer eyJhbGciOi....

, в то время как другие приложения используют настраиваемое имя заголовка:

custom_token: eyJhbGciOi....

Мне нужно поддерживать оба. Однако я не могу указать политики один за другим, так как условие «И» используется в случае, как показано ниже:

<validate-jwt header name="Authorization" ... </validate-jwt>
<validate-jwt header name="custom_token" ... </validate-jwt>

Как реализовать условие «ИЛИ» между политиками? Спасибо!

1 Ответ

1 голос
/ 25 июня 2019

Хорошо, я нашел решение.Это было проще, чем я боялся:

    <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>
...