Проблема двойного перехода Kerberos с веб-приложением ASP.NET для sharepoint
Мне нужна ваша помощь в проблеме двойного прыжка Kerberos, которая у меня возникла... Прочитав много сообщений в Интернете по этой теме, я все еще не могу понять, в чем заключается неправильная установка. Вот настройка, которую я использую:
- Клиентский ПК
- Веб-сервер, на котором размещен простой веб-сервис ASMX
- Веб-сервер хостинга SharePoint 2013
Все серверы являются доверенными для делегирования, все находятся в одном домене (без леса) и балансировка нагрузки не используется. Каждый веб-сервер использует IIS 7.5, и каждый пул приложений настроен с учетной записью службы домена. Каждая учетная запись службы является доверенной для делегирования. Важное примечание: обе веб-службы доступны через запись DNS (записи HOST):
- http://mywebservice/ для среднего сервера
- http://sharepoint/ для сервера Sharepoint
Я также настроил IIS на веб-сервере (сервер 1) для использования учетных данных пула приложений "useAppPoolCredentials=True" и оставил ядро включенным.
Пока у меня есть следующие настройки SPN:
- Сервер 1: ХОСТ / Сервер1; HOST/Server1.domain.com; HTTP/mywebserice; HTTP/mywebservice.domain.com
- Сервер 2: ХОСТ / Сервер2; HOST / Server2.domain.com
- Service1:
- Service2:
Я пробовал много перестановок между различными именами SPN, но безуспешно:(
В настоящее время я могу подключиться к веб-службе (Server 1) с помощью Kerberos, но затем "NT AUTHORITY\ANONYMOUS LOGON" передается на сервер Sharepoint.
Может кто-нибудь помочь мне разобраться, что такое правильная настройка?
Спасибо за вашу помощь.
1 ответ
Мне наконец удалось заставить это работать. Для этого я использовал доступное здесь веб-приложение DelegConfig (автор brian-murphy-booth). Это подтвердило, что мои настройки изначально были неправильными и помогли мне определить, что нужно изменить.
Вот моя последняя настройка - см. Схему:
- Сервер веб-службы: только SPN для HOTS/Server1 + Trusted для Kerberos
- Сервер Sharepoint: только SPN для делегирования HOST/Server2 + Trusted для Kerberos
- Учетная запись службы 1 (для пула приложений веб-служб): добавлено имя участника-службы для HTTP/mywebservice
- Сервисная учетная запись 2 (для пула приложений sharepoint): добавлено имя участника-службы для HTTP/sharepoint
Несколько вещей, с которыми вы должны быть осторожны:
- Если вы используете записи DNS, зарегистрируйте имена участников-служб для имени DNS, а не IP-адреса.
- Убедитесь, что ваши записи DNS являются записями типа "HOST (A)", а не "CNAME"
- Всегда регистрируйте имена участников-служб для простого имени (например, HTTP/sharepoint) и FQDN (например, HTTP/sharepoint.domain.com).
- Оставьте некоторое время для репликации изменений AD на все контроллеры домена (если применимо) - это был мой недостаток!! Я был слишком быстр, чтобы проверить после изменения, и он никогда не работал... Ожидание 15-20 минут после изменения помогло мне точно настроить мою установку и точно понять, что было не так
- Убедитесь, что у вас нет имен SPN в двух экземплярах! Чтобы проверить, откройте командную строку и выполните команду "setspn -x". В нем будут перечислены все дубликаты SPN в вашей AD.
Я знаю, что есть много сообщений на эту тему, но ни одна из них не описывает на одной диаграмме идеальную настройку для данной конфигурации. Поэтому я подумал, что опубликую этот ответ на свой вопрос. надеясь, что это поможет кому-то с этим кошмаром проблемы двойного прыжка Kerberos.
Большое спасибо Брайану-Мерфи-Буту за его замечательный инструмент! Если ты читаешь это, ты мой спаситель!