Аутентификация через Kerberos
ADQM предоставляет возможность аутентифицировать существующих пользователей с использованием протокола Kerberos, который обеспечивает механизм взаимной аутентификации клиента и сервера перед установлением соединения между ними.
Основные понятия, используемые в Kerberos:
-
Принципал (principal) — уникальное имя клиента (пользователя), который проходит аутентификацию через Kerberos.
-
Тикет (ticket) — временные данные, выдаваемые клиенту для аутентификации на сервере, на котором располагается необходимый сервис.
-
Центр распределения ключей (Key Distribution Center, KDC) — сервис, выдающий тикеты Kerberos и временные сеансовые ключи.
-
Область (realm) — сеть Kerberos, которая включает KDC и одного или нескольких клиентов. Имя realm регистрозависимо, обычно пишется в верхнем регистре и совпадает с именем домена.
Типы центров распределения ключей (KDC)
Для керберизации кластера ADQM доступны следующие типы центров распределения ключей (KDC):
-
MIT Kerberos — состоит из базы данных принципалов и хранилища ключей Kerberos.
-
MS Active Directory — содержит базу данных принципалов и хранилище ключей Windows Server.
-
FreeIPA — бесплатная система управления идентификацией пользователей для Linux/UNIX с открытым исходным кодом.
При использовании любого из этих типов KDC процесс идентификации и аутентификации пользователей практически одинаков. Единственное различие заключается в типе используемого KDC.
Общие требования для керберизации кластера ADQM
Чтобы внедрить Kerberos в существующий кластер ADQM, необходимо выполнение следующих условий:
-
Кластер ADQM установлен, настроен и готов к работе.
-
Хранилище пользователей и ключей MIT Kerberos, Active Directory или FreeIPA настроено и готово к работе.
-
Существует учетная запись администратора MIT Kerberos, Active Directory или FreeIPA с правами на создание, удаление и управление учетными записями пользователей.
Пользователи, настроенные для аутентификации через Kerberos, могут работать с ADQM только через интерфейс HTTP. При этом используемый клиент должен поддерживать механизм SPNEGO. Например, можно использовать утилиту curl
. Убедиться, что Kerberos и SPNEGO поддерживаются, можно с помощью следующей команды:
$ curl --version
Пример вывода на экран:
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/1.0.2k-fips zlib/1.2.7 Release-Date: 2022-01-05 Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS GSS-API HSTS HTTPS-proxy IPv6 Kerberos Largefile libz NTLM NTLM_WB SPNEGO SSL UnixSockets