Duplicated SPN in Active Directory.

Duplicated SPN in Active Directory.

@root_it


Сегодня рассмотрим очень полезную утилиту, которая позволяет решать проблемы, связанные с таким важным протоколом безопасности в Active Directory как Kerberos.

Практически всем администраторам, которые занимались обслуживанием AD, приходилось, сталкиваться с проблемами аутентификации пользователей по протоколу Kerberos. Иногда причины были очевидны, например, ресинхронизация времени клиента с контроллером домена, а иногда приходилось открывать журналы Windows и искать наличие проблемы там.

Итак, когда речь идёт о Kerberos, нередко  в документации к этому протоколу можно встретить аббревиатуру SPN . Напомню, что SPN – это Service Principal Name, другими словами имя-участника службы, использующееся для проверки подлинности служб. То есть, когда пользователь хочет получить доступ к ресурсам какого либо сервера (службы), "он формирует" сообщение для KDC, в котором определяет SPN службы, к которой хочет подключиться. Если по каким либо причинам в AD зарегистрирован один и тот же SPN на разных принципалах безопасности (объектах пользователя или компьютера) или, проще говоря, на разных учетных записях, это может вызвать проблемы с подключением пользователей к службе. Связано это с тем, что SPN указывает KDC какой ключ шифрования (учетная запись от которой работает служба) использовать для зашифровки сессионного ключа для дальнейшего безопасного обмена данными с клиентом. О такой проблеме обычно сигнализирует следующее событие:

ВАЖНО !!!
Обратите внимание, что одна учетная запись может иметь несколько имен SPN (по одному для каждого имени узла или службы), однако каждое SPN можно зарегистрировать только для одной учетной записи. Если для нескольких учетных записей зарегистрировано одно и тоже имя SPN, проверка подлинности Kerberos закончится неудачно.

Если быть более корректным, то данное событие указывает на следующие причины:

  1. Как я сказал выше, это связано с тем, что имя-участника службы зарегистрировано более одного раза.
  2. Пароль УЗ, под которой запускается служба, был изменен.
  3. Проблемы с репликацией Active Directory.

Самый простой способ просканировать лес/домен на предмет задублированных SPN это запустить утилиту:

setspn –x

Вывод программы покажет вам список дубликатов, если таковые имеются.


setspn -a http/srv12.domain.com:80 userAcc1

Позволяет в ручном режиме добавить произвольный SPN.


setspn -s http/srv12.domain.com:80 userAcc1

Добавить произвольный SPN после проверки на отсутствие дубликатов.


Если вы обнаружили, что некий SPN прописан на учетной записи отличной от той, от которой запускается нужная вам служба, то перед тем как делать исправление, нужно удалить некорректную запись.

setspn -d http/srv12.domain.com:80 userAcc1

На этом все. Конечно, это не единственный способ диагностики и работы связанный с SPN, но наиболее простой и быстрый. Поговорим о Kerberos более подробно в следующих заметках. Всем удачи.

Report Page