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


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

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

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

Tip

Команды API могут использовать эту функцию в рабочих областях. Рабочие области предоставляют изолированный административный доступ к API и собственные среды выполнения API.

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

Примечание.

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

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

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

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

Предварительные условия

Go to your API Management instance

  1. In the Azure portal, search for and select API Management services:

    снимок экрана, на котором показаны службы управления API в результатах поиска.

  2. On the API Management services page, select your API Management instance:

    Screenshot that shows an API Management instance on the API Management services page.

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

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

  1. In your API Management service instance, select APIs.
  2. Выберите Swagger Petstore из списка API.
  3. Выберите вкладку Тест в верхней части экрана.
  4. Выберите операцию GET Finds pets by status и, при необходимости, выберите другое значение параметра status запроса. Выберите Отправить.

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

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

Преобразуйте API для добавления настраиваемого заголовка ответа

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

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

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

  1. Выберите Swagger Petstore>Проектирование>Все операции.

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

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

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

    Screenshot of configuring the Set headers policy in the portal.

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

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

    Screenshot of the Set headers outbound policies in the portal.

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

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

Примечание.

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

  1. Выберите Swagger Petstore>Проектирование>Все операции.

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

    Скриншот, показывающий переход к редактору кода политики входящего трафика на портале.

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

    Screenshot of selecting show snippets in inbound policy editor in the portal.

  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. Select Swagger Petstore>Test.

  2. Выберите операцию GET Finds pets by status и, при необходимости, выберите другое значение параметра status запроса. Выберите Отправить.

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

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

Test the rate limit (throttling)

  1. Select Swagger Petstore>Test.

  2. Select the GET Finds Pets by Status operation. Выберите Отправить несколько раз подряд.

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

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

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

Воспользуйтесь помощью Copilot

Получите помощь по искусственному интеллекту от Copilot, чтобы создать и изменить определения политики управления API. С помощью Copilot создайте и обновите политики, соответствующие определенным требованиям, не зная синтаксис XML, и получите объяснения существующих политик. Copilot также может помочь вам перевести политики, которые могли быть настроены в других решениях по управлению API.

  • Microsoft Copilot in Azure - Offers policy authoring assistance with natural language prompts in the Azure portal. Создайте политики в редакторе политик управления API и попросите Copilot объяснить разделы политики.
  • GitHub Copilot for Azure in VS Code - Provides policy authoring assistance in Visual Studio Code, accelerating policy configuration when you use the Azure API Management Extension for Visual Studio Code. Prompt Copilot Chat or Copilot Edits (preview) with natural language to create and refine policy definitions in place.

Example prompt:

Generate a policy that adds an Authorization header to the request with a Bearer token.

Copilot работает на основе искусственного интеллекта, поэтому возможны сюрпризы и ошибки. For more information, see Copilot general use FAQs.

Итоги

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

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

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

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

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