Поделиться через


Руководство. Преобразование и защита API

ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API

В этом руководстве вы узнаете о настройке политик для защиты или преобразования API. Политики — это коллекция инструкций, которые выполняются последовательно в запросе или ответе API, изменяющего поведение API.

Например, может потребоваться задать пользовательский заголовок ответа. Или защитите внутренний API, настроив политику ограничения скорости, чтобы API не перепользовался разработчиками. Эти примеры — это простое введение в политики Управление API. Дополнительные параметры политики см. в статье Политики Управления API.

Примечание.

По умолчанию служба "Управление API" настраивает глобальную политику forward-request. Политика forward-request необходима для того, чтобы шлюз выполнил запрос к внутренней службе.

В этом руководстве описано следующее:

  • Преобразование API для задания пользовательского заголовка ответа
  • защита API путем добавления политик ограничения скорости (регулирования);
  • проверка преобразований.

Снимок экрана: политики Управление API на портале.

Необходимые компоненты

Перейдите к экземпляру службы управления API.

  1. На портале Azure найдите и выберите службы Управление API.

    Выбор

  2. На странице Службы Управления API выберите экземпляр Управления API.

    Выбор экземпляра службы

Проверка исходного ответа

Чтобы увидеть исходный ответ, сделайте следующее.

  1. В своем экземпляре службы управления API выберите API.
  2. Выберите Swagger Petstore из списка API.
  3. Выберите вкладку Тест в верхней части экрана.
  4. Выберите GET Найти домашних животных по операции состояния и при необходимости выберите другое значение параметра запроса состояния. Выберите Отправить.

Исходный ответ API должен выглядеть так:

Снимок экрана: исходный ответ API на портале.

Преобразование API для добавления пользовательского заголовка ответа

Управление API включает несколько политик преобразования, которые можно использовать для изменения полезных данных запроса или ответа, заголовков или кодов состояния. В этом примере вы задаете пользовательский заголовок ответа в ответе API.

Настройка политики преобразования

В этом разделе показано, как настроить пользовательский заголовок ответа с помощью set-header политики. Здесь вы используете редактор политики на основе форм, упрощающий настройку политики.

  1. Выберите Swagger Petstore>Design>All operations.

  2. В разделе Outbound processing (Обработка исходящих данных) выберите + Add policy (Добавить политику).

    Снимок экрана: переход к исходящей политике на портале.

  3. В окне Add outbound policy (Добавление политики исходящего трафика) выберите Set headers (Задать заголовки).

    Снимок экрана: настройка политики

  4. Чтобы настроить политику заголовков Set, сделайте следующее:

    1. В разделе "Имя" введите Custom.
    2. В разделе "Значение" выберите + Добавить значение. Введите "Мое настраиваемое значение".
    3. Выберите Сохранить.
  5. После настройки элемент политики set-header появится в разделе обработки исходящего трафика.

    Снимок экрана: политики исходящего трафика наборов заголовков на портале.

защита API путем добавления политик ограничения скорости (регулирования);

В этом разделе показано, как добавить защиту в API серверной части, настроив ограничения частоты запросов, чтобы разработчики не злоупотребляли API. В этом примере показано, как настроить rate-limit-by-key политику с помощью редактора кода. В этом примере ограничение равно трем вызовам в 15 секунд. Через 15 секунд разработчик может снова повторять вызов API.

Примечание.

Эта политика не поддерживается на уровне потребления.

  1. Выберите Swagger Petstore>Design>All operations.

  2. В разделе Inbound processing (Обработка исходящих запросов) выберите значок редактора кода (</>).

    Снимок экрана: переход к редактору кода входящего трафика на портале.

  3. Поместите курсор на элемент <inbound> на пустой строке. Затем выберите Show snippets (Показать фрагменты) в правом верхнем углу экрана.

    Снимок экрана: выбор фрагментов фрагментов в редакторе политик входящего трафика на портале.

  4. На панели справа в разделе Access restriction policies (Политики ограничения доступа) выберите Limit call rate per key (Ограничить частоту вызовов для одного ключа).

    Элемент <rate-limit-by-key /> будет вставлен в позицию, обозначенную курсором.

    Снимок экрана: вставка ограничения частоты вызовов для каждой политики ключей на портале.

  5. Замените код <rate-limit-by-key /> в элементе <inbound> следующим фрагментом: Затем выберите Сохранить.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

проверка преобразований.

Если на этом этапе взглянуть на код в редакторе, ваши политики будут выглядеть так:

<policies>
     <inbound>
         <rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
         <base />
     </inbound>
     <outbound>
         <set-header name="Custom" exists-action="override">
             <value>"My custom value"</value>
           </set-header>
         <base />
     </outbound>
     <on-error>
         <base />
     </on-error>
 </policies>

Оставшаяся часть этого раздела посвящена проверке преобразований политики, которые вы задали ранее.

Проверка пользовательского заголовка ответа

  1. Выберите Тест Swagger Petstore>.

  2. Выберите GET Найти домашних животных по операции состояния и при необходимости выберите другое значение параметра запроса состояния. Выберите Отправить.

    Как видно, добавляется пользовательский заголовок ответа:

    Снимок экрана: пользовательский заголовок ответа на портале.

Проверка предела скорости (регулирования)

  1. Выберите Тест Swagger Petstore>.

  2. Выберите команду GET "Найти домашних животных по состоянию". Выберите " Отправить несколько раз в строке".

    После отправки слишком большого количества запросов в настроенный период вы получите ответ на 429 слишком много запросов .

    Снимок экрана: слишком много запросов в ответе на портале.

  3. Подождите не менее 15 секунд, а затем выберите Отправить снова. Теперь вы должны получить ответ 200 — ОК.

Итоги

Из этого руководства вы узнали, как:

  • Преобразование API для задания пользовательского заголовка ответа
  • защита API путем добавления политик ограничения скорости (регулирования);
  • проверка преобразований.

Следующие шаги

Перейдите к следующему руководству:

Monitor your API (Мониторинг API)