Устранение неполадок конфигураций ограниченного делегирования Kerberos (KCD) с помощью прокси приложения Microsoft Entra

Методы единого входа различаются от одного приложения к другому. Прокси приложения Microsoft Entra предоставляет ограниченное делегирование Kerberos (KCD) по умолчанию. Пользователи проходят проверку подлинности в частных приложениях с помощью Kerberos.

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

В этой статье приводятся следующие предположения.

  • Развертывание прокси приложения Microsoft Entra и общий доступ к приложениям, отличным от KCD. Дополнительные сведения см. в статье "Начало работы с прокси приложениями".
  • Опубликованное приложение основано на службы IIS (IIS) и реализации Kerberos майкрософт.
  • Узлы серверов и приложений находятся в одном домене Microsoft Entra. Дополнительные сведения о междоменных сценариях и сценариях леса см . в техническом документе KCD.
  • Приложение публикуется в клиенте Идентификатора Microsoft Entra с включенной предварительной проверкой подлинности. Ожидается, что пользователи будут проходить проверку подлинности с помощью проверки подлинности на основе форм. Расширенные сценарии проверки подлинности клиента не рассматриваются в этой статье,

Необходимые компоненты

сколько неправильная настройка или общий контроль. Перед устранением неполадок проверьте все предварительные требования в использовании единого входа KCD с прокси-сервером приложения.

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

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

Избегайте активной системы предотвращения вторжений (IPS) или устройств системы обнаружения вторжений (IDS) между узлами соединителей и контроллерами домена. Эти устройства слишком навязчивы и вмешиваются в основной трафик удаленного вызова процедур (RPC).

В простых сценариях следует протестировать делегирование. Чем больше переменных вы вводите, тем с большими трудностями можете столкнуться. Чтобы сэкономить время, вы можете ограничить тестирование одним соединителем, а затем Добавьте дополнительные соединители после устранения проблемы.

Некоторые факторы среды также могут стать причиной проблемы. Чтобы избежать влияния факторов среды, во время тестирования следует свести архитектуру к абсолютному минимуму. Например, распространенными являются неправильно настроенные внутренние списки брандмауэра контроль доступа Списки (ACL). По возможности организуйте прохождение трафика напрямую от соединителя к контроллерам домена и серверному приложению.

Соединители лучше всего располагать как можно ближе к их целям. Использование встроенного брандмауэра при тестировании лишь чрезмерно усложняет процесс и может приводить к затягиванию работы.

Так в чем именно состоит проблема ограниченного делегирования Kerberos? Существует несколько распространенных признаков сбоя единого входа KCD. Первые признаки проблемы обычно проявляются в браузере.

Снимок экрана: пример ошибки из-за некорректной настройки ограниченного делегирования Kerberos, где выделено сообщение

Пример. Сбой авторизации из-за отсутствующих разрешений

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

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

Разделение устранения неполадок на три этапа.

Предварительная проверка подлинности клиента

Внешний пользователь, проверяющий подлинность через браузер. Возможность предварительной проверки подлинности в идентификаторе Microsoft Entra необходима для работы единого входа (SSO) KCD. Протестируйте эту возможность и исправьте проблемы, если они возникнут. Этап предварительной проверки подлинности не связан с KCD или опубликованным приложением. Это легко исправить любые несоответствия, проверка, что учетная запись субъекта существует в идентификаторе Microsoft Entra. Убедитесь, что приложение не отключено или не заблокировано. Сообщение об ошибке в браузере обычно достаточно информативно, чтобы понять причину.

Служба делегирования

Соединитель частной сети, который получает билет на обслуживание Kerberos для пользователей из Центра распространения ключей Kerberos (KCD).

Внешнее взаимодействие между клиентом и интерфейсной частью Azure должно осуществляться без привлечения ограниченного делегирования Kerberos. Эта взаимодействие используется лишь при проверке работоспособности KCD. Служба прокси приложения предоставляет действительный идентификатор пользователя, который используется для получения билета Kerberos. Без этого идентификатора ограниченное делегирование Kerberos невозможно и приведет к сбою.

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

