Руководство. Преобразование и защита API
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
В этом руководстве вы узнаете о настройке распространенных политик для преобразования API. Вам может потребоваться преобразовать API, чтобы он не раскрывал частные сведения серверной части. Преобразование API может помочь скрыть сведения о стеке технологий, которые выполняются в серверной части, или скрыть исходные URL-адреса, которые отображаются в тексте HTTP-ответа API.
В этом руководстве также объясняется, как защитить внутренний API, настроив политику ограничения скорости, чтобы API не перепользовался разработчиками. Дополнительные параметры политики см. в статье Политики Управления API.
Примечание.
По умолчанию служба "Управление API" настраивает глобальную политику forward-request
. Политика forward-request
необходима для того, чтобы шлюз выполнил запрос к внутренней службе.
В этом руководстве описано следующее:
- преобразование API для удаления заголовков ответа;
- Замена исходных URL-адресов в тексте ответа API на URL-адреса шлюза службы "Управление API"
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Необходимые компоненты
- Ознакомьтесь с терминологией службы управления API в Azure.
- Ознакомьтесь с концепцией использования политик в службе управления API в Azure.
- Выполните задачи в кратком руководстве по созданию экземпляра службы управления API Azure.
- Также выполните задачи из руководства по импорту и публикации первого API.
Перейдите к экземпляру службы управления API.
На портале Azure найдите и выберите службы Управление API.
На странице Службы Управления API выберите экземпляр Управления API.
преобразование API для удаления заголовков ответа;
В этом разделе показано, как скрыть заголовки HTTP, которые вы не хотите показывать пользователям. Например, можно удалить следующие заголовки в HTTP-ответе:
- X-Powered-By,
- X-AspNet-Version.
Проверка исходного ответа
Чтобы увидеть исходный ответ, сделайте следующее.
- В своем экземпляре службы управления API выберите API.
- В списке API выберите Demo Conference API.
- Выберите вкладку Тест в верхней части экрана.
- Выберите операцию GetSpeakers, а затем выберите Отправить.
Исходный ответ API должен выглядеть так:
Как видите, ответ включает заголовки X-AspNet-Version и X-Powered-By.
Настройка политики преобразования
В этом примере показано, как использовать редактор политик на основе форм, который помогает настроить множество политик без необходимости изменять инструкции XML политики напрямую.
Выберите Demo Conference API>Конструктор>Все операции.
В разделе Outbound processing (Обработка исходящих данных) выберите + Add policy (Добавить политику).
В окне Add outbound policy (Добавление политики исходящего трафика) выберите Set headers (Задать заголовки).
Чтобы настроить политику заголовков Set, сделайте следующее:
- В поле Name (Имя) введите X-Powered-By.
- Оставьте значение пустым. Если значение отображается в раскрывающемся списке, удалите его.
- В поле Action (Действие) выберите delete (Удалить).
- Выберите Сохранить.
Повторите предыдущие два шага, чтобы добавить политику заголовков Set, которая удаляет заголовок X-AspNet-Version :
После настройки два элемента политики заголовка набора отображаются в разделе "Исходящая обработка ".
Замена исходных URL-адресов в тексте ответа API на URL-адреса шлюза службы "Управление API"
В этом разделе показано, как заменить исходные URL-адреса, присутствующие в тексте HTTP-ответа от API, на URL-адреса шлюз службы "Управление API". Возможно, вы захотите скрыть исходные URL-адреса серверной части от пользователей.
Проверка исходного ответа
Чтобы увидеть исходный ответ, сделайте следующее.
Выберите Demo Conference API>Тест.
Выберите операцию GetSpeakers, а затем выберите Отправить.
Как видите, ответ включает исходные URL-адреса серверной части:
Настройка политики преобразования
В этом примере используется редактор кода политики для добавления XML-фрагмента политики непосредственно в ее определение.
Выберите Demo Conference API>Конструктор>Все операции.
В разделе Outbound processing (Обработка исходящих запросов) выберите значок редактора кода (/</>).
Поместите курсор на элемент
<outbound>
на пустой строке. Затем выберите Show snippets (Показать фрагменты) в правом верхнем углу экрана.В окне справа в разделе Политики преобразования выберите Mask URLs in content (Маскировка URL-адресов в содержимом).
Элемент
<redirect-content-urls />
будет вставлен в позицию, обозначенную курсором.Выберите Сохранить.
защита API путем добавления политик ограничения скорости (регулирования);
В этом разделе показано, как добавить защиту в API серверной части, настроив ограничения частоты запросов, чтобы разработчики не злоупотребляли API. В этом примере установлено ограничение в 15 вызовов за 15 секунд для каждого идентификатора подписки. Через 15 секунд разработчик может снова повторять вызов API.
Выберите Demo Conference API>Конструктор>Все операции.
В разделе 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-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
<base />
</inbound>
<backend>
<base />
</backend>
<outbound>
<set-header name="X-Powered-By" exists-action="delete" />
<set-header name="X-AspNet-Version" exists-action="delete" />
<redirect-content-urls />
<base />
</outbound>
<on-error>
<base />
</on-error>
</policies>
Оставшаяся часть этого раздела посвящена проверке преобразований политики, которые вы задали ранее.
Проверка очистки заголовков в ответе
Выберите Demo Conference API>Тест.
Выберите операцию GetSpeakers, а затем выберите Отправить.
Как видно, заголовки X-AspNet-Version и X-Powered-By были удалены:
Проверка замены URL-адреса
Выберите Demo Conference API>Тест.
Выберите операцию GetSpeakers, а затем выберите Отправить.
Как видите, URL-адреса заменяются.
Проверка предела скорости (регулирования)
Выберите Demo Conference API>Тест.
Щелкните операцию GetSpeakers. Выберите " Отправить " четыре раза в строке.
После отправки запроса четыре раза вы получите ответ 429 слишком много запросов .
Подождите не менее 15 секунд, а затем выберите Отправить снова. Теперь вы должны получить ответ 200 — ОК.
Итоги
Из этого руководства вы узнали, как:
- преобразование API для удаления заголовков ответа;
- Замена исходных URL-адресов в тексте ответа API на URL-адреса шлюза службы "Управление API"
- защита API путем добавления политик ограничения скорости (регулирования);
- проверка преобразований.
Следующие шаги
Перейдите к следующему руководству:
Monitor your API (Мониторинг API)