Генерация keytab для AD (Active Directory)
Действия, описанные в данном разделе, производятся на контроллере домена Active Directory (AD) от имени учётной записи с правами администратора домена.
Для генерации файла keytab выполните следующие действия.
- Создайте специальную учетную запись пользователя в домене AD, которая будет использована исключительно для получения файла keytab и других служебных операций (например, krbuser)
Примечание. Для служебной учетной записи необходимо активировать опции «Запретить смену пароля пользователем» и «Срок действия пароля не ограничен». В противном случае, если пароль будет изменен, потребуется повторная генерация файла keytab.
2. Добавьте SPN-запись для созданной учётной записи, используя команды
setspn -A HTTP/{FQDN_сервера_JMS}@{DNS_имя_домена} {служебная_уч._запись}Пример для машины jmsssv.jms4.local, домена jms4.local и пользователя созданного на первом шаге с именем krbuser:
setspn -A HTTP/jmsssv.jms4.local@JMS4.LOCAL krbuser3. Для проверки корректности выполненной настройки, получите список SPN-записей для указанного пользователя
setspn -L {служебная_уч._запись}4. Сгенерируйте файл keytab следующей командой:
ktpass -out {путь_для_генерируемого_файла} -princ {имя_субъекта_в_узле} -mapuser {служебная_уч._запись} -pass {пароль_для_файла} -pType KRB5_NT_PRINCIPAL -crypto ALLгде
- {имя_субъекта_в_узле} – указывается в формате: HTTP/{FQDN_сервера_JMS}@{DNS-имя_домена};
- {FQDN_сервера_JMS} – доменный адрес сервера JMS;
- {DNS_имя_домена}, область действия контроллера домена в верхнем регистре (соответствует имени домена);
- {служебная_уч._запись} - специальная учётная запись, созданная на первом шаге (krbuser);
- {пароль_для_файла} - пароль для keytab-файла;
- {путь_для_генерируемого_файла} – путь, куда будет сохранён сформированный keytab-файл.
Например:
ktpass -out c:\users\Administrator\Desktop\krb.keytab -princ HTTP/jmsssv.jms4.local@JMS4.LOCAL -mapuser krbuser -pass P@ssw0rd -pType KRB5_NT_PRINCIPAL -crypto ALLПримечания:
- Для корректной генерации файла keytab необходимо, чтобы его пароль соответствовал политике паролей, установленной в домене.
- Если между корнем домена и поддоменами настроено доверие, то требуется сформировать keytab-файл только для корня домена и использовать его во всех каталогах учётных записей, относящихся к корневому домену. Иначе потребуется формировать keytab-файл для каждого домена отдельно.
Генерация keytab для FreeIPA или ALD Pro
Ниже описан порядок генерации файла keytab для прозрачной аутентификации пользователей в JMS из домена FreeIPA или ALD Pro по протоколу Kerberos.
Формирование Keytab-файла для рабочей станции в домене
Для формирования Keytab-файла для рабочей станции в домене выполните следующие действия:
- Добавьте HTTP сервис для рабочей станции с помощью команды:
ipa service-add HTTP/{FQDN_сервера_JMS} --forceгде,
- {FQDN_сервера_JMS}, доменный адрес сервера JMS
Например:
ipa service-add HTTP/jmsssv.jms4.local --force2. Сгенерируйте keytab-файл с помощью команды (требуются root-права):
ipa-getkeytab -s {контроллер_домена} -p HTTP/{FQDN_сервера_JMS} -k {путь_для_генерируемого_файла}где,
- {контроллер_домена}, адрес контроллера домена;
- {FQDN_сервера_JMS}, доменный адрес сервера JMS;
- {путь_для_генерируемого_файла}, путь, куда будет сохранён сформированный keytab-файл.
Например:
ipa-getkeytab -s dc.jms4.local -p HTTP/jmsssv.jms4.local -k /etc/jms-server.keytabФормирование Keytab-файла для рабочей станции вне домена
Для формирования keytab-файла для рабочей станции вне домена выполните следующие действия:
- Создайте сервисную рабочую станцию с помощью команды:
ipa host-add --force {FQDN_сервера_JMS}где,
- {FQDN_сервера_JMS}, доменный адрес сервера JMS
Например,
ipa host-add -–force jmsssv.jms4.local2. Добавьте HTTP сервис для рабочей станции с помощью команды:
ipa service-add HTTP/{FQDN_сервера_JMS} --forceгде,
- {FQDN_сервера_JMS}, доменный адрес сервера JMS
Например,
ipa service-add HTTP/jmsssv.jms4.local --force3. Сгенерируйте keytab-файл с помощью команды (требуются ROOT права):
ipa-getkeytab -s {контроллер_домена} -p HTTP/{FQDN_сервера_JMS} -k {путь_для_генерируемого_файла}где,
- {контроллер_домена}, адрес контроллера домена;
- {FQDN_сервера_JMS}, доменный адрес сервера JMS;
- {путь_для_генерируемого_файла}, путь, куда будет сохранён сформированный keytab-файл.
Например,
ipa-getkeytab -s dc.jms4.local -p HTTP/jmsssv.jms4.local -k /etc/jms-server.keytab