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


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

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

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

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

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

Необходимые условия

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

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

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

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

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

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

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

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

Снимок экрана, показывающий пример ошибки конфигурации K C D, где выделена ошибка

пример: сбой авторизации из-за отсутствия разрешений

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

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

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

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

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

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

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

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

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

Пример : ошибка неправильной конфигурации KCD

Соответствующие записи, которые отображаются в журнале событий, отображаются как события 13019 или 12027. Найдите журналы событий соединителя в разделе "Журналы приложений и служб" >Microsoft>в частной сети Microsoft Entra>Connector>Admin.

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

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

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

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

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

  1. Используя внутренний URL-адрес приложения, определенный на портале, убедитесь, что приложение доступно непосредственно из браузера на узле соединителя. Затем вы можете выполнить вход успешно. Сведения можно найти на странице "Устранение неполадок соединителя".

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

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

    • Следующий объект Kerberos Blob, возвращаемый в ответе от браузера приложению, начинается с YII. Эти письма говорят вам, что Kerberos работает. Microsoft NT LAN Manager (NTLM), с другой стороны, всегда начинается с TlRMTVNTUAAB, что означает Поставщик поддержки безопасности NTLM (NTLMSSP) при декодировании из Base64. Если в начале двоичного объекта присутствует TlRMTVNTUAAB, Kerberos недоступен. Если вы не видите TlRMTVNTUAAB, Kerberos, скорее всего, доступен.

      Заметка

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

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

    • Большой двоичный объект на этом рисунке не начинается с TIRMTVNTUAAB. Таким образом, в этом примере Kerberos доступен, и двоичный объект Kerberos не начинается с YII.

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

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

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

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

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

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

      отображает ошибку HTTP 401, запрещенную

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

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

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

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

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

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

      Измените значение на 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, когда она была включена в определенных конфигурациях. В таких случаях приложение было опубликовано как вложенная папка веб-сайта по умолчанию. Это приложение настроено только для анонимной проверки подлинности. Все диалоги затемнены, что указывает на то, что дочерние объекты не наследуют активные параметры. Мы рекомендуем протестировать, но не забудьте восстановить это значение до включено, если это возможно.

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

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

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

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

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

Дальнейшие действия

Настроить KCD в управляемом домене.