Пример. Ошибка из-за неправильной настройки ограниченного делегирования Kerberos

Соответствующие записи в журнале событий имеют номер 13019 или 12027. Найдите журналы событий соединителя в журналах>приложений и служб Microsoft>Entra private network> Подключение or> Администратор.

  1. Используйте запись A в внутренней системе доменных имен (DNS) для адреса приложения, а не для CName.
  2. Повторно убедитесь, что узел соединителя имеет право делегировать имя субъекта-службы целевой учетной записи (SPN). выбран параметр Использовать любой протокол проверки подлинности. Дополнительные сведения см. в Ограниченное делегирование Kerberos для поддержки единого входа в приложения с помощью прокси приложения.
  3. Убедитесь, что существует только один экземпляр имени участника-службы в идентификаторе Microsoft Entra. Выполните команду setspn -x из командной строки на любом узле члена домена.
  4. Проверьте, применяется ли политика домена для ограничения максимального размера выдаваемых маркеров Kerberos. Политика останавливает получение маркера соединителем, если это чрезмерно.

Сетевая трассировка, которая фиксирует обмены между узлом соединителя и ограниченной делегированием Kerberos домена (KDC) является следующим лучшим шагом, чтобы получить более низкие сведения о проблемах. Дополнительные сведения см. в подробном документе по устранению неполадок.

Если билеты обрабатываются правильно, в журналах должно присутствовать событие, указывающее на сбой проверки подлинности в связи с тем, что приложение возвращает ошибку 401. Это событие означает, что целевое приложение отклоняет ваш билет. В этом случае перейдите к следующему этапу.

Целевое приложение

