Я настраиваю Kerberos, и у меня возникают странные проблемы. Я тестирую его с двумя пользователями: у одного есть действительное имя участника-службы и которому доверяют для делегирования (user1), а у другого нет действующего SPN и которому не доверяют для делегирования (user2). Тесты проводятся на сервере и на клиенте. Пользователи устанавливаются на уровне пула приложений. Вот как это работает сейчас
From the server:
Using IP to access Application running under user1: Negotiate and chooses NTLM
Using domain name to access Application running under user1: Kerberos
Using IP to access Application running under user2: Negotiate and chooses NTLM
Using domain name to access Application running under user2: Negotiate and chooses NTLM
From the client:
Using IP to access Application running under user1: Kerberos
Using domain name to access Application running under user1: Kerberos
Using IP to access Application running under user2:Logon Process:Kerberos, Unknown user name or bad password
Using domain name to access Application running under user2: Logon Process:Kerberos, Unknown user name or bad password
Можно ли решить эту проблему, чтобы мне нужно было использовать setspn только для пользователей, которым действительно требуется делегирование, но чтобы Kerberos / NTLM работал с другими пользователями, которым делегирование не требуется? Чтобы я мог использовать setspn для учетных записей пользователей, которым требуется делегирование, и просто использовать другие учетные записи без необходимости их настройки? Похоже, что пакеты Kerberos не могут найти путь к серверу для пользователей, поскольку он работает с NTLM, когда я тестирую на сервере, но не когда я тестирую с клиента.
Делегирование не работает с NTLM, и для делегирования для работы с Kerberos необходимо установить SPN для компьютера и (если используется) учетную запись службы, используемую для размещения пула приложений.
Обычно имя участника-службы присваивается имени (именам) компьютера, на котором размещено приложение, и учетной записи пользователя, которая используется для вкладки «Идентификация» пула приложений IIS, связанного с вашим веб-сайтом. Обычно вам необходимо использовать не пользовательскую (служебную) учетную запись на вкладке «Удостоверение» в пуле приложений, если вашему приложению требуется доступ к ресурсам на других компьютерах, при этом олицетворяя пользователей, которые вошли в приложение IIS.
SPN и Trusted for Delegation не требуются для пользователей, которым просто нужно войти в систему и использовать приложение IIS.
Учетная запись, имеющая доверие для делегирования, может выдавать себя за другие учетные записи пользователей без их пароля или даже токена безопасности. Это критически важная функция для безопасности, и ее никогда не следует выполнять для учетной записи обычного пользователя.