Spn windows что это

Spn windows что это

Всем привет, сегодня хочу вам рассказать как настраивать SPN в Active Directory, на примере SPN для MS SQL Server 2012. В процессе загрузки свежее установленного экземпляра SQL Server в его логе можно обнаружить ошибку регистрации SPN, в случае если службы SQL Server запускаются от имени пользовательской доменной учетной записи. Необходимо зарегистрировать имя участника-службы (SPN — Service Principal Name) для учетной записи службы SQL Server, чтобы в работе службы могла использоваться проверка подлинности с помощью протокола Kerberos.

Для того чтобы получить информацию о том, что на доменной учетной записи, от имени которой производится запуск SQL Server действительно не зарегистрировано SPN связанных с SQL с помощью утилиты SetSPN выполним команду:

В нашем примере KOM-AD01-DB03 — это имя сервера SQL, а s-KOM-AD01-DB03-SQL01 — это имя пользовательской доменной учетной записи, из под которой запускаются службы SQL Server на этом сервере.

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-02

Как мы видим, ни на учетной записи компьютера ни на учетной записи пользователя нет SPN содержащих указатели MSSQLSvc. Помимо утилиты SetSPN мы можем воспользоваться оснасткой “AD Users and Computers” (dsa.msc) с включенным режимом отображения дополнительных компонент…

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-03

открыв свойства соответствующей учётной записи и перейдя на вкладку редактирования атрибутов можно посмотреть и изменить значение атрибута servicePrincipalName

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-04

Особенности работы с Kerberos аутентификацией в SQL Server (и в частности управление SPN) рассмотрены в статье KB319723 — How to use Kerberos authentication in SQL Server

Для того чтобы обеспечить нужное для корректной работы Kerberos содержание атрибута servicePrincipalName можно пойти двумя путями:

  • Создать необходимую SPN запись вручную с помощью утилиты SetSPN. Синтаксис команд будет следующий:

пример setspn -S MSSQLSvc/server19.contoso.com:1433 sqlservice (имя учетки запуска)

setspn -S MSSQLSvc/server19.contoso.com:MSSQL2012 sqlservice

  • Разрешить учетной записи, от имени которой запускается SQL Server, динамическое обновление атрибута servicePrincipalName, выдав разрешения на чтение и запись атрибута servicePrincipalName. Для того чтобы выполнить второй вариант, откроем оснастку ADSIEdit.msc, перейдём к свойствам объекта – учетной записи. На закладке “Безопасность” (Security) нажмём кнопу “Дополнительно” (Advanced)
Читайте также:  Smart �������� �������� ����� ������

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-05

В диалоговом окне «Дополнительные параметры безопасности» (Advanced Security Settings) нажмём кнопку «Добавить» (Add)

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-06

введём SELF и в открывшемся окне перейдём на закладку «Свойства» (Properties). В окне выбора области применения выберем пункт «Только этот объект» (This object only) и в списке разрешений отметим два пункта:

  • Read servicePrincipalName
  • Write servicePrincipalName

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-07

Сохраним внесённые изменения и затем, при запуске службы SQL Server, сможем убедиться в том, что в журнале регистрации событий появилась запись об успешном создании SPN

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-08

а так же увидим что вывод утилиты SetSPN изменился

Как настроить SPN (Service Principal Name) в SQL Server и динамическая регистрация SPN-09

Как удалить SPN

Вот пример ситуации когда нужно удаление. Был раньше сервер virt105 и использовался под одни нужды, сервер удален. После по этому же имени virt105 подняли другой сервер, и столкнулись с тем, что SPN уже был занят. Вот запрос на проверку SPN у virt105

Далее попытка его зарегистрировать, и видим, что он уже есть на учетную запись Семина Ивана

После удаления старого SPN, по новому все зарегистрировалось.

Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки.

Инструменты пользователя

Инструменты сайта

Боковая панель

Содержание

Изменение записей Service Principal Name (SPN) для MSA и gMSA

Управление записями Service Principal Name (SPN), используемыми в работе протокола Kerberos в домене Active Directory для учётных записей Managed Service Account (MSA) и Group Managed Service Account (gMSA) поддерживается в автоматическом режиме ограниченным набором сервисов. Например, служба экземпляра SQL Server самостоятельно умеет регистрировать в Active Directory нужные SPN в свойствах учётной записи, от имени которой выполняется экземпляр. Однако для этого необходимо выдать учётной записи права на управление собственным атрибутом servicePrincipalName. Как выдать такие права мы уже рассматривали ранее в заметке SQL Server и динамическая регистрация SPN (Service Principal Name)

Для ручного управления SPN-записями учётных записей MSA/gMSA, как и прочих учётных записей в домене, требуются права уровня Domain Administrator.

Создавать, изменять и удалять SPN записи для MSA/gMSA можно разными способами:

Читайте также:  Не запускается windows после замены жесткого диска

Проверка SPN

Проверить то, какие SPN записи имеются у учётной записи MSA/gMSA можем следующим образом:

Добавление SPN

Добавить новую SPN-запись к уже имеющимся в свойствах учтённой записи MSA/gMSA можно следующим образом:

Изменение SPN

Изменить какую-либо из уже существующих SPN-записей можно командой вида:

Однако следует учесть, что практика использования командлета Set-ADServiceAccount на Windows Server 2012 R2 показывает, что на самом деле вместо замены SPN происходит добавление дополнительного SPN.

Удаление SPN

Удалить ненужную SPN-запись можно командой вида:

Проверено на следующих конфигурациях:

Версия ОС
Windows Server 2012 R2 Standard EN (6.3.9600)

Автор первичной редакции:
Алексей Максимов
Время публикации: 30.10.2018 17:23

SQL Server и динамическая регистрация SPN (Service Principal Name)

В процессе загрузки свежее установленного экземпляра SQL Server в его логе можно обнаружить ошибку регистрации SPN, в случае если службы SQL Server запускаются от имени пользовательской доменной учетной записи.

Необходимо зарегистрировать имя участника-службы (SPN — Service Principal Name) для учетной записи службы SQL Server, чтобы в работе службы могла использоваться проверка подлинности с помощью протокола Kerberos.

Для того, чтобы получить информацию о том, что на доменной учетной записи, от имени которой производится запуск SQL Server действительно не зарегистрировано SPN связанных с SQL с помощью утилиты SetSPN выполним команду вида:

В нашем примере KOM-AD01-DB03 — это имя сервера SQL, а s-KOM-AD01-DB03-SQL01 — это имя пользовательской доменной учетной записи, из под которой запускаются службы SQL Server на этом сервере.

Как мы видим, ни на учетной записи компьютера ни на учетной записи пользователя нет SPN содержащих указатели MSSQLSvc

Помимо утилиты SetSPN мы можем воспользоваться оснасткой “AD Users and Computers” (dsa.msc) с включенным режимом отображения дополнительных компонент…

…открыв свойства соответствующей учётной записи и перейдя на вкладку редактирования атрибутов можно посмотреть и изменить значение атрибута servicePrincipalName

Особенности работы с Kerberos аутентификацией в SQL Server (и в частности управление SPN) рассмотрены в статье KB319723 — How to use Kerberos authentication in SQL Server

Для того чтобы обеспечить нужное для корректной работы Kerberos содержание атрибута servicePrincipalName можно пойти двумя путями:

1) Создать необходимую SPN запись вручную с помощью утилиты SetSPN
Синтаксис команд будет следующий:

2) Разрешить учетной записи, от имени которой запускается SQL Server, динамическое обновление атрибута servicePrincipalName, выдав разрешения на чтение и запись этого атрибута.

Для того чтобы выполнить второй вариант, откроем оснастку ADSIEdit.msc, перейдём к свойствам объекта – учетной записи. На закладке “Безопасность” (Security) нажмём кнопу “Дополнительно” (Advanced)

В диалоговом окне «Дополнительные параметры безопасности» (Advanced Security Settings) нажмём кнопку «Добавить» (Add) …

… введём SELF и в открывшемся окне перейдём на закладку «Свойства» (Properties). В окне выбора области применения выберем пункт «Только этот объект» (This object only) и в списке разрешений отметим два пункта:

  • Read servicePrincipalName
  • Write servicePrincipalName

Сохраним внесённые изменения и затем, при запуске службы SQL Server, сможем убедиться в том, что в журнале регистрации событий появилась запись об успешном создании SPN

..а так же увидим что вывод утилиты SetSPN изменился…

Дополнительная информация:

Имена субъектов-служб

Имя участника-службы (SPN) — это уникальный идентификатор экземпляра службы. Имена участников-служб используются при проверке подлинности Kerberos для связывания экземпляра службы с учетной записью входа службы. Это позволяет клиентскому приложению запросить проверку подлинности учетной записи службы, даже если у клиента нет имени учетной записи.

Если на компьютерах в лесу установлено несколько экземпляров службы, то каждый экземпляр должен иметь свое имя участника-службы. Каждый экземпляр службы может иметь несколько имен участников-служб при наличии нескольких имен, которые могут использоваться клиентами для проверки подлинности. Например, SPN всегда включает имя главного компьютера, на котором выполняется экземпляр службы, поэтому экземпляр службы может зарегистрировать имя участника-службы для каждого имени или псевдонима узла. Дополнительные сведения о формате SPN и создании уникального имени субъекта-службы см. в разделе форматы имен для уникальных имен участников-служб.

Прежде чем служба проверки подлинности Kerberos сможет использовать имена участников-служб для проверки подлинности службы, имя участника-службы должно быть зарегистрировано в объекте учетной записи, используемом экземпляром службы для входа в систему. Данное имя субъекта-службы может быть зарегистрировано только в одной учетной записи. Для служб Win32 установщик службы задает учетную запись входа при установке экземпляра службы. Затем установщик формирует имена участников-служб и записывает их в качестве свойства объекта Account в домен Active Directory Services. При изменении учетной записи входа в экземпляр службы имена участников-служб должны быть повторно зарегистрированы в новой учетной записи. Дополнительные сведения см. в разделе как служба регистрирует свои имена участников-служб.

Когда клиент хочет подключиться к службе, он определяет местонахождение экземпляра службы, составляет для него основное имя, подключается к службе и представляет ей это имя для проверки подлинности. Дополнительные сведения см. в разделе как клиенты составлять имена участников-служб Службы.

Читайте также:  Symantec ��� mac os
Оцените статью