Использование Active Directory для Kerberos

Основные понятия, используемые в Kerberos LDAP:

  • Active Directory — база данных и набор служб, которые соединяют пользователей с необходимыми сетевыми ресурсами.

  • LDAP-сервер — иерархическая база данных, служба каталогов, основанная на Active Directory, применяется для централизованного хранения учетных записей. Учетные данные включают в себя принципалы, по которым происходит проверка валидности пользователя в Kerberos.

  • LDAP — протокол прикладного уровня для доступа к службе каталогов Active Directory, используется при керберизации кластера для заведения принципалов пользователей.

  • LDAPS — активация LDAP с применением протокола SSL/TLS для создания безопасного трафика. Создание паролей для пользователей ADQM с учетными записями в Active Directory при керберизации кластера возможно только с применением LDAPS.

  • Key Distribution Center (KDC) — компонент системы управления доступом, отвечающий за обслуживание запросов пользователей на доступ к ресурсам путем предоставления тикетов доступа и сеансовых ключей. Использует Active Directory в качестве базы данных учетных записей.

  • DN (Distinguished Name) — учетная запись в Active Directory. DN должно быть уникальным в пределах дерева. В DN описывается содержимое атрибутов в дереве (путь навигации) для доступа к конкретной записи.

    DN состоит из серии RDN (Relative Distinguished Names), определяемых путем перемещения вверх по дереву в направлении его корневой записи. RDN записываются слева направо.

    Пример DN для пользователя, используемый в данной статье: cn=ad_admin,ou=users,dc=example,dc=com.

    В этой записи назначены следующие RDN:

    • cn — общее имя пользователя (common name).

    • ou — организационная единица (organizational unit), контейнер в домене Active Directory, который может содержать пользователей, группы и компьютеры. Организационная единица может иметь несколько ou внутри себя.

    • dc — части имени домена (domain component), представляют вершину дерева LDAP, которое использует DNS для определения своего пространства имен. Обозначение для домена Active Directory с DNS-именем EXAMPLE.COM имеет вид dc=example,dc=com. Имя EXAMPLE.COM также присваивается для области (realm), для которой проводится аутентификация.

Подготовка к запуску Active Directory на кластере ADQM

  1. Настройте сервер Active Directory (LDAP-сервер).

  2. Создайте учетную запись пользователя для подключения кластера к LDAP-серверу по протоколу LDAP.

  3. Создайте сертификат для пользователя, активировав протокол LDAP через протокол SSL с использованием стороннего центра сертификации.

  4. Установите пароль для учетной записи.

  5. Привяжите к учетной записи имя принципала пользователя (например, ad_admin@EXAMPLE.COM) и сформируйте файл keytab с этими принципалом и ключами.

Включение Active Directory на кластере ADQM

Для керберизации кластера с помощью Active Directory выполните описанные ниже шаги:

  1. В интерфейсе ADCM на странице Clusters выберите установленный и подготовленный кластер ADQM.

  2. Инициируйте включение Kerberos для кластера — нажмите на иконку Actions actions default dark actions default light и выберите действие Manage Kerberos.

    Включение Kerberos в кластере ADQM
    Включение Kerberos в кластере ADQM
  3. В открывшемся окне включите опцию Existing Active Directory и укажите параметры Active Directory в соответствии со значениями, установленными при настройке LDAP-сервера.

    Параметры Active Directory
    Параметры Active Directory
  4. Нажмите Run и дождитесь завершения керберизации. Процесс и результат выполнения задачи Manage Kerberos отображается на странице Jobs.

После того, как Kerberos успешно установлен на кластере ADQM, соответствующие настройки Kerberos появятся на странице конфигурации кластера (секция Kerberos) и сервиса ADQMDB (секция Kerberos configuration).

Настройки Kerberos в конфигурации кластера ADQM
Настройки Kerberos в конфигурации кластера ADQM

Kerberos-параметры Active Directory

Следующая таблица содержит описания параметров, необходимых для керберизации кластера ADQM с помощью Active Directory.

Параметр Описание

KDC hosts

Адрес сервера KDC (при керберизации c применением LDAP этот адрес совпадает с адресом LDAP-сервера)

Realm

Область для аутентификации в Kerberos

Kadmin server

Адрес сервера, на котором установлена система администрирования Kerberos (часто этот адрес совпадает с адресом сервера KDC)

Kadmin principal

Имя принципала пользователя, созданного для подключения кластера к Active Directory с правами создания пользователей и групп в контейнере Container DN

Kadmin password

Пароль принципала пользователя Kadmin principal

Admin DN

Учетная запись в Active Directory для пользователя, используемого для подключения кластера к Active Directory

LDAP URL

Адрес LDAP-сервера (ldaps://<hostname or IP address>:<port>)

Container DN

DN контейнера, где хранятся сервисные принципалы

TLS CA certificate Path (опционально)

Локальный путь, по которому на всех хостах кластера хранится сертификат CA для пользователя Admin DN (если сертификат актуальный, параметр TLS CA certificate указывать не нужно)

TLS CA certificate (опционально)

Содержимое сертификата CA для пользователя Admin DN, которое запишется на хост в файл по пути, указанному в TLS CA certificate Path

Проверка аутентификации пользователя через Kerberos

После успешной керберизации выполнение ADQM-команд на узлах кластера возможно только после получения соответствующего тикета Kerberos. Ниже приведен пример доступа к кластеру, керберизованному с помощью Active Directory:

  1. Создайте пользователя ADQM, который имеет запись в базе данных службы каталогов Active Directory и принципал для заданной области (realm). Для этого используйте выражение IDENTIFIED WITH kerberos в запросе CREATE USER:

    CREATE USER adqm_kerb_ad IDENTIFIED WITH kerberos;
  2. Создайте для принципала пользователя тикет Kerberos:

    $ kinit -V adqm_kerb_ad@EXAMPLE.COM

    Введите пароль:

    Password for adqm_kerb_ad@EXAMPLE.COM:

    Опции команды kinit описаны в статье kinit документации MIT Kerberos.

  3. Проверьте тикет:

    $ klist
    Ticket cache: FILE:/tmp/krb5cc_1000
    Default principal: adqm_kerb_ad@EXAMPLE.COM
    
    Valid starting       Expires              Service principal
    05/05/2023 09:05:36  05/06/2023 09:05:36  krbtgt/EXAMPLE.COM@EXAMPLE.COM
  4. Для проверки аутентификации через Kerberos отправьте в ADQM тестовую команду, используя утилиту curl с поддержкой механизма SPNEGO:

    $ echo "select currentUser()" | curl --negotiate -u : http://<host_name>:8123/ --data-binary @-

    Вывод на экран при успешной аутентификации:

adqm_kerb_ad
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней