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


Защита внутренних служб с помощью проверки подлинности сертификата клиента в службе "Управление API Azure"

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

Управление API позволяет защитить доступ к серверной службе API с помощью сертификатов клиента и взаимной проверки подлинности TLS. В этой статье показано, как управлять сертификатами в службе управления API с помощью портала Azure. Также вы узнаете, как настроить для API доступ к внутренней службе с использованием сертификата.

Вы также можете управлять сертификатами управления API с помощью REST API Management API.

Варианты использования сертификата

Управление API предоставляет два варианта управления сертификатами, которые используются для защиты доступа к внутренним службам:

  • Ссылка на сертификат, управляемый в Azure Key Vault.
  • Добавьте файл сертификата непосредственно в службу управления API.

Рекомендуется использовать сертификаты хранилища ключей, так как это повышает безопасность управления API:

  • Сертификаты, хранящиеся в хранилищах ключей, можно повторно использовать в разных службах.
  • К сертификатам, которые хранятся в ключевых хранилищах, можно применять детальные политики доступа.
  • Обновленные в хранилище ключей сертификаты автоматически поворачиваются в системе управления API. После обновления в хранилище ключей сертификат в службе управления API обновляется в течение четырех часов. Вы также можете вручную обновить сертификат с помощью портала Azure или с помощью REST API управления.

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

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как перейти на модуль Az PowerShell, см. Перенос Azure PowerShell с AzureRM на Az.

Предварительные требования для интеграции с хранилищем ключей

Примечание.

В настоящее время эта функция недоступна в рабочих областях.

  1. Если у вас еще нет хранилища ключей, создайте его. Сведения о создании хранилища ключей см. в кратком руководстве по созданию хранилища ключей с помощью портала Azure.

  2. Включите системное или пользовательское управляемое удостоверение в системе управления API.

Настройка доступа к хранилищу ключей

  1. На портале перейдите в хранилище ключей.
  2. В меню слева выберите конфигурацию Access. Обратите внимание на модель разрешений , настроенную.
  3. В зависимости от модели разрешений настройте либо политику доступа к хранилищу ключей, либо доступ Azure RBAC для управляемого удостоверения в API Management.

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

  1. В меню слева выберите политики доступа.
  2. На странице политик доступа нажмите кнопку +Создать.
  3. На вкладке "Разрешения" в разделе "Разрешения секрета" выберите "Получить" и "Список" и нажмите кнопку "Далее".
  4. На вкладке "Субъект" выберите "Субъект", найдите имя ресурса управляемого удостоверения и нажмите кнопку "Далее". Если вы используете назначаемое системой удостоверение, субъектом является имя экземпляра Управления API.
  5. Снова выберите Далее. На вкладке Проверить и создать выберите Создать.

Сведения о создании сертификата в хранилище ключей или импорте сертификата в хранилище ключей см. в кратком руководстве по настройке и извлечению сертификата из Azure Key Vault с помощью портала Azure.

Требования к брандмауэру хранилища ключей

Если брандмауэр Key Vault включен в хранилище ключей, необходимо выполнить следующие требования:

  • Для доступа к хранилищу ключей необходимо использовать назначаемое системой управляемое удостоверение экземпляра управления API.

  • В брандмауэре хранилища ключей установите флажок Разрешить доверенным службам Майкрософт обходить этот брандмауэр.

  • Убедитесь, что IP-адрес локального клиента временно может получить доступ к хранилищу ключей при выборе сертификата или секрета для добавления в Azure API Management. Дополнительные сведения см. в разделе Настройка сетевых параметров Azure Key Vault.

    После завершения настройки можно заблокировать адрес клиента в брандмауэре хранилища ключей.

Требования к виртуальной сети

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

  • Включите конечную точку службы в подсети управления API для Key Vault.
  • Настройте правило группы безопасности сети (NSG), разрешающее исходящий трафик для тегов службы AzureKeyVault и AzureActiveDirectory.

Дополнительные сведения см. в разделе "Конфигурация сети" при настройке управления API в виртуальной сети.

Добавление сертификата, размещенного в хранилище ключей

