Устранение неполадок AD FS: встроенная проверка подлинности Windows

Встроенная проверка подлинности Windows позволяет пользователям входить с помощью учетных данных Windows и использовать единый вход с помощью Kerberos или NTLM.

Почему встроенная проверка подлинности Windows завершается ошибкой

Существует три основных причины сбоя встроенной проверки подлинности Windows:

  • Неправильная настройка имени основного субъекта службы
  • Маркер привязки канала
  • Конфигурация Internet Explorer

Неправильное настройка имени участника-службы

SPN — уникальный идентификатор экземпляра службы. Проверка подлинности Kerberos использует служебные имена источников (SPN) для связывания экземпляра службы с учетной записью входа службы. Эта конфигурация позволяет клиентскому приложению запрашивать службу для проверки подлинности учетной записи, даже если у клиента нет имени учетной записи.

Вот пример того, как используется имя службы с AD FS:

  • Веб-браузер запрашивает Microsoft Entra, чтобы определить, какая служебная учетная запись выполняется sts.contoso.com.
  • Microsoft Entra сообщает браузеру, что это учетная запись службы AD FS.
  • Браузер получает токен Kerberos для учетной записи службы AD FS.

Учетная запись службы AD FS с неправильно настроенным или неверным именем субъекта-службы может столкнуться с проблемами. При просмотре трассировок сети могут появиться ошибки, такие как KRB Error: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN.

Используя трассировки сети (например, Wireshark), вы можете определить, какой SPN пытается установить браузер. Затем можно использовать средство командной строки, setspn - Q \<spn>, и выполнить запрос по этому имени субъекта-службы. Вы можете не найти его или он может быть назначен другой учетной записи, отличной от учетной записи службы AD FS.

снимок экрана с окном командной строки.

Чтобы проверить SPN, просмотрите свойства учетной записи службы AD FS.

Снимок экрана, на котором показана вкладка

Маркер привязки канала

В настоящее время, когда клиентское приложение проходит проверку подлинности на сервере с помощью Kerberos, Digest или NTLM с помощью HTTPS, сначала устанавливается канал TLS. Проверка подлинности выполняется с помощью этого канала.

Маркер привязки канала — это свойство защищенного TLS внешнего канала. Он используется для привязки внешнего канала к беседе через внутренний канал, прошедший проверку подлинности клиента.

Если происходит атака типа "человек посередине", а SSL-трафик расшифровывается и повторно шифруется, ключ не соответствует. AD FS определяет, что что-то сидит в середине между веб-браузером и самим собой. Проверка подлинности Kerberos завершается ошибкой, и пользователю предлагается диалоговое окно 401 вместо единого входа.

Эта проблема может возникнуть из-за:

  • Все, что находится между браузером и AD FS
  • Fiddler
  • Обратные прокси-серверы, выполняющие связывание SSL

По умолчанию параметр AD FS равен Allow. Чтобы изменить этот параметр, используйте командлет PowerShell Set-ADFSProperties -ExtendedProtectionTokenCheck None.

Дополнительные сведения см. в лучшие практики безопасного планирования и развертывания AD FS.

Конфигурация Internet Explorer

Note

Если вы используете Chrome, добавьте его в список агентов пользователей, поддерживаемых интегрированной проверкой подлинности Windows.

По умолчанию Internet Explorer ведет себя следующим образом:

  • Internet Explorer получает ответ 401 от AD FS с словом NEGOTIATE в заголовке. Эта команда сообщает веб-браузеру получить токен Kerberos или NTLM для отправки обратно в AD FS.
  • По умолчанию Internet Explorer пытается выполнить эту задачу (SPNEGO) без взаимодействия пользователя, если слово NEGOTIATE находится в заголовке. Он работает только для сайтов интрасети.

Две основные вещи могут предотвратить эту ситуацию:

  • В свойствах Internet Explorer флажок Включить встроенную проверку подлинности Windows не выбран. Этот параметр расположен в разделе"Дополнительные>параметры браузерабезопасности>".

    снимок экрана, на котором показана вкладка

  • Зоны безопасности настроены неправильно:

    • Полностью квалифицированные доменные имена не находятся в зоне внутренней сети.

    • URL-адрес AD FS не в зоне интрасети.

      снимок экрана, на котором показано окно локальной интрасети перед диалогом