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


Глубокий анализ безопасности сквозной аутентификации Microsoft Entra

В этой статье приведено более подробное описание работы сквозной проверки подлинности Microsoft Entra. Она посвящена аспектам безопасности данного компонента. Эта статья посвящена безопасности и ИТ-администраторам, главным сотрудникам по соответствию требованиям и безопасности, а также другим ИТ-специалистам, отвечающим за безопасность ИТ и соответствие требованиям в организациях или предприятиях любого размера.

Здесь рассматривается следующее:

  • Подробные технические сведения об установке и регистрации агентов проверки подлинности.
  • Подробные технические сведения о шифровании паролей во время входа пользователя.
  • Безопасность каналов между локальными агентами проверки подлинности и идентификатором Microsoft Entra.
  • Подробные технические сведения о том, как обеспечить безопасность агентов проверки подлинности.

Возможности безопасности ключа сквозной проверки подлинности

Сквозная проверка подлинности имеет следующие ключевые возможности безопасности:

  • Он построен на безопасной многопользовательской архитектуре, обеспечивающей изоляцию запросов на вход между клиентами.
  • Локальные пароли ни в каком виде не хранятся в облаке.
  • Локальные агенты проверки подлинности, которые прослушивают и отвечают на запросы проверки пароля, делают только исходящие подключения из вашей сети. Нет необходимости устанавливать этих агентов проверки подлинности в сети периметра (также известной как DMZ, демилитаризованная зона и экранированная подсеть). Рекомендуется обрабатывать все серверы, на которых выполняются агенты проверки подлинности, как системы уровня 0 (см . справочник).
  • Только стандартные порты (порт 80 и порт 443) используются для исходящего подключения от агентов проверки подлинности к идентификатору Microsoft Entra. Не требуется открывать входящие порты в брандмауэре.
  • Для всего прошедшего аутентификацию исходящего трафика используется порт 443.
  • Порт 80 используется только для скачивания списков отзыва сертификатов (CRLS), чтобы убедиться, что ни один из сертификатов, используемых этой функцией, не был отменен.
  • Полный список требований к сети см. в кратком руководстве по сквозной аутентификации Microsoft Entra.
  • Пароли, предоставляемые пользователями во время входа, шифруются в облаке, прежде чем локальные агенты проверки подлинности принимают их для проверки в Windows Server Active Directory (Windows Server AD).
  • Канал HTTPS между идентификатором Microsoft Entra и локальным агентом проверки подлинности защищен с помощью взаимной проверки подлинности.
  • Сквозная проверка подлинности защищает учетные записи пользователей путем простой работы с политиками условного доступа Microsoft Entra, включая многофакторную проверку подлинности (MFA), блокируя устаревшую проверку подлинности и отфильтровав атаки подбора паролей.

Компоненты, участвующие в сквозной проверке подлинности

Общие сведения о функционировании, обслуживании и безопасности данных Microsoft Entra ID см. в Центре доверия. При использовании сквозной проверки подлинности для входа пользователей используются следующие компоненты:

  • Служба токенов безопасности Microsoft Entra (Microsoft Entra STS): без сохранения состояния, которая обрабатывает запросы на вход и выдает токены безопасности для браузеров пользователей, клиентов или служб по мере необходимости.
  • Служебная шина Azure: Обеспечивает облачный обмен данными с корпоративной передачей сообщений и ретрансляцией сообщений, что позволяет подключить локальные решения к облаку.
  • Агент проверки подлинности Microsoft Entra Connect: локальный компонент, который прослушивает запросы проверки пароля и отвечает на них.
  • База данных SQL Azure. Содержит сведения об агентах проверки подлинности клиента, включая их метаданные и ключи шифрования.
  • Windows Server AD: локальная служба Active Directory, где хранятся учетные записи пользователей и их пароли.

Установка и регистрация агентов проверки подлинности

Агенты проверки подлинности устанавливаются и регистрируются с идентификатором Microsoft Entra при выполнении одного из следующих действий:

Чтобы агент аутентификации начал полноценно работать, требуется пройти три основных этапа:

  • Установка
  • Регистрация
  • Инициализация

В следующих разделах эти этапы рассматриваются подробно.

Установка агента проверки подлинности

Только учетная запись администратора гибридного удостоверения может установить агент проверки подлинности (с помощью Microsoft Entra Connect или автономного экземпляра) на локальном сервере.

