Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ПРИМЕНЯЕТСЯ КО ВСЕМ уровням управления API
Политики управления API — это мощная возможность системы, которая позволяет издателю изменять поведение API через конфигурацию. Политики — это набор запрограммированных правил, которые выполняются последовательно во время запроса или ответа API. Политики можно составить с использованием литеральных текстовых значений, выражений политики и именованных значений.
Именованные значения — это глобальная коллекция пар имен и значений в каждом экземпляре управления API. Именованные значения можно использовать для управления константными строковыми значениями и секретами во всех конфигурациях и политиках API.
Типы значений
| Тип | Описание |
|---|---|
| Равнина | Литеральная строка или выражение политики |
| Секрет | Литеральная строка или выражение политики, зашифрованное службой управления API |
| Хранилище ключей | Идентификатор секрета, хранящегося в хранилище ключей Azure. |
Обычные значения или секреты могут содержать выражения политики. Например, выражение @(DateTime.Now.ToString()) возвращает строку, содержащую текущую дату и время.
Дополнительные сведения об именованных атрибутах значений см. в справочнике по REST API управления API.
Секреты хранилища ключей
Значения секретов можно хранить как зашифрованные строки в службе управления API (пользовательские секреты) или ссылаться на секреты в Azure Key Vault.
Рекомендуется использовать секреты хранилища ключей, так как они помогают повысить безопасность управления API:
Замечание
В настоящее время интеграция с хранилищем ключей для этого сценария недоступна в рабочих областях.
- Вы можете повторно использовать секреты, хранящиеся в хранилищах ключей в разных службах.
- К секретам можно применять детализированные политики доступа .
- Секреты, обновленные в хранилище ключей, автоматически обновляются в управлении API. После обновления в хранилище ключей именованное значение в службе управления API обновляется в течение четырех часов. Вы также можете вручную обновить секрет с помощью портала Azure или с помощью REST API управления.
Замечание
Секреты, хранящиеся в Azure Key Vault, должны находиться в диапазоне от 1 до 4096 символов, так как управление API не может получить значения, превышающие это ограничение.
Предпосылки
- Если вы еще не создали экземпляр службы управления API, см. краткое руководство. Создание нового экземпляра службы управления API Azure с помощью портала Azure.
Предварительные требования для интеграции с хранилищем ключей
Замечание
В настоящее время эта функция недоступна в рабочих областях.
Если у вас еще нет хранилища ключей, создайте его. Инструкции по созданию хранилища ключей см. в разделе Краткое руководство. Создание хранилища ключей с помощью портала Azure.
Сведения о создании или импорте секрета в хранилище ключей см. в кратком руководстве по настройке и извлечению секрета из Azure Key Vault с помощью портала Azure.
Включите системное или пользовательское управляемое удостоверение в экземпляре API Management.
Настройка доступа к хранилищу ключей
- На портале перейдите в хранилище ключей.
- В меню слева выберите Параметры>Конфигурация доступа. Обратите внимание на модель разрешений , настроенную.
- В зависимости от модели разрешений настройте либо политику доступа к хранилищу ключей, либо доступ Azure RBAC для управляемого удостоверения в API Management.
Чтобы добавить политику доступа к хранилищу ключей, выполните следующие действия.
- В меню слева выберите политики доступа.
- На странице политик доступа нажмите кнопку +Создать.
- На вкладке "Разрешения" в разделе "Разрешения секрета" выберите "Получить" и "Список" и нажмите кнопку "Далее".
- На вкладке "Основной" найдите управляемое имя ресурса удостоверения, затем выберите "Далее". Если вы используете назначаемое системой удостоверение, субъектом является имя экземпляра Управления API.
- Снова выберите Далее. На вкладке Проверить и создать выберите Создать.
Чтобы настроить доступ к Azure RBAC, выполните приведенные действия.
- В меню слева выберите Управление доступом (IAM).
- На странице управления доступом (IAM) выберите " Добавить назначение роли".
- На вкладке "Роль" выберите "Пользователь секретов Key Vault", а затем нажмите кнопку "Далее".
- На вкладке "Члены" выберите "Управляемое удостоверение"> и "Выберите участников".
- На странице "Выбор управляемого удостоверения " выберите управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем, связанное с экземпляром управления API, и нажмите кнопку "Выбрать".
- Выберите кнопку Проверить + назначить.
Требования к брандмауэру хранилища ключей
Если брандмауэр Key Vault включен в хранилище ключей, необходимо выполнить следующие требования:
Для доступа к хранилищу ключей необходимо использовать назначаемое системой управляемое удостоверение экземпляра управления API.
В брандмауэре хранилища ключей установите флажок Разрешить доверенным службам Майкрософт обходить этот брандмауэр.
Убедитесь, что IP-адрес локального клиента временно может получить доступ к хранилищу ключей при выборе сертификата или секрета для добавления в Azure API Management. Дополнительные сведения см. в разделе Настройка сетевых параметров Azure Key Vault.
После завершения настройки можно заблокировать адрес клиента в брандмауэре хранилища ключей.
Требования к виртуальной сети
Если экземпляр службы управления API развернут в виртуальной сети, настройте также следующие параметры сети.
- Включите конечную точку службы в подсети управления API для Key Vault.
- Настройте правило группы безопасности сети (NSG), разрешающее исходящий трафик для тегов службы AzureKeyVault и AzureActiveDirectory.
Дополнительные сведения см. в разделе "Конфигурация сети" при настройке управления API в виртуальной сети.
Добавление или изменение именованного значения
Добавление секрета хранилища ключей в управление API
См. Предварительные требования для интеграции хранилища ключей.
Это важно
При добавлении секрета хранилища ключей в экземпляр управления API необходимо иметь разрешения на перечисление секретов из хранилища ключей.
Осторожность
При использовании секрета хранилища ключей в управлении API не следует удалять секрет, хранилище ключей или управляемое удостоверение, используемое для доступа к хранилищу ключей.
Перейдите на портал Azure и откройте ваш экземпляр диспетчера API.
В разделе API выберите "Именованные значения>" и "Добавить".
Введите идентификатор имени и введите отображаемое имя , используемое для ссылки на свойство в политиках.
Добавьте один или несколько необязательных тегов , чтобы упорядочить именованные значения.
В раскрывающемся списке "Тип" выберите хранилище ключей.
Введите идентификатор секрета хранилища ключей (без версии) или выберите "Выбрать секрет" из хранилища ключей.
Это важно
Если вы введете идентификатор секрета хранилища ключей самостоятельно, убедитесь, что у него нет сведений о версии. В противном случае секрет не будет автоматически обновляться в системе управления API после обновления в хранилище ключей.
В списке Удостоверение клиента выберите назначаемое системой или существующее управляемое удостоверение, назначаемое пользователем. Узнайте, как добавлять или изменять управляемые удостоверения в службе управления API.
Замечание
Чтобы иметь доступ к секретам в хранилище ключей, удостоверение должно иметь разрешения на их получение и перечисление. Если вы еще не настроили доступ к хранилищу ключей, в службе управления API появится запрос на автоматическую настройку удостоверения с необходимыми разрешениями.
Нажмите кнопку "Сохранить", а затем нажмите кнопку "Создать".
Добавление обычного или секретного значения в управление API
- Перейдите на портал Azure и откройте ваш экземпляр диспетчера API.
- В разделе API выберите именованные значения>и добавить.
- Введите идентификатор имени и введите отображаемое имя , используемое для ссылки на свойство в политиках.
- В раскрывающемся списке "Тип" выберите "Обычный " или "Секрет".
- В поле Value введите строку или выражение политики.
- Добавьте один или несколько необязательных тегов, чтобы упорядочить именованные значения, а затем сохранить.
- Нажмите кнопку "Создать".
После создания именованного значения его можно изменить, выбрав имя. При изменении отображаемого имени все политики, ссылающиеся на именованное значение, автоматически обновляются для использования нового отображаемого имени.
Использование именованного значения
В примерах этого раздела используются именованные значения, показанные в следующей таблице.
| Имя | Ценность | Секрет |
|---|---|---|
| ContosoHeader | TrackingId |
Неправда |
| ContosoHeaderValue | •••••••••••••••••••••• | Верно |
| ExpressionProperty | @(DateTime.Now.ToString()) |
Неправда |
| ContosoHeaderValue2 | This is a header value. |
Неправда |
Чтобы использовать именованное значение в политике, поместите отображаемое имя в двойную пару фигурных скобок, как {{ContosoHeader}}показано в следующем примере:
<set-header name="{{ContosoHeader}}" exists-action="override">
<value>{{ContosoHeaderValue}}</value>
</set-header>
В этом примере ContosoHeader используется в качестве имени заголовка в set-header политике и ContosoHeaderValue используется в качестве значения этого заголовка. Если эта политика вычисляется во время запроса или ответа на шлюз управления API, {{ContosoHeader}} а {{ContosoHeaderValue}} затем заменяются соответствующими значениями.
Именованные значения можно использовать как полные значения атрибута или элемента, как показано в предыдущем примере, но их также можно вставить в или объединить с частью текстового выражения литерала, как показано в следующем примере:
<set-header name = "CustomHeader{{ContosoHeader}}" ...>
Именованные значения также могут содержать выражения политики. В следующем примере используется выражение ExpressionProperty.
<set-header name="CustomHeader" exists-action="override">
<value>{{ExpressionProperty}}</value>
</set-header>
При оценке этой политики {{ExpressionProperty}} заменяется на @(DateTime.Now.ToString()). Поскольку значение является выражением политики, это выражение обрабатывается, и политика продолжает выполняться.
Это можно проверить на портале Azure или на портале разработчика, с помощью вызова операции с политикой, использующей именованные значения в пределах области. В следующем примере операция вызывается с двумя предыдущими примерами set-header политик с именованными значениями. Обратите внимание, что ответ содержит два настраиваемых заголовка, которые были настроены с помощью политик с именованными значениями.
При просмотре трассировки исходящего API для вызова, содержащего два предыдущих примера политик с именованными значениями, можно увидеть две set-header политики с именованными значениями, вставленными, а также оценку выражения политики для именованного значения, в котором содержалось выражение политики.
Можно также использовать интерполяцию строк с именованными значениями.
<set-header name="CustomHeader" exists-action="override">
<value>@($"The URL encoded value is {System.Net.WebUtility.UrlEncode("{{ContosoHeaderValue2}}")}")</value>
</set-header>
Значение CustomHeader для этого параметра будет The URL encoded value is This+is+a+header+value..
Осторожность
Если политика ссылается на секрет в Azure Key Vault, значение из хранилища ключей отображается пользователям, имеющим доступ к подпискам, включенным для трассировки запросов API.
Хотя именованные значения могут содержать выражения политики, они не могут содержать другие именованные значения. Если текст, содержащий именованную ссылку на значение, используется для значения, например Text: {{MyProperty}}, эта ссылка не будет обработана и заменена.
Удаление именованного значения
Чтобы удалить именованное значение, выберите имя, а затем выберите "Удалить " в контекстном меню (...).
Это важно
Если именованное значение ссылается на любые политики управления API, его нельзя удалить, пока не удалите именованное значение из всех политик, использующих его.
Связанный контент
Дополнительные сведения о работе с политиками: