Я пытаюсь устранить причину сбоя проверки подлинности Windows для веб-сайта, размещенного в IIS, на сайте клиента. При выполнении setspn -l serviceUser
чтобы перечислить spns, связанные с учетной записью службы, мы получаем следующий вывод
Registered ServicePrincipalNames for CN=serviceUser,CN=Users,DC=test,DC=local:
http/service.test.local test\serviceUser
Однако, когда мы ищем spn, используя setspn -q http/service.test.local
получаем следующий результат:
Checking domain DC=test,DC=local
No such SPN found.
Что может привести к тому, что spn будет найден одним путем, а не другим?
Проблема заключалась в том, что клиент фактически создал SPN с именем пользователя, включенным в SPN. Я не уверен, как они это сделали, возможно, не с помощью setspn.
Если бы я уделил больше внимания, я бы заметил, что при выводе setspn -l serviceUser
поскольку он включал имя пользователя в вывод spn.
Как только это было исправлено путем удаления имени пользователя из spn, результат setspn будет таким, как ожидалось.
c:\>setspn -l serviceUser
Registered ServicePrincipalNames for CN=serviceUser,CN=Users,DC=test,DC=local:
http/service.test.local
c:\>setspn -q http/service.test.local
Checking domain DC=test,DC=local:
CN=serviceUser,CN=Users,DC=test,DC=local:
http/service.test.local