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


Использование MTLS в приложениях контейнеров Azure

Взаимная безопасность уровня транспорта (mTLS) — это расширение стандартного протокола TLS, обеспечивающего взаимную проверку подлинности между клиентом и сервером. Приложения контейнеров Azure поддерживают запуск приложений с поддержкой MTLS, чтобы обеспечить повышенную безопасность в приложениях.

В приложениях контейнеров Azure все входящие запросы передаются через Envoy перед перенаправлением в целевое приложение контейнера. При использовании MTLS клиент обменивается сертификатами с Envoy. Каждый из этих сертификатов помещается в заголовок X-Forwarded-Client-Cert , который затем отправляется в приложение.

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

  1. Настройте приложения контейнеров Azure, чтобы требовать сертификаты клиента от одноранговых узлов.
  2. Извлечение X.509 сертификатов из запросов.

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

Требовать сертификаты клиента

Выполните следующие действия, чтобы настроить приложение-контейнер для требования сертификатов клиента:

  1. Откройте приложение контейнера в портал Azure.
  2. В разделе "Параметры" выберите "Входящий трафик".
  3. Установите флажок Enabled (Включено).
  4. Для типа входящего трафика выберите HTTP.
  5. В разделе "Режим сертификата клиента" выберите "Требовать".
  6. Выберите Сохранить, чтобы применить изменения.

Дополнительные сведения о настройке проверки подлинности сертификата клиента в azure Container Apps см. в статье "Настройка проверки подлинности сертификата клиента" в приложениях контейнеров Azure.

Извлечение сертификатов X.509

Чтобы извлечь сертификаты из заголовка, выполните синтаксический X.509 анализ значения заголовка X-Forwarded-Client-Cert в коде приложения. Этот заголовок содержит сведения о сертификате клиента при включении mTLS. Сертификаты предоставляются в формате списка с запятой, который включает хэш, сертификат и цепочку.

Ниже приведена процедура, которую вы хотите выполнить для извлечения и анализа сертификата в приложении:

  1. X-Forwarded-Client-Cert Получите заголовок из входящего запроса.
  2. Анализ значения заголовка для извлечения сведений о сертификате.
  3. Поместите проанализированные сертификаты в стандартный атрибут сертификата для дальнейшей проверки или использования.

После синтаксического анализа можно проверить сертификаты и использовать их в соответствии с потребностями приложения.

Пример

В приложениях Java можно использовать фильтр проверки подлинности Reactive X.509 для сопоставления сведений о пользователе из сертификатов с контекстом безопасности. Полный пример приложения Java с mTLS в приложениях контейнеров Azure см. в статье mTLS Server Application on Azure Container Apps.