Можно ли создать политику, которая будет условно предоставлять конечную точку управления api в azure, даже если требуется ключ подписки opim? - PullRequest
0 голосов
/ 14 июля 2020

Пример того, что я ищу, выглядит следующим образом, но элемент allow-access не существует. На что можно заменить, чтобы ключ подписки не проверялся. т.е. в этом случае это позволит всем вызывающим абонентам доступ к контроллеру, пока они делают запросы GET.

<policies>
<inbound>
    <base />
    <choose>
        <when condition="@(context.Request.Method.Equals("GET"))">
            <allow-access />
        </when>
    </choose>
</inbound>
<backend>
    <base />
</backend>
<outbound>
    <base />
</outbound>
<on-error>
    <base />
</on-error>

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 16 июля 2020

Обходной путь - отключить параметр Requires subscription на продукте и самостоятельно проверить ключ подписки во входящей политике. Вот пример того, как это сделать.

  1. Go до Настройки продукта для начинающих.
  2. Снимите флажок Требуется подписка и сохранить.
  3. Откройте политики продукта и добавьте следующую политику во входящие. Значение политики <check-header> - это ключ подписки продукта Starter.
<choose>
    <when condition="@(!context.Request.Method.Equals("GET"))">
        <check-header name="Ocp-Apim-Subscription-Key" failed-check-httpcode="401" failed-check-error-message="Not authorized" ignore-case="false">
            <value>920b4e307f4f41ff9bd4a3bd6a5450ee</value>
        </check-header>
    </when>
</choose>
...