Руководство. Преобразование и защита API
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
В этом руководстве вы узнаете о настройке политик для защиты или преобразования API. Политики — это коллекция инструкций, которые выполняются последовательно в запросе или ответе API, изменяющего поведение API.
Например, может потребоваться задать пользовательский заголовок ответа. Или защитите внутренний API, настроив политику ограничения скорости, чтобы API не перепользовался разработчиками. Эти примеры — это простое введение в политики Управление API. Дополнительные параметры политики см. в статье Политики Управления API.
Примечание.
По умолчанию служба "Управление API" настраивает глобальную политику forward-request
. Политика forward-request
необходима для того, чтобы шлюз выполнил запрос к внутренней службе.
В этом руководстве описано следующее:
- Преобразование API для задания пользовательского заголовка ответа
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Необходимые компоненты
- Ознакомьтесь с терминологией службы управления API в Azure.
- Ознакомьтесь с концепцией использования политик в службе управления API в Azure.
- Выполните задачи в кратком руководстве по созданию экземпляра службы управления API Azure. В этом руководстве рекомендуется использовать один из классических или виртуальных 2 уровней, например уровень разработчика или уровень "Базовый" версии 2. Уровень потребления не поддерживает все политики, используемые в этом руководстве.
- Также выполните задачи из руководства по импорту и публикации первого API.
Перейдите к экземпляру службы управления API.
На портале Azure найдите и выберите службы Управление API.
На странице Службы Управления API выберите экземпляр Управления API.
Проверка исходного ответа
Чтобы увидеть исходный ответ, сделайте следующее.
- В своем экземпляре службы управления API выберите API.
- Выберите Swagger Petstore из списка API.
- Выберите вкладку Тест в верхней части экрана.
- Выберите GET Найти домашних животных по операции состояния и при необходимости выберите другое значение параметра запроса состояния. Выберите Отправить.
Исходный ответ API должен выглядеть так:
Преобразование API для добавления пользовательского заголовка ответа
Управление API включает несколько политик преобразования, которые можно использовать для изменения полезных данных запроса или ответа, заголовков или кодов состояния. В этом примере вы задаете пользовательский заголовок ответа в ответе API.
Настройка политики преобразования
В этом разделе показано, как настроить пользовательский заголовок ответа с помощью set-header
политики. Здесь вы используете редактор политики на основе форм, упрощающий настройку политики.
Выберите Swagger Petstore>Design>All operations.
В разделе Outbound processing (Обработка исходящих данных) выберите + Add policy (Добавить политику).
В окне Add outbound policy (Добавление политики исходящего трафика) выберите Set headers (Задать заголовки).
Чтобы настроить политику заголовков Set, сделайте следующее:
- В разделе "Имя" введите Custom.
- В разделе "Значение" выберите + Добавить значение. Введите "Мое настраиваемое значение".
- Выберите Сохранить.
После настройки элемент политики set-header появится в разделе обработки исходящего трафика.
защита API путем добавления политик ограничения скорости (регулирования);
В этом разделе показано, как добавить защиту в API серверной части, настроив ограничения частоты запросов, чтобы разработчики не злоупотребляли API. В этом примере показано, как настроить rate-limit-by-key
политику с помощью редактора кода. В этом примере ограничение равно трем вызовам в 15 секунд. Через 15 секунд разработчик может снова повторять вызов API.
Примечание.
Эта политика не поддерживается на уровне потребления.
Выберите Swagger Petstore>Design>All operations.
В разделе Inbound processing (Обработка исходящих запросов) выберите значок редактора кода (</>).
Поместите курсор на элемент
<inbound>
на пустой строке. Затем выберите Show snippets (Показать фрагменты) в правом верхнем углу экрана.На панели справа в разделе Access restriction policies (Политики ограничения доступа) выберите Limit call rate per key (Ограничить частоту вызовов для одного ключа).
Элемент
<rate-limit-by-key />
будет вставлен в позицию, обозначенную курсором.Замените код
<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>
Оставшаяся часть этого раздела посвящена проверке преобразований политики, которые вы задали ранее.
Проверка пользовательского заголовка ответа
Выберите Тест Swagger Petstore>.
Выберите GET Найти домашних животных по операции состояния и при необходимости выберите другое значение параметра запроса состояния. Выберите Отправить.
Как видно, добавляется пользовательский заголовок ответа:
Проверка предела скорости (регулирования)
Выберите Тест Swagger Petstore>.
Выберите команду GET "Найти домашних животных по состоянию". Выберите " Отправить несколько раз в строке".
После отправки слишком большого количества запросов в настроенный период вы получите ответ на 429 слишком много запросов .
Подождите не менее 15 секунд, а затем выберите Отправить снова. Теперь вы должны получить ответ 200 — ОК.
Итоги
Из этого руководства вы узнали, как:
- Преобразование API для задания пользовательского заголовка ответа
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Следующие шаги
Перейдите к следующему руководству:
Monitor your API (Мониторинг API)