Нужна помощь в настройке SPN для аутентификации Kerberos
Я использую IIS 7 для настройки веб-сайта под аутентификацией Windows. Я вижу проблему аутентификации, которая почти наверняка связана с проблемой Kerberos, и я неправильно настраиваю SPN. Сценарий, который я использую, как показано ниже.
Я создал новый тестовый домен (полное доменное имя которого позволяет называть "test.net"), управляемый контроллером домена (давайте назовем этот mc "test-DC"). Под этим новым доменом (тест) я разместил сервер IIS, который должен использовать проверку подлинности Windows с делегированием Kerberos. Я включил проверку подлинности Windows, в то время как другие отключены в диспетчере IIS. Допустим, имя этого компьютера с IIS - "test-iis", а в активном каталоге это имя пользователя для сервера IIS - "user-iis". Пул приложений на сервере IIS выполняется под учетной записью службы как "TEST\user-iis". Я пытаюсь настроить SPN для типа службы HTTP.
Первый вопрос: я устанавливаю SPN как
setspn -a http/test-iis.test.net
Правильно ли настроен этот SPN?
Мой второй вопрос Я устанавливаю это значение SPN в контроллере домена, думая, что DC - это объект, который будет проверять учетные данные и все. Правильно ли мое мышление??
Любой совет по этому вопросу будет очень полезен для меня и других.
Спасибо..
[Править] Еще одна вещь, я могу пинговать с сервера IIS на 2 другие машины в том же домене, но я не мог пинговать сервер IIS с двумя другими машинами. Может ли кто-нибудь помочь мне понять, почему это так?
2 ответа
Поскольку вы запускаете пул приложений как TEST\user-iis, вы должны применить SPN к этой учетной записи. Общепринято, что вы также должны включить другое имя участника-службы для короткого имени хоста.
setspn -a http/test-iis.test.net TEST\user-iis
setspn -a http/test-iis TEST\user-iis
И просто для пояснения, все, что setspn делает с этими командами, - это изменение атрибута "servicePrincipalName" этой учетной записи пользователя. Если вы откроете для него диалоговое окно "Свойства" и перейдете на вкладку "Атрибуты", вы можете прокрутить вниз до servicePrincipalName, открыть его и увидеть сделанные вами изменения.
Относительно вашей проблемы проверки связи, проверьте брандмауэр Windows на окне IIS. ICMP не включен по умолчанию.
При использовании команды setspn не забывайте учетную запись IWAM, как показано ниже:
setspn -a http / test-iis.test.net имя_домена \IWAM_ACCOUNT
Обратите внимание, что:
IWAM_ACCOUNT
это учетная запись, используемая для запуска пула приложений, который вы используете. (должна быть учетная запись уровня домена)- Вы также должны снова запустить ту же команду, но заменить "test-iis.test.net" просто "test-iis"
Что касается вашего второго вопроса, вы правы в том, что изменения сделаны в Active Directory... Но setspn
Команда может быть запущена на любом сервере в домене.