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

Вы можете использовать одну учетную запись для аутентификации на всех узлах кластера. Для этого требуется создать keytab-файл, содержащий имена субъекта-службы (далее также "SPN") для каждого из этих узлов. При создании keytab-файла потребуется использовать атрибут для генерации соли (salt, модификатор входа хеш-функции).

Сгенерированную соль необходимо сохранить любым удобным способом для дальнейшего добавления новых SPN в keytab-файл.

Вы также можете создать отдельную учетную запись Active Directory для каждого узла кластера, для которого вы хотите настроить Kerberos-аутентификацию.

Keytab-файл создается на сервере контроллера домена или на компьютере под управлением Windows Server, входящем в домен, под учетной записью с правами доменного администратора.

Чтобы создать keytab-файл, используя одну учетную запись:

  1. В оснастке Active Directory Users and Computers создайте учетную запись пользователя (например, с именем control-user).
  2. Если вы хотите использовать алгоритм шифрования AES256-SHA1, то в оснастке Active Directory Users and Computers выполните следующие действия:
    1. Откройте свойства созданной учетной записи.
    2. На закладке Account установите флажок This account supports Kerberos AES 256 bit encryption.
  3. Создайте keytab-файл для пользователя control-user с помощью утилиты ktpass. Для этого в командной строке выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) Управляющего узла>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <путь к файлу>\<имя файла>.keytab

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

    В созданный keytab-файл будет добавлено SPN Управляющего узла. На экране отобразится сгенерированная соль: Hashing password with salt "<хеш-значение>".

  4. Для каждого узла кластера добавьте в keytab-файл запись SPN. Для этого выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) узла>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <путь и имя ранее созданного файла>.keytab -out <путь и новое имя>.keytab -setupn -setpass -rawsalt "<хеш-значение соли, полученное при создании keytab-файла на шаге 3>"

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

Keytab-файл будет создан. Этот файл будет содержать все добавленные SPN узлов кластера.

Пример:

Например, вам нужно создать keytab-файл, содержащий SPN-имена 3 узлов: control-01.test.local, secondary-01.test.local и secondary-02.test.local.

Чтобы создать в папке C:\keytabs\ файл под названием filename1.keytab, содержащий SPN Управляющего узла, требуется выполнить команду:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

Допустим, вы получили соль "TEST.LOCALHTTPcontrol-01.test.local".

Для добавления еще одного SPN необходимо выполнить следующую команду:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

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

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

В результате будет создан файл с именем filename3.keytab, содержащий все три добавленные SPN.

Чтобы создать keytab-файл, используя отдельную учетную запись для каждого узла:

  1. В оснастке Active Directory Users and Computers создайте отдельную учетную запись пользователя для каждого узла кластера (например, учетные записи с именами control-user, secondary1-user, secondary2-user и т.д.).
  2. Если вы хотите использовать алгоритм шифрования AES256-SHA1, то в оснастке Active Directory Users and Computers выполните следующие действия:
    1. Откройте свойства созданной учетной записи.
    2. На закладке Account установите флажок This account supports Kerberos AES 256 bit encryption.
  3. Создайте keytab-файл для пользователя control-user с помощью утилиты ktpass. Для этого в командной строке выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) Управляющего узла>@<realm имя домена Active Directory в верхнем регистре> -mapuser control-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <путь к файлу>\<имя файла>.keytab

    Утилита запросит пароль пользователя control-user в процессе выполнения команды.

    В созданный keytab-файл будет добавлено SPN Управляющего узла.

  4. Для каждого узла кластера добавьте в keytab-файл запись SPN. Для этого выполните следующую команду:

    C:\Windows\system32\ktpass.exe -princ HTTP/<полное доменное имя (FQDN) узла>@<realm имя домена Active Directory в верхнем регистре> -mapuser secondary1-user@<realm имя домена Active Directory в верхнем регистре> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <путь и имя ранее созданного файла>.keytab -out <путь и новое имя>.keytab

    Утилита запросит пароль пользователя secondary1-user в процессе выполнения команды.

Keytab-файл будет создан. Этот файл будет содержать все добавленные SPN узлов кластера.

Пример:

Например, вам нужно создать keytab-файл, содержащий SPN-имена 3 узлов: control-01.test.local, secondary-01.test.local и secondary-02.test.local.

Чтобы создать в папке C:\keytabs\ файл под названием filename1.keytab, содержащий SPN Управляющего узла, требуется выполнить команду:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

Для добавления еще одного SPN необходимо выполнить следующую команду:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

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

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

В результате будет создан файл с именем filename3.keytab, содержащий все три добавленные SPN.

В начало