Потребитель билета Kerberos, предоставленный соединителем. На этом этапе ожидается, что соединитель отправил запрос на обслуживание Kerberos на внутренний конечную часть. Билет является заголовком в первом запросе приложения.

  1. Используя определенный на портале внутренний URL-адрес приложения, убедитесь, что приложение доступно прямо из браузера на узле соединителя. После этого можно выполнить вход. Соответствующие сведения см. на странице об устранении неполадок соединителя.

  2. Убедитесь, что проверка подлинности между браузером и приложением использует Kerberos.

  3. Запустите средства разработчика (F12) в Internet Explorer или используйте Fiddler на узле соединителя. Перейдите в приложение по внутреннему URL-адресу. Чтобы убедиться, что присутствует либо согласование, либо Kerberos, проверьте предлагаемые заголовки веб-авторизации, возвращенные в ответе от приложения.

    • Большой двоичный объект Kerberos, который затем возвращается в ответе из браузера в приложение, обычно начинается с YII. Это указывает на использование Kerberos. С другой стороны, встроенная проверка подлинности Windows (NTLM) всегда начинается с TlRMTVNTUAAB, что после расшифровки из Base64 читается как NTLM Security Support Provider (NTLMSSP). Если вы видите TlRMTVNTUAAB в начале большого двоичного объекта, Kerberos недоступен. Если TlRMTVNTUAAB стоит, он, вероятнее всего, доступен.

      Примечание.

      При использовании Fiddler такой метод потребует временно отключить расширенную защиту в конфигурации приложения в службах IIS.

      Окно проверки сети в браузере

    • На изображение выше в начале большого двоичного объекта стоит не TIRMTVNTUAAB. Значит протокол Kerberos доступен. Этот большой двоичный объект Kerberos начинается не с YII.

  4. Временно удалите NTLM из списка поставщиков на сайте IIS. Обратитесь к приложению непосредственно из Internet Explorer на узле соединителя. Так как NTLM теперь отсутствует в списке поставщиков, вы сможете обратиться к приложению с помощью одного только протокола Kerberos. Если сделать это не удается, вероятно, возникла проблема с конфигурацией приложения и проверка подлинности Kerberos не работает.

    • Если протокол Kerberos недоступен, проверьте параметры проверки подлинности приложения в службах IIS. Убедитесь, что в самом начале списка указано значение Negotiate, а сразу после него — NTLM. Если выбрано значение Not Negotiate, Kerberos or Negotiate или PKU2U, продолжайте работу, только если Kerberos работает.

      Поставщики проверки подлинности Windows

    • При использовании Kerberos и NTLM временно отключите предварительную проверку подлинности для приложения на портале. Попробуйте обратиться к приложению из Интернета по внешнему URL-адресу. Вы должны получить запрос на проверку подлинности и быть в состоянии пройти ее с помощью той же учетной записи, которая использовалась на предыдущем этапе. Если эти условия не выполняются, значит проблема связана с серверным приложением, а не с ограниченным делегированием Kerberos.

    • Повторно включите предварительную проверку подлинности на портале. Пройдите проверку подлинности в Azure, попытавшись подключиться к приложению по внешнему URL-адресу. Если произошел сбой единого входа, должно появиться сообщение о запрете доступа в браузере, а также событие 13022 в журнале:

      Соединитель частной сети Microsoft Entra не может пройти проверку подлинности пользователя, так как сервер сервер отвечает на попытки проверки подлинности Kerberos с ошибкой HTTP 401.

      Отображается ошибка запрета доступа 401 HTTTP

    • Проверьте приложения IIS. Убедитесь, что настроенный пул приложений и имя субъекта-службы настроены для использования той же учетной записи в идентификаторе Microsoft Entra. Перейдите в IIS, как показано на следующем рисунке.

      Окно конфигурации приложения IIS

      Зная удостоверение, убедитесь, что эта учетная запись действительно настроена с использованием соответствующего имени субъекта-службы. Например, setspn –q http/spn.wacketywack.com. Введите следующий текст в командной строке.

      Отображается окно командной строки SetSPN

    • Проверьте имя субъекта-службы, определенное в параметрах приложения на портале. Убедитесь, что ту же учетную запись субъекта-службы, настроенную для целевой учетной записи Microsoft Entra, используется пулом приложений приложения.

    • Перейдите в IIS и выберите для приложения параметр Редактор конфигураций. Перейдите в расположение system.webServer/security/authentication/windowsAuthentication. Убедитесь, что для параметра UseAppPoolCredentials задано значение True.

      Параметр учетных данные для пулов приложений в конфигурации IIS

      Измените значение true. Удалите все кэшированные билеты Kerberos с внутреннего сервера, выполнив команду.

      Get-WmiObject Win32_LogonSession | Where-Object {$_.AuthenticationPackage -ne 'NTLM'} | ForEach-Object {klist.exe purge -li ([Convert]::ToString($_.LogonId, 16))}
      

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

  • Как и другой проверка, отключите расширенную защиту. В некоторых конфигурациях расширенная защита нарушала работу ограниченного делегирования Kerberos. В таких случаях приложение публиковалось в качестве вложенной папки веб-сайта по умолчанию. Это приложение настроено для анонимной проверки подлинности. Все целые диалоговые окна выделяются серым. Это означает, что дочерние объекты не наследуют никакие активные параметры. Рекомендуем выполнять тестирование,когда это возможно, но затем не забудьте включить эту функцию.

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

Если и после этого остаются неполадки, обратитесь в службу поддержки Майкрософт. Создайте запрос в службу поддержки прямо на портале.

Другие сценарии

Прокси приложения Microsoft Entra запрашивает билет Kerberos перед отправкой запроса в приложение. Некоторые приложения не любят этот метод проверки подлинности. Они ожидают более традиционные согласования. Первый запрос выполняется анонимно, позволяя приложению отправить ответ с поддерживаемыми типами проверки подлинности через 401. Этот тип согласования Kerberos можно включить, выполнив действия, описанные в этом документе: Ограниченное делегирование Kerberos для единого входа.

Многохоповая проверка подлинности обычно используется в сценариях, где приложение многоуровнево. К уровням относятся серверная часть и интерфейсная часть. Для обоих уровней требуется проверка подлинности. Например, службы SQL Server Reporting Services. Дополнительные сведения см. в разделе "Настройка ограниченного делегирования Kerberos для прокси-страниц веб-регистрации".

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

Настройка ограниченного делегирования Kerberos в управляемом домене