Kerberos аутентификация#
CedrusData позволяет аутентифицировать пользователей c помощью Kerberos.
Важно
Для использования любого механизма аутентификации необходимо предварительно включить Шифрование клиентского трафика с помощью TLS и Аутентификация узлов в кластере (shared secret).
Конфигурация окружения#
KDC (Key Distribution Center)#
Вам понадобится Kerberos KDC, запущенный на сервере, с которым координатор может связаться по сети. KDC отвечает за аутентификацию пользователей и выдачу ключей, которые можно использовать с другими приложениями, использующими Kerberos. KDC обычно работает на порту 88.
Конфигурация MIT Kerberos#
Kerberos необходимо настроить на координаторе. Как минимум, должна присутствовать запись kdc
в разделе [realms]
файла /etc/krb5.conf
.
Вы также можете включить запись admin_server
и убедиться, что координатор может подключиться к серверу администрирования Kerberos через порт 749.
[realms]
TRINO.EXAMPLE.COM = {
kdc = kdc.example.com
admin_server = kdc.example.com
}
[domain_realm]
.trino.example.com = TRINO.EXAMPLE.COM
trino.example.com = TRINO.EXAMPLE.COM
Полная документация для krb5.conf
размещена в проекте MIT Kerberos Project.
Если вы используете другую реализацию протокола Kerberos, вам необходимо адаптировать конфигурацию к вашей среде.
Kerberos principals и файлы keytab#
Координатору и пользователю CedrusData необходим Kerberos principal. Вам необходимо создать соответствующих principal в Kerberos с помощью kadmin.
Кроме того, координатору CedrusData необходим файл keytab. После создания Kerberos principal вы можете создать файл keytab с помощью kadmin
kadmin
> addprinc -randkey cedrus/coordinator.example.com@EXAMPLE.COM
> xst -k /path/to/keytab/cedrusdata.keytab cedrus/coordinator.example.com@EXAMPLE.COM
Конфигурация#
Задайте следующую конфигурацию на координаторе CedrusData в файле etc/config.properties
, изменив значения некоторых параметров при необходимости:
http-server.authentication.type=KERBEROS
http-server.authentication.krb5.service-name=cedrus
http-server.authentication.krb5.principal-hostname=coordinator.example.com
http-server.authentication.krb5.keytab=/path/to/keytab/cedrusdata.keytab
http.authentication.krb5.config=/etc/krb5.conf
Название |
Описание |
---|---|
|
Механизм аутентификации. Должно быть установлено значение |
|
Должен быть равен |
|
Должен быть равен |
|
Задает принцип формирования principal координатора для целей аутентификации. Допустимые значения: |
|
Путь к keytab с ключом координатора в локальной файловой системе координатора. |
|
Путь к файлу конфигурации Kerberos в локальной файловой системе координатора. Обычно данный файл расположен по пути |
|
Регулярное выражение для |
|
Файл с правилами |
Устранение неисправностей#
Проверка Kerberos#
Убедитесь, что вы можете подключиться к KDC c координатора CedrusData с помощью команды telnet:
$ telnet kdc.example.com 88
Убедитесь, что keytab координатора валиден с помощью команд kinit и klist. Например:
$ kinit -kt coordinator.keytab cedrus/coordinator.example.com@EXAMPLE.COM
$ klist
Отладка Kerberos#
Вы можете включить печать подробной отладочной информации Kerberos в консоль и лог координатора CedrusData, добавив следующие строки в файл etc/jvm.config
:
-Dsun.security.krb5.debug=true
-Dlog.enable-console=true
Воспользуйтесь документацией Java для интерпретации сообщений об ошибках в логах.