Я использую 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 - это объект, который будет проверять учетные данные и все такое. Правильно ли я думаю ??
Любые советы по этому вопросу будут очень полезны мне и другим ..
Спасибо..
[Edit] Еще одна вещь, я могу выполнить эхо-запрос с сервера IIS на 2 другие машины в том же домене, но я не смог выполнить эхо-запрос сервера IIS с двумя другими машинами. может ли кто-нибудь помочь мне понять, почему это так?
Поскольку вы запускаете пул приложений как TEST \ user-iis, вы должны применить SPN к который учетная запись. Принято считать, что вы также должны включать другое 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
это учетная запись, используемая для запуска используемого вами пула приложений. (должна быть учетная запись на уровне домена)Что касается вашего второго вопроса, вы правы в том, что изменение внесено в Active Directory ... Но setspn
Команда может быть запущена на любом сервере в домене.