Администрирование SPN

Для администрирования идентификаторов экземпляров сервисов (SPN) в домене Эллес с помощью утилиты samba-tool используется группа подкоманд spn.

Назначение и формат SPN

SPN (service principal name) — уникальный идентификатор экземпляра сервиса. Используется механизмами аутентификации Kerberos для сопоставления экземпляра сервиса с учетной записью сервиса. С помощью SPN клиентское приложение может запрашивать аутентификацию в роли сервиса под учетной записью сервиса, не располагая именем учетной записи.

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

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

<service class>/<host>:<port>/<service name>

Элементы SPN:

  • service class (обязательный элемент) — строка, указывающая на класс, к которому относится сервис (например: SqlServer, www, ldap и т. п.);

  • host (обязательный элемент) — имя компьютера, на котором работает сервис; это может быть полное доменное имя (FQDN) или NetBIOS-имя (следует учитывать, что уникальность NetBIOS-имени на уровне леса не гарантируется);

  • port (необязательный элемент) — номер порта; может использоваться в том случае, если несколько экземпляров сервиса одного класса работают на одном хосте; не требуется указывать, если экземпляр сервиса один и работает на стандартном для своего класса порте;

  • service name (необязательный элемент) – имя реплицируемого сервиса, которое позволяет идентифицировать предоставляемые сервисом данные или обслуживаемый сервисом домен; в качестве имени могут использоваться DN-имя или objectGUID объекта службы каталогов, DNS-имя домена (если сервис реализует определенную службу на уровне всего домена), DNS-имя записи SRV или MX.

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

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

Добавление SPN

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

samba-tool spn add <name> <user> [options]

В качестве аргументов передаются значение SPN (name) и имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.

Примеры

Пример привязки SPN к учетной записи:

samba-tool spn add HTTP/proxy.samdom.example.com proxy-user

Получение списка SPN

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

samba-tool spn list <user> [options]

В качестве аргумента имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.

Примеры

Пример получения списка идентификаторов SPN, привязанных к учетной записи:

samba-tool spn list proxy-user
proxy-user
User CN=proxy-user,CN=Users,DC=samdom,DC=example,DC=com has the following servicePrincipalName:
         HTTP/proxy.samdom.example.com

Удаление SPN

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

samba-tool spn delete <name> <user> [options]

В качестве аргументов передаются значение SPN (name) и имя учетной записи SAM (значение атрибута sAMaccountName).

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта.

Примеры

Пример отмены привязки SPN к учетной записи:

samba-tool spn delete HTTP/proxy.samdom.example.com proxy-user