См. Предварительные требования для интеграции хранилища ключей.

Внимание

Чтобы добавить сертификат хранилища ключей в экземпляр службы управления API, необходимо иметь разрешения на перечисление секретов из хранилища ключей.

Внимание

При использовании сертификата хранилища ключей в службе управления API не следует удалять сертификат, хранилище ключей или управляемое удостоверение, используемое для доступа к хранилищу ключей.

Чтобы добавить в Управление API сертификат, размещенный в хранилище ключей, выполните следующие действия.

  1. На портале Azure откройте экземпляр API Management.

  2. В разделе Безопасность выберите Сертификаты.

  3. Выберите Сертификаты>Добавить.

  4. В поле "Идентификатор" введите имя.

  5. В разделе Сертификатвыберите Хранилище ключей.

  6. Введите идентификатор сертификата, размещенного в хранилище ключей, или щелкните Выбрать, чтобы выбрать сертификат из хранилища ключей.

    Внимание

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

  7. В удостоверении клиента выберите назначаемое системой удостоверение или существующее управляемое удостоверение, назначаемое пользователем. Дополнительную информацию см. в статье "Использование управляемых удостоверений в Azure API Management".

    Примечание.

    Удостоверение должно иметь разрешения на получение и перечисление сертификатов из хранилища ключей. Если вы еще не настроили доступ к хранилищу ключей, управление API предложит вам автоматически настроить удостоверение с необходимыми разрешениями.

  8. Выберите Добавить.

    Снимок экрана: добавление сертификата хранилища ключей в управление API на портале.

  9. Выберите Сохранить.

Загрузить сертификат

Чтобы передать сертификат клиента в Управление API, выполните следующие действия.

  1. На портале Azure откройте экземпляр API Management.

  2. В разделе Безопасность выберите Сертификаты.

  3. Выберите Сертификаты>Добавить.

  4. В поле "Идентификатор" введите имя.

  5. В списке Сертификат выберите Пользовательский.

  6. Найдите PFX-файл сертификата, выберите его и введите соответствующий пароль.

  7. Выберите Добавить.

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

  8. Выберите Сохранить.

Отправленный сертификат отобразится на вкладке Сертификаты. Если у вас много сертификатов, обратите внимание на отпечаток только что отправленного сертификата. Вам потребуется настроить API для использования сертификата клиента для проверки подлинности шлюза.

Настройка проверки подлинности шлюза с помощью сертификата клиента в API

  1. На портале Azure откройте экземпляр API Management.

  2. В разделе Интерфейсы API выберите Интерфейсы API.

  3. Выберите нужный API из списка.

  4. На вкладке "Конструктор " выберите значок карандаша в разделе серверной части .

  5. В учетных данных шлюза выберите сертификат клиента и выберите сертификат в списке сертификатов клиента .

  6. Выберите Сохранить.

    Использование сертификата клиента для проверки подлинности шлюза

Внимание

Это изменение вступает в силу немедленно. Вызовы операций API будут использовать сертификат для проверки подлинности на сервере.

Совет

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

Отключение проверки цепочки сертификатов для самозаверяемых сертификатов

Если вы используете самозаверяющий сертификат, необходимо отключить проверку цепочки сертификатов, чтобы разрешить управлению API взаимодействовать с серверной системой. В противном случае вы получите код ошибки 500. Чтобы отключить эту проверку, можно использовать командлеты PowerShell New-AzApiManagementBackend (для нового бэкенда) или Set-AzApiManagementBackend (для существующего бэкенда) и установить для параметра -SkipCertificateChainValidation значение True.

$context = New-AzApiManagementContext -ResourceGroupName 'ContosoResourceGroup' -ServiceName 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

Вы также можете отключить проверку цепочки сертификатов с помощью Backend REST API.

Удаление сертификата клиента

Чтобы удалить сертификат, выберите "Удалить " в меню с многоточием (...):

Удаление сертификата

Внимание

Если на сертификат ссылается любая политика, появится экран предупреждения. Чтобы удалить сертификат, необходимо сначала удалить его из всех политик, настроенных для его использования.