Создание Service Principal Name (SPN) и keytab-файла для сервисной учетной записи

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

  • имена хостов отдельно для каждого из модулей; например:

    • «Кабинет администратора» — web-admin.example.com;

    • «Магазин приложений» — app-shop.example.com;

  • имя домена; например: LCM.TERRA.INNO.TECH;

  • имя сервисной учетной записи; например: lcm_backend_svc.

При создании Service Principal Name (SPN) и keytab-файла модулей «Кабинет администратора» и «Магазин приложений» используется единый принцип.

Ниже приведен пример создания SPN (Service Principal Name) и keytab-файла модуля «Кабинет администратора» для сервисной учетной записи в домене под управлением Samba.

Создание Service Principal Name (SPN)

  1. Создайте SPN с полным доменным именем, выполнив команду:

    samba-tool spn add HTTP/<host-name>@<domain-name> <service-account>

    Пример команды:

    samba-tool spn add HTTP/web-admin.example.com@LCM.TERRA.INNO.TECH lcm_backend_svc
  2. Создайте SPN с коротким именем, выполнив команду:

    $ samba-tool spn add HTTP/<host-name> <service-account>

    Пример команды:

    $ samba-tool spn add HTTP/web-admin.example.com lcm_backend_svc
  3. Выполните проверку созданных SPN, выполнив команду:

    $ samba-tool spn list <service-account>

    Пример команды:

    $ samba-tool spn list lcm_backend_svc

    Пример вывода:

    User CN=lcm_backend_svc,CN=Users,DC=lcm,DC=terra,DC=inno,DC=tech has the following servicePrincipalName:
    HTTP/web-admin.example.com@LCM.TERRA.INNO.TECH
    HTTP/web-admin.example.com
  4. Выполните проверку атрибутов сервисной учетной записи, выполнив команду:

    $ samba-tool user show <service-account>

    Пример команды:

    $ samba-tool user show lcm_backend_svc

    Пример вывода со значимыми параметрами:

    cn: lcm_backend_svc
    name: lcm_backend_svc
    sAMAccountName: lcm_backend_svc
    userPrincipalName: lcm_backend_svc@lcm.terra.inno.tech
    objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=lcm,DC=terra,DC=inno,DC=tech
    msDS-SupportedEncryptionTypes: 24
    accountExpires: 0
    servicePrincipalName: HTTP/web-admin.example.com@LCM.TERRA.INNO.TECH
    servicePrincipalName: HTTP/web-admin.example.com
    distinguishedName: CN=lcm_backend_svc,CN=Users,DC=lcm,DC=terra,DC=inno,DC=tech

Создание keytab-файла

Чтобы создать keytab-файл, выполните команду:

$ sudo samba-tool domain exportkeytab ./lcm-user.keytab --principal=<service-account>

Пример команды:

$ sudo samba-tool domain exportkeytab ./lcm-user.keytab --principal=lcm_backend_svc

Чтобы просмотреть созданный файл, выполните команду:

$ sudo klist -e -k ./lcm-user.keytab

Пример файла:

Keytab name: FILE:./lcm-user.keytab
KVNO Principal
---- --------------------------------------------------------------------------
7 web-admin.example.com@LCM.TERRA.INNO.TECH (aes256-cts-hmac-sha1-96)
7 web-admin.example.com@LCM.TERRA.INNO.TECH (aes128-cts-hmac-sha1-96)
7 web-admin.example.com@LCM.TERRA.INNO.TECH(DEPRECATED:arcfour-hmac)
Сохраните файл на сервере, на который будет устанавливаться бэкенд продукта. Путь к файлу необходимо будет указать на этапе его настройки.