Правая клавиша для процессора Nifi

У меня есть кластер узлов Nifi 3 (установленный через поток данных Hortonworks - HDF) в среде Kerborized. В рамках установки Ambari создал сервисный keytab nifi. Привет

Могу ли я использовать этот nifi.service.keytab для настройки процессоров, таких как PutHDFS, которые общаются со службами Hadoop?

Nifi.service.keytab зависит от машины и всегда ожидает основных имен с машинной информацией. ex nifi / HOSTNAME @ REALM

Если я настраиваю свой процессор с использованием информации nfii / NODE1_Hostname @ REALM, я вижу исключение аутентификации Kerberos на других двух узлах.

Как мне динамически разрешить имя хоста для использования keytab службы nifi?


person Shashi    schedule 08.06.2017    source источник
comment
Сервисы NiFi используют имя принципала сервиса в форме service/host.fqdn@REALM. Клиенты используют базовое имя участника в форме someone@REALM; процесс аутентификации выполняется в 2 этапа: сначала клиент получает TGT (билет для выдачи билетов) в качестве подтверждения личности, затем он использует TGT для получения билета службы для доступа к службе на конкретный хост. Т.е. в случае переключения на другой хост он должен получить другой билет службы; разрешение выполняется автоматически клиентской библиотекой NiFi.   -  person Samson Scharfrichter    schedule 09.06.2017
comment
@SamsonScharfrichter Проблема в том, что если я настраиваю служебную вкладку в процессоре Nifi, она не динамически разрешает имя хоста. Из-за чего процессор начинает давать сбой, если принципал не совпадает с именем машины.   -  person Shashi    schedule 09.06.2017
comment
Да, именно поэтому вам нужны три разных записи в каталогах Kerberos и 3 разных вкладки, по одной на узел ... Если вы не используете Microsoft AD в качестве Kerberos KDC - он работает немного по-другому (для AD, SPN - это не идентификаторы, а атрибуты стандартных учетных записей)   -  person Samson Scharfrichter    schedule 10.06.2017
comment
Помните, что Kerberos был определен за десятилетия до того, как распределенная обработка (или даже балансировщики нагрузки) стала популярной. И очень осторожно относится к аутентификации хоста (включая обратное сканирование DNS) среди прочего.   -  person Samson Scharfrichter    schedule 10.06.2017


Ответы (1)


Поле основного имени keytab поддерживает язык выражений Apache NiFi, поэтому вы можете использовать такое выражение: nifi/${hostname()}@REALM, и каждый узел будет преобразовывать это выражение (независимо) во что-то вроде nifi/host1.nifi.com@REALM или nifi/host2.nifi.com@REALM и т. д.

Если вы не хотите, чтобы это было явное имя хоста, вы также можете установить переменную среды на каждом узле (export NIFI_KEYTAB_HOSTNAME="modified_host_format_1" и т. Д.) И таким же образом ссылаться на переменную среды в выражении EL: nifi/${NIFI_KEYTAB_HOSTNAME}@REALM.

person Andy    schedule 05.04.2018