Устранение неполадок AD FS — встроенная проверка подлинности Windows
Интегрированная проверка подлинности Windows позволяет пользователям входить с помощью учетных данных Windows и использовать единый вход с помощью Kerberos или NTLM.
Причина сбоя встроенной проверки подлинности Windows
Существует три основных причины сбоя встроенной проверки подлинности Windows. Они: неправильное настройка имени субъекта-службы — токен привязки канала — конфигурация Обозреватель Интернета
Неправильное настройка имени участника-службы
Имя субъекта-службы (SPN) — это уникальный идентификатор экземпляра службы. Имена субъектов-служб используются проверкой подлинности Kerberos для связывания экземпляра службы с учетной записью входа в службу. Это позволяет клиентскому приложению запрашивать проверку подлинности учетной записи, даже если у клиента нет имени учетной записи.
Пример использования имени субъекта-службы с AD FS выглядит следующим образом:
- Веб-браузер запрашивает Active Directory, чтобы определить, какая учетная запись службы выполняется sts.contoso.com
- Active Directory сообщает браузеру, что это учетная запись службы AD FS.
- Браузер получит билет Kerberos для учетной записи службы AD FS.
Если учетная запись службы AD FS неправильно настроена или неправильная имя субъекта-службы, это может вызвать проблемы. При просмотре сетевых трассировок могут отображаться такие ошибки, как ошибка KRB: KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN.
С помощью сетевых трассировок (например, Wireshark) вы можете определить, какое имя субъекта-службы пытается разрешить браузер, а затем с помощью средства командной строки, setpn - Q <spn>, вы можете выполнить поиск в этом имени участника-службы. Он не найден или может быть назначен другой учетной записи, отличной от учетной записи службы AD FS.
Чтобы проверить имя субъекта-службы, проверьте свойства учетной записи службы AD FS.
Токен привязки канала
В текущей версии, если клиентское приложение проходит проверку подлинности на сервере с использованием протокола Kerberos, дайджест-проверку подлинности или проверку NTLM с использованием HTTPS, то сначала устанавливается канал безопасности транспортного уровня (TLS), а проверка подлинности выполняется по этому каналу.
Маркер привязки канала является свойством защищенного TLS внешнего канала и используется для привязки внешнего канала к беседе через внутренний канал, прошедший проверку подлинности клиента.
Если происходит атака "man-in-in-middle", и они расшифровывают и повторно шифруют SSL-трафик, то ключ не будет соответствовать. AD FS определяет, что между веб-браузером и самим собой есть что-то сидящее. Это приведет к сбою проверки подлинности Kerberos, и пользователю будет предложено использовать диалоговое окно 401 вместо единого входа.
Для этого могут быть следующие причины:
- Все, сидящие между браузером и AD FS
- Fiddler
- Обратные прокси-серверы, выполняющие мост SSL
По умолчанию AD FS имеет значение "Разрешить". Этот параметр можно изменить с помощью командлета PowerShell Set-ADFSProperties -ExtendedProtectionTokenCheck None
Дополнительные сведения об этом см. в рекомендациях по безопасному планированию и развертыванию AD FS.
Настройка Internet Explorer
Примечание.
Если вы используете Chrome, добавьте его в список поддерживаемых агентов пользователей WIA.
По умолчанию Internet Explorer будет вести себя следующим образом:
- Internet Explorer получит ответ 401 от AD FS с словом NEGOTIATE в заголовке.
- Это сообщает веб-браузеру, чтобы получить билет Kerberos или NTLM, чтобы отправить обратно в AD FS.
- По умолчанию IE попытается сделать это (SPNEGO) без взаимодействия с пользователем, если слово NEGOTIATE находится в заголовке. Он будет работать только для сайтов интрасети.
Существует две основные вещи, которые могут предотвратить это.
Включение встроенной проверки подлинности Windows не проверка в свойствах IE. Это находится в разделе "Параметры браузера" — "Дополнительно" —>> безопасность.
Зоны безопасности настроены неправильно
Полные доменные имена не в зоне интрасети
URL-адрес AD FS не в зоне интрасети.