Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
Методы единого входа зависят от приложений. Прокси приложения Microsoft Entra предоставляет ограниченное делегирование Kerberos (KCD) по умолчанию. В прокси-сервере приложения пользователь проходит проверку подлинности в частном приложении с помощью Kerberos.
В этой статье описывается устранение наиболее распространенных проблем в конфигурации KCD. Он включает в себя диагностические шаги, которые можно предпринять для более сложных реализаций.
В этой статье приводятся следующие предположения:
Прокси приложения Microsoft Entra развертывается и имеет общий доступ к приложениям, отличным от KCD.
Дополнительные сведения см. в статье Начало работы с прокси приложения.
Опубликованное приложение основано на службах IIS и реализации Kerberos майкрософт.
Серверы и хосты приложений находятся в одном домене Microsoft Entra.
Дополнительные сведения о сценариях между доменами и лесами см. в техническом документе Общие сведения о ограниченном делегировании Kerberos с помощью прокси приложения.
Приложение публикуется в клиенте Microsoft Entra с включенной предварительной проверку подлинности. Ожидается, что пользователи будут проходить проверку подлинности с помощью проверки подлинности на основе форм.
Расширенные сценарии проверки подлинности клиента не рассматриваются в этой статье.
Соображения
В следующем списке описываются основные рекомендации по настройке KCD и использование с прокси приложения Microsoft Entra:
Основные ошибки неправильной настройки или общие ошибки вызывают большинство проблем. Прежде чем приступить к устранению неполадок, проверьте все необходимые компоненты в Use KCD SSO with application proxy.
Узлы соединителей не ограничиваются взаимодействием только с определенным локальным контроллером домена сайта (DC). Проверьте используемый ЦОД, поскольку он может измениться.
Сценарии взаимодействия между доменами зависят от ссылок, которые направляют сервер соединителя к контроллерам домена, которые могут находиться за пределами локальной сети. В таких случаях важно отправлять трафик на контроллеры домена, представляющие другие соответствующие домены. Если этого не сделать, делегирование провалится.
Избегание активных устройств системы предотвращения вторжений (IPS) или системы обнаружения вторжений (IDS) между узлами соединителей и контроллерами домена (DCs) из-за вмешательства в трафик основного удаленного вызова процедур (RPC).
Тестирование делегирования в простом сценарии. Чем больше переменных вы вводите в сценарии, тем сложнее конфигурация и устранение неполадок. Чтобы сэкономить время, ограничьте тестирование одним соединителем. Добавьте дополнительные соединители после устранения проблемы.
Факторы окружающей среды могут способствовать возникновению проблемы. Чтобы избежать этих факторов, сведите к минимуму использование сложных архитектурных элементов насколько возможно во время тестирования. Например, часто используются неправильно настроенные внутренние списки управления доступом брандмауэра (ACL). По возможности отправьте весь трафик из соединителя непосредственно в контроллеры домена и серверное приложение.
Лучшее место для размещения соединителей максимально близко к целевым объектам. Брандмауэр, который находится в встроенном режиме при тестировании соединителя, добавляет ненужную сложность и может продлить исследования.
Что означает проблему KCD? Несколько распространенных ошибок указывают на сбой KCD SSO. Первые признаки проблемы отображаются в браузере.
Оба следующих снимка экрана показывают тот же симптом сбоя единого входа: доступ пользователя к приложению запрещен.
Устранение неполадок
Вы можете устранять неполадки KCD поэтапно в три шага. Проверьте эти части процесса KCD в следующем порядке:
- Предварительная проверка подлинности клиента
- Служба делегирования
- Целевое приложение
Предварительная проверка подлинности клиента
Предварительная проверка подлинности клиента относится к внешнему пользователю, выполняющим проверку подлинности в приложении через браузер. Возможность предварительной аутентификации для Microsoft Entra ID необходима для функционирования KCD SSO.
Сначала протестируйте предварительную проверку подлинности клиента и устраните все проблемы. Этап предварительной проверки подлинности не связан с KCD или с опубликованным приложением. Легко исправить несоответствия, проверив наличие учетной записи субъекта в идентификаторе Microsoft Entra. Убедитесь, что приложение недоступно или заблокировано. Ответ на ошибки в браузере обычно достаточно описательный, чтобы объяснить причину.
Служба делегирования
Служба делегирования Kerberos — это соединитель частной сети, который получает служебный тикет Kerberos из центра распределения ключей Kerberos (KDC). Пользователь приложения проходит аутентификацию с помощью билета.
Внешние коммуникации между клиентом и интерфейсом Azure не влияют на ограниченное делегирование. Эти коммуникации обеспечивают только работу KCD. Служба прокси приложения получает действительный идентификатор пользователя, который получает билет Kerberos. Без этого идентификатора KCD не может произойти, и SSO завершается ошибкой.
Сообщения об ошибках браузера содержат полезные сведения о том, почему вход завершается ошибкой. Запишите значения для TransactionID и Timestamp в ответе на вход в приложение. Сведения помогают сопоставить поведение с событиями, отображаемыми в журнале событий прокси приложения.
Соответствующие записи в журнале событий — это идентификаторы событий 13019 или 12027. Чтобы просмотреть журналы событий соединителя, перейдите к журналам> приложений и службMicrosoft>Entra private network>Connector>Admin.
Чтобы устранить проблему ограниченного делегирования, выполните приведенные ниже действия.
- В внутренней системе доменных имен (DNS) для адреса приложения используйте запись A, а не запись CNAME.
- Убедитесь, что хост соединителя настроен с разрешениями на делегирование имени главного объекта службы (SPN) целевой учетной записи. Убедитесь, что выбран любой протокол проверки подлинности . Дополнительные сведения см. в разделе конфигурации единого входа.
- Убедитесь, что в Microsoft Entra ID существует только один экземпляр SPN. Чтобы проверить одно имя принципала службы (SPN), в командной строке на любом узле члена домена выполните команду
setspn -x. - Убедитесь, что применяется политика домена, которая ограничивает максимальный размер выданных маркеров Kerberos . Политика останавливает соединитель от получения маркера, если размер маркера превышает установленный максимум.
- Запуск трассировки сети, которая записывает обмены между узлом соединителя и KCD домена, является следующим лучшим шагом, чтобы получить дополнительные сведения о проблеме. Дополнительные сведения см. в подробном техническом документе по устранению неполадок прокси приложения Microsoft Entra.
Если билетная система работает правильно, журналы, вероятно, покажут событие, которое указывает на ошибку аутентификации, так как приложение вернуло ошибку 401. Это событие указывает, что целевое приложение отклонило билет. Перейдите к следующему этапу устранения неполадок.
Приложение
Целевое приложение обрабатывает тикет Kerberos, предоставленный соединителем. На этом этапе соединитель включает сервисный билет Kerberos в качестве заголовка в первом запросе приложения к серверу.
Чтобы устранить проблему с приложением, выполните приведенные ниже действия.
Убедитесь, что приложение доступно. Войдите непосредственно из браузера на узле соединителя с помощью внутреннего URL-адреса, определенного на портале Azure. Если вход выполнен успешно, приложение доступно.
Проверьте, используется ли браузер и приложение Kerberos для проверки подлинности. На узле соединителя используйте средства разработки Internet Explorer (нажмите клавишу F12) или Fiddler для доступа к приложению через внутренний URL-адрес. Найдите "Negotiate" или "Kerberos" в заголовках веб-авторизации в ответе приложения.
Ответ браузера на приложение включает блок данных Kerberos, который начинается с
YII, подтверждая выполнение Kerberos. В отличие от этого, ответ от Microsoft NT LAN Manager (NTLM) всегда начинается сTlRMTVNTUAAB. При декодировании из Base64 этот ответ читает поставщик поддержки безопасности NTLM (NTLMSSP). Если объекты данных начинаются сTlRMTVNTUAAB, Kerberos недоступен. Если это не так, скорее всего, доступен Kerberos.Заметка
При использовании Fiddler необходимо временно отключить расширенную защиту конфигурации приложения в IIS.
Блоб в этом скриншоте не начинается с
TIRMTVNTUAAB. Итак, в этом примере Kerberos доступен, и блоб Kerberos не начинается сYII.На сайте IIS временно удалите NTLM из списка поставщиков. Получите доступ к приложению непосредственно из Internet Explorer на узле соединителя. NTLM больше не находится в списке поставщиков, поэтому доступ к приложению можно получить только с помощью Kerberos. При сбое доступа отображается проблема с конфигурацией приложения. Приложение не обрабатывает проверку подлинности Kerberos.
Если Kerberos недоступен, проверьте параметры проверки подлинности приложения в IIS. Убедитесь, что Negotiate указано в самом верху, и NTLM находится сразу под ним. Если вы видите не согласовывать, Kerberos или Negotiateили PKU2U, продолжайте работу только в том случае, если Kerberos работает.
При использовании Kerberos и NTLM на портале временно отключите предварительную проверку подлинности для приложения. Попробуйте получить доступ к приложению в браузере с помощью внешнего URL-адреса. Вам будет предложено выполнить проверку подлинности. Используйте ту же учетную запись, которую вы использовали на предыдущем шаге. Если вы не можете выполнить проверку подлинности и войти, возникла проблема с серверным приложением, а не с KCD.
Повторно включите предварительную проверку подлинности на портале. Проверка подлинности через Azure путем попытки подключиться к приложению с помощью внешнего URL-адреса. Если единый вход завершается ошибкой, в браузере отображается сообщение об ошибке "запрещено", а в журнале появляется идентификатор события 13022.
Microsoft Entra private network connector can't authenticate the user because the backend server responds to Kerberos authentication attempts with an HTTP 401 error.
Проверьте приложение IIS. Убедитесь, что настроенный пул приложений и SPN настроены для использования одной и той же учетной записи в Microsoft Entra ID. В IIS перейдите в папку, как показано на следующем снимке экрана:
Проверьте личность и убедитесь, что эта учетная запись настроена с помощью служебного имени SPN. Например, выполните команду
setspn –q http/spn.contoso.comв командной строке.
На портале проверьте определенное имя субъекта-службы (SPN) в настройках приложения. Убедитесь, что пул приложений использует тот же SPN, который задан для целевой учетной записи Microsoft Entra.
В IIS выберите опцию Редактор конфигурации для приложения. Перейдите в system.webServer/security/authentication/windowsAuthentication. Убедитесь, что значение для UseAppPoolCredentials равно True.
При необходимости измените значение True . Удалите все кэшированные билеты Kerberos с внутреннего сервера, выполнив следующую команду:
Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}Если включен режим ядра, операции Kerberos улучшаются. Но запрос запрошенной службы также должен быть расшифрован с помощью учетной записи компьютера. Эта учетная запись также называется локальной системой. Задайте для этого значения значение True, чтобы отключить KCD, если приложение размещается на нескольких серверах в среде фермы.
В качестве другой проверки отключите расширенную защиту. В некоторых тестовых сценариях расширенная защита сломала KCD, когда она была включена в определенных конфигурациях. В таких случаях приложение было опубликовано как вложенная папка веб-сайта по умолчанию. Это приложение настроено только для анонимной проверки подлинности. Все диалоги неактивны, при этом недоступен выбор, который предполагает, что дочерние объекты не наследуют активные параметры. Рекомендуется протестировать, но не забудьте восстановить это значение в enabled, если это возможно.
Эта дополнительная проверка позволяет вам отслеживать использование опубликованного приложения. Можно создать дополнительные соединители, которые также настроены для делегирования. Дополнительные сведения см. в подробном техническом руководстве по устранению неполадок прокси приложения Microsoft Entra.
Если вы по-прежнему не можете устранить проблему проверки подлинности приложения, создайте запрос в службу поддержки непосредственно на портале.
Другие сценарии
Прокси приложения Microsoft Entra запрашивает тикет Kerberos перед отправкой запроса в приложение. Некоторые приложения не поддерживают этот метод проверки подлинности. Эти приложения настроены для реагирования на более обычные шаги проверки подлинности. Первый запрос является анонимным, что позволяет приложению реагировать на типы проверки подлинности, поддерживаемые с помощью ошибки 401. Вы можете настроить этот тип согласования Kerberos, выполнив действия, описанные в ограниченном делегировании Kerberos для единого входа.
Многохоповая проверка подлинности часто используется при приложении с несколькими уровнями. Уровни включают серверную часть и внешний интерфейс. Для обоих уровней требуется проверка подлинности. Например, можно создать многоуровневое приложение с помощью СЛУЖБ SQL Server Reporting Services. Дополнительные сведения см. в статье о настройке ограниченного делегирования Kerberos для страниц прокси-сервера регистрации в Интернете.