Kerberos Event 4 servername показывает имя пользователя

У нас есть.Net Windows Service, которая использует Httplistener и аутентифицирует запросы, используя Kerberos. Когда пользователи подключаются через свой браузер, в журнале событий пользователей появляется ошибка Kerberos Event ID 4:

Клиент Kerberos получил ошибку KRB_AP_ERR_MODIFIED с сервера $ username $. Используемое целевое имя было HTTP/$ имя_сервера $.$ Domain$.com.au. Это означает, что целевому серверу не удалось расшифровать билет, предоставленный клиентом. Это может произойти, когда имя участника целевого сервера (SPN) зарегистрировано в учетной записи, отличной от учетной записи, используемой целевой службой. Убедитесь, что целевой SPN зарегистрирован только для учетной записи, используемой сервером. Эта ошибка также может произойти, если пароль целевой учетной записи службы отличается от пароля, настроенного в центре распространения ключей Kerberos для этой целевой службы. Убедитесь, что служба на сервере и KDC настроены на использование одного и того же пароля. Если имя сервера не полностью определено, а целевой домен ($domain$.COM.AU) отличается от клиентского домена ($domain$.COM.AU), проверьте, есть ли в этих двух доменах учетные записи серверов с одинаковыми именами. или используйте полное имя для идентификации сервера.

По какой-то причине сервер, на который он отправляет отчет, является пользователем, на котором запущена служба. Первая строка:

Клиент Kerberos получил ошибку KRB_AP_ERR_MODIFIED с сервера $ username $.

Каждый веб-сайт (включая сбой сервера) имеет исправления для этой ошибки, связанные с проблемами SPN, но в нем всегда указывается имя сервера. Я не могу найти вышеуказанное сообщение с именем пользователя.

Мы пробовали разных пользователей, и это изменяет вышеуказанную часть сообщения об ошибке. Все доменные учетные записи имеют одинаковую проблему. Если мы запускаем службу как локальную системную учетную запись, у нас нет этой проблемы, но это вызывает у нас другие проблемы со службой (для других разрешений требуется учетная запись домена). У нас нет и никогда не было серверов с тем же именем, что и имена пользователей, которые мы пробовали.

Кто-нибудь видел эту проблему при появлении здесь имени пользователя? Что это за исправление?

Все серверы являются Windows 2012 (не R2).

2 ответа

Решение

Нашел решение здесь: http://blogs.technet.com/b/dcaro/archive/2013/07/04/fixing-the-security-kerberos-4-error.aspx

Я побежал:

setspn -A HTTP/$servername$.$domain$.com.au $username$

и это решило проблему

Рад, что вы решили свою собственную проблему, но не похоже, что вы понимаете, почему то, что вы использовали, решило проблему.

В итоге, SPN должен быть установлен на соответствующем объекте. Похоже, вы установили имя участника-службы на объекте компьютера в AD, на котором запущена служба. Вот почему все заработало, если вы изменили службу для работы в качестве SYSTEM. Но если вы измените его для запуска в качестве пользователя домена, вам нужно переместить имя участника-службы этому пользователю. И важно, чтобы вы переместили его (читай: удалите его из учетной записи компьютера), а не просто скопировали его. Дублирующиеся имена участников-служб будут ломать вещи.

Другие вопросы по тегам