Аутентификация через 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
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней