Product SiteDocumentation Site

6.8.2. Создание SPN и генерация keytab с помощью samba-tool

Добавить имена SPN для пользователя можно с помощью команды samba-tool spn add:
# samba-tool spn add host/fdqn@KerberosRealm <sAMAccount name>
После добавления SPN можно сгенерировать keytab, выполнив команду:
# samba-tool domain exportkeytab <имя>.keytab --principal=[<sAMAccount name> | <SPN>]
В результате выполнения этой команды будет создан keytab-файл <имя>.keytab, содержащий UPN или SPN, в зависимости от того, что было указано в параметре --principal.
Получить дополнительную информацию можно на справочной странице samba-tool (8) (man samba-tool).

Примечание

В команде нужно использовать или <sAMAccount name> или <SPN>, но не оба параметра сразу.
Пример:
  • привязать к пользователю SPN:
    # samba-tool spn add HTTP/test.alt webauth
    
  • создать keytab:
    # samba-tool domain exportkeytab /tmp/web.keytab --principal=HTTP/test.alt
    Export one principal to /tmp/keytab
    
  • проверка:
    # klist -ke /tmp/web.keytab
    Keytab name: FILE:/tmp/web.keytab
    KVNO Principal
    ---- ------------------------------------------------------------------------
       2 HTTP/test.alt@TEST.ALT (DEPRECATED:arcfour-hmac)
    
Можно также проверить авторизацию в домене по имени SPN с помощью keytab-файла. Для этого на контроллере домена получить билет Kerberos:
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
И выполнить команду:
# kinit -5 -V -k -t /tmp/web.keytab HTTP/test.alt
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/test.alt@TEST.ALT
Using keytab: /tmp/web.keytab
Authenticated to Kerberos v5

Примечание

Если при проверке авторизации возникает ошибка:
kinit: Client not found in Kerberos database while getting initial credentials
Необходимо в ADMC изменить для пользователя webauth значение параметра userPrincipalName на значение servicePrincipalName + REALM (в данном примере нужно поменять webauth на HTTP/test.alt@TEST.ALT).
Для получения списка идентификаторов SPN, привязанных к учетной записи, используется команда:
# samba-tool spn list <user> [options]
В качестве аргумента передается имя учетной записи SAM (значение атрибута sAMaccountName).
Команда удаления идентификатора SPN, привязанного к учетной записи пользователя:
# samba-tool spn delete <name> <user> [options]
В качестве аргументов передаются значение SPN (name) и имя учетной записи SAM (значение атрибута sAMaccountName).