Установка добавляет две новые записи в список в Панель управления>Программы>Программы и компоненты:

  • Само приложение агента проверки подлинности. Это приложение работает с привилегиями NetworkService.
  • Приложение Updater, которое используется для автоматического обновления агента проверки подлинности. Это приложение работает с привилегиями LocalSystem.

Внимание

С точки зрения безопасности администраторы должны рассматривать сервер, на котором запущен агент сквозной проверки подлинности, как если бы он был контроллером домена. Серверы агента сквозной проверки подлинности должны быть усилены в соответствии с указаниями в Защите контроллеров домена от атак.

Регистрация агента проверки подлинности

После установки агента проверки подлинности он регистрируется с помощью идентификатора Microsoft Entra. Идентификатор Microsoft Entra назначает каждому агенту проверки подлинности уникальный цифровой сертификат удостоверения, который он может использовать для безопасного взаимодействия с идентификатором Microsoft Entra.

Процедура регистрации также привязывает агент проверки подлинности к тенанту. Затем идентификатор Microsoft Entra знает, что этот конкретный агент проверки подлинности является единственным, который авторизован для обработки запросов на проверку пароля для вашего клиента. Эта процедура повторяется для каждого нового зарегистрированного агента проверки подлинности.

Агенты проверки подлинности используют следующие действия, чтобы зарегистрировать себя в идентификаторе Microsoft Entra.

Схема, изображающая регистрацию агента проверки подлинности с помощью Azure AD.

  1. Microsoft Entra сначала запрашивает, чтобы администратор гибридного удостоверения вошел в Microsoft Entra ID с помощью своих учетных данных. Во время входа агент проверки подлинности получает маркер доступа, который он может использовать от имени пользователя.

  2. Затем агент проверки подлинности создает пару ключей: открытый ключ и закрытый ключ.

    • Пара ключей создается с помощью стандартного шифрования RSA с 2048-разрядным ключом.
    • Закрытый ключ остается на локальном сервере, где находится агент проверки подлинности.
  3. Агент аутентификации отправляет запрос на регистрацию в Microsoft Entra ID по протоколу HTTPS с включением следующих компонентов в запрос:

    • Маркер доступа, полученный агентом.
    • Открытый ключ, который был создан.
    • Запрос на подпись сертификата (CSR или запрос на сертификат). Этот запрос применяется к цифровому сертификату удостоверения с идентификатором Microsoft Entra в качестве центра сертификации (ЦС).
  4. Идентификатор Microsoft Entra проверяет токен доступа в запросе на регистрацию и проверяет, поступил ли запрос от администратора гибридной идентичности.

  5. Затем идентификатор Microsoft Entra подписывает цифровой сертификат удостоверения и отправляет его обратно агенту проверки подлинности.

    • Корневой УЦ в Microsoft Entra ID используется для подписи сертификата.

    Примечание.

    Этот ЦС не расположен в хранилище доверенных корневых центров сертификации Windows.

    • Центр сертификации используется только для функции сквозной аутентификации. ЦС используется только для подписывания CSR во время регистрации агента проверки подлинности.
    • Ни другая служба Microsoft Entra не использует этот ЦС.
    • Субъект сертификата (также называемый Уникальное имя или DN) устанавливается в ваш идентификатор арендатора. Этот DN — глобально уникальный идентификатор (GUID), который уникально идентифицирует вашего арендатора. Эта DN ограничивает использование сертификата только вашим арендатором.
  6. Идентификатор Microsoft Entra хранит открытый ключ агента аутентификации в базе данных Azure SQL Database. Доступ к базе данных может получить только идентификатор Microsoft Entra.

  7. Выданный сертификат хранится на локальном сервере в хранилище сертификатов Windows (в частности, в CERT_SYSTEM_STORE_LOCAL_MACHINE). Сертификат используется агентом проверки подлинности и приложением Updater.

Инициализация агента проверки подлинности

Когда агент проверки подлинности запускается в первый раз после регистрации или после перезапуска сервера, он должен безопасно взаимодействовать со службой Microsoft Entra, чтобы начать принимать запросы на проверку паролей.

Схема, изображающая инициализацию агента проверки подлинности.

Вот как инициализируются агенты аутентификации:

  1. Агент проверки подлинности отправляет исходящий запрос начальной загрузки в Microsoft Entra ID. Этот запрос выполняется через порт 443 и канал HTTPS с взаимной аутентификацией. Запрос использует тот же сертификат, который был выдан во время регистрации агента проверки подлинности.
  2. Microsoft Entra ID отвечает на запрос, предоставляя ключ доступа к очереди Service Bus, уникальной для вашего тенанта, и которая определяется вашим идентификатором тенанта.
  3. Агент проверки подлинности выполняет постоянное исходящее подключение HTTPS (через порт 443) к очереди.

Агент проверки подлинности теперь готов к получению и обработке запросов на проверку пароля.

Если у вас зарегистрировано несколько агентов проверки подлинности на арендаторе, процедура инициализации гарантирует, что каждый агент подключается к одной и той же очереди Service Bus.

Как сквозная проверка подлинности обрабатывает запросы на вход

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

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

Как сквозная проверка подлинности обрабатывает запрос на вход пользователя:

  1. Пользователь пытается получить доступ к приложению, например, Outlook Web App.
  2. Если пользователь еще не вошел в систему, приложение перенаправляет браузер на страницу входа Microsoft Entra.
  3. Служба Microsoft Entra STS отвечает на страницу входа пользователя.
  4. Пользователь вводит имя пользователя на странице входа пользователя, а затем нажмите кнопку "Далее ".
  5. Пользователь вводит пароль на странице входа пользователя и нажимает кнопку входа .
  6. Имя пользователя и пароль отправляются в службу STS Microsoft Entra в запросе HTTPS POST.
  7. Microsoft Entra STS извлекает открытые ключи для всех агентов проверки подлинности, зарегистрированных в клиенте из База данных SQL Azure, и шифрует пароль с помощью ключей. Он создает одно зашифрованное значение пароля для каждого агента проверки подлинности, зарегистрированного в клиенте.
  8. Служба STS Microsoft Entra помещает запрос на проверку пароля, состоящий из имени пользователя и зашифрованного значения пароля, в очередь Service Bus, относящуюся к вашему клиенту.
  9. Поскольку инициализированные агенты проверки подлинности постоянно подключены к очереди шины служб, один из доступных агентов получает запрос на проверку пароля.
  10. Агент проверки подлинности использует идентификатор для поиска зашифрованного значения пароля, относящегося к открытому ключу. Он расшифровывает открытый ключ с помощью закрытого ключа.
  11. Агент проверки подлинности пытается проверить имя пользователя и пароль в Windows Server AD, используя API Win32 LogonUser с параметром dwLogonType установленным на LOGON32_LOGON_NETWORK.
    • Этот API используется той же службой федерации Active Directory (AD FS) для входа пользователей в федеративном сценарии.
    • Этот API полагается на стандартный процесс разрешения в Windows Server для поиска контроллера домена.
  12. Агент проверки подлинности получает результат из Windows Server AD, например успешно, имя пользователя или пароль неверный или срок действия пароля истек.

Примечание.

Если агент проверки подлинности завершается ошибкой во время процесса входа, весь запрос на вход удаляется. Запросы на вход не передаются из одного локального агента проверки подлинности в другой локальный агент проверки подлинности. Эти агенты взаимодействуют только с облаком, а не друг с другом.

  1. Агент проверки подлинности перенаправит результат обратно в службу STS Microsoft Entra по исходящему каналу HTTPS через порт 443. Взаимная проверка подлинности использует сертификат, выданный агенту проверки подлинности во время регистрации.
  2. Служба STS Microsoft Entra проверяет, соответствует ли этот результат конкретному запросу на вход в тенант.
  3. Microsoft Entra STS следует процедуре входа в соответствии с настройками. Например, если проверка пароля прошла успешно, у пользователя может быть запрошено подтверждение через MFA или он будет перенаправлен обратно в приложение.

Операционная безопасность агента проверки подлинности

Чтобы обеспечить, что сквозная проверка подлинности остается операционно безопасной, Microsoft Entra ID периодически обновляет сертификаты агента проверки подлинности. Идентификатор Microsoft Entra активирует продление. Обновления не управляются самими агентами проверки подлинности.

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

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

  1. Агент проверки подлинности отправляет запросы в Microsoft Entra каждые несколько часов, чтобы проверить, нужно ли обновить сертификат. Сертификат обновляется через 30 дней до истечения срока его действия. Эта проверка выполняется через канал HTTPS со взаимной аутентификацией с помощью сертификата, выданного во время регистрации.
  2. Если служба указывает, что пришло время продлить, агент проверки подлинности создает новую пару ключей: открытый ключ и закрытый ключ.
    • Эти ключи создаются с помощью стандартного шифрования RSA 2048-разрядного шифрования.
    • Закрытый ключ никогда не покидает локальный сервер.
  3. Затем агент аутентификации отправляет запрос на продление сертификата в Microsoft Entra ID по протоколу HTTPS. В запрос включаются следующие компоненты:
    • Существующий сертификат, полученный из расположения CERT_SYSTEM_STORE_LOCAL_MACHINE в хранилище сертификатов Windows.
    • Открытый ключ, созданный на шаге 2.
    • Корпоративная социальная ответственность. Этот запрос на получение нового цифрового сертификата удостоверения с Microsoft Entra ID в качестве удостоверяющего центра (ЦС).
  4. Идентификатор Microsoft Entra проверяет существующий сертификат в запросе на продление сертификата. Затем система проверяет, поступил ли запрос от агента аутентификации, зарегистрированного в клиенте.
  5. Если существующий сертификат по-прежнему действителен, идентификатор Microsoft Entra подписывает новый цифровой сертификат удостоверения и выдает новый сертификат обратно агенту проверки подлинности.
  6. Если срок действия существующего сертификата истек, Microsoft Entra ID удаляет агента аутентификации из списка зарегистрированных агентов клиента. Затем администратор гибридного удостоверения должен вручную установить и зарегистрировать новый агент проверки подлинности.
    • Чтобы подписать сертификат, используйте корневой ЦС Microsoft Entra ID.
    • Установите DN сертификата как идентификатор арендатора, уникальный идентификатор GUID, который однозначно идентифицирует вашего арендатора. Сертификат DN ограничен использованием только вашим тенантом.
  7. Microsoft Entra ID хранит новый открытый ключ агента аутентификации в базе данных Azure SQL, доступ к которой имеется только у него. Он также делает недействительным старый открытый ключ, связанный с агентом проверки подлинности.
  8. Затем новый сертификат (выданный на шаге 5) хранится на сервере в хранилище сертификатов Windows (в частности, в расположении CERT_SYSTEM_STORE_CURRENT_USER ).

Так как процедура продления доверия выполняется неинтерактивно (без присутствия администратора гибридного удостоверения), агент проверки подлинности больше не имеет доступа к обновлению существующего сертификата в расположении CERT_SYSTEM_STORE_LOCAL_MACHINE.

Примечание.

Эта процедура не удаляет сам сертификат из расположения CERT_SYSTEM_STORE_LOCAL_MACHINE. 9. С этого момента новый сертификат используется для проверки подлинности. При каждом последующем обновлении сертификат в расположении CERT_SYSTEM_STORE_LOCAL_MACHINE заменяется новым.

Автоматическое обновление агента проверки подлинности

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

Microsoft Entra ID хранит новую версию программного обеспечения в виде подписанного пакета установщика Windows (MSI). MSI подписан с помощью Microsoft Authenticode с использованием SHA-256 в качестве алгоритма хэширования.

Схема, показывающая, как агент проверки подлинности обновляется автоматически.

Чтобы автоматически обновить агент проверки подлинности, выполните приведенные далее действия.

  1. Приложение Updater пингует Microsoft Entra каждый час, чтобы проверить, доступна ли новая версия агента проверки подлинности. Эта проверка выполняется через канал HTTPS со взаимной аутентификацией с помощью сертификата, выданного во время регистрации. Агент проверки подлинности и updater используют сертификат, хранящийся на сервере.
  2. Если доступна новая версия, идентификатор Microsoft Entra возвращает подписанный MSI обратно в Updater.
  3. Приложение Updater проверяет, подписан ли этот MSI-файл корпорацией Майкрософт.
  4. Затем Updater выполняет данный MSI-файл. В этом процессе приложение Updater:

Примечание.

Updater выполняется с привилегиями локальной системы.

  1. Останавливает службу агента проверки подлинности.
  2. Устанавливает новую версию агента проверки подлинности на сервере.
  3. Перезапускает службу агента аутентификации.

Примечание.

Если в клиенте зарегистрировано несколько агентов проверки подлинности, идентификатор Microsoft Entra не обновляет свои сертификаты или не обновляет их одновременно. Вместо этого Microsoft Entra ID обновляет сертификаты поочередно, чтобы обеспечить высокий уровень доступности запросов на вход.

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