Apache NiFi: Bootstrap Группы пользователей и политики с файловым провайдером - PullRequest
0 голосов
/ 15 февраля 2019

Можно ли загрузить группы пользователей и политики с помощью провайдера на основе файлов?
В настоящее время мы используем org.apache.nifi.authorization.FileUserGroupProvider для загрузки Initial User Identity и org.apache.nifi.authorization.FileAccessPolicyProvider для загрузки Initial Admin Identity при настройке экземпляра NiFi.
Я проверил код FileUserGroupProvider, а также Authorizers.xml Setup в Руководстве администратора и не смог найти ничего о загрузке групп пользователей.Я предполагаю, что то же самое происходит с начальной загрузкой AccessPolicies, используя FileAccessPolicyProvider.Я знаю, что это возможно с использованием LDAP, но мы не используем это прямо сейчас.
Я уже нашел похожий вопрос с ней по StackOverflow , но решение не является удовлетворительным, так как мы не хотимиспользовать nifi-api для этой задачи, если это не является абсолютно необходимым.Так что я бы сделал, написав новый файл UserGroupProvider и AccessPolicyProvider для выполнения этой задачи.
Это единственная возможность?
Я бы использовал для этого CompositeUserGroupProvider или CompositeConfigurableUserGroupProvider, поэтому вместо повторного-исполнение функциональности FileUserGroupProvider и добавление моей пользовательской реализации, могу ли я использовать это для объединения функций?
Имеется в виду что-то вроде этого:

<userGroupProvider>
  <identifier>composite-user-group-provider</identifier>
  <class>org.apache.nifi.authorization.CompositeUserGroupProvider</class>
  <property name="User Group Provider 1">org.apache.nifi.authorization.FileUserGroupProvider</property>
  <property name="User Group Provider 2">MyFileUserGroupProvider</property>
</userGroupProvider>

Как будет выглядеть конфигурация в authorizers.xml файл?

Если мое предположение о том, как использовать CompositeProvider, верно, есть ли что-то похожее для политик начальной загрузки?

1 Ответ

0 голосов
/ 15 февраля 2019

Если я правильно понимаю, вы хотите автоматизировать установку пользователей, групп и политик на фиксированные, предопределенные значения.

Я бы порекомендовал использовать FileUserGroupProvider и FileAccessPolicyProvider, так как оба они дают вамвозможность настройки пользователей, групп и политик непосредственно в самом NiFi.Вам не нужно создавать пользовательские реализации UserGroupProvider или AccessPolicyProvider, если вам не нужно настраивать функциональность сверх того, что могут предоставить включенные файловые провайдеры.

Вы сказали, что не хотите использовать nifi-api,под которым я предполагаю, что вы имеете в виду HTTP REST API.(Я не пытаюсь быть педантичным, на самом деле есть библиотека под названием nifi-api, которая представляет собой набор интерфейсов Java для разработчиков nifi для использования при написании расширений.) REST APi - это хороший вариант, который я обычно рекомендую, так как естьгарантирует обратную совместимость для NiFI 1.x в будущем, но это не единственный способ достичь того, что вы хотите сделать.

Вы можете создавать файлы users.xml и authorizations.xml вручную (или по сценарию)вне NiFi, и вам просто нужно настроить FileUserGroupProvider и AccessUserGroupProvider для использования этих файлов (или скопировать их в расположение по умолчанию для этих файлов в каталоге conf).При запуске NiFi считывает содержимое этих файлов в память для создания пользователей, групп и политик доступа. Свойства Первоначальный пользователь и Начальный администратор используются только для автоматизации заполнения этих файлов, когда они отсутствуют или пусты, , поэтому, если вы предоставите свои собственные копии этих файлов, они будут использованы.

Структура этих файлов XML довольно проста в создании.Вы можете использовать экземпляр NiFi для создания пользователей, групп и политик через пользовательский интерфейс и посмотреть, что записано в эти файлы.Затем вы можете создавать их по своему усмотрению: пользовательский интерфейс NiFi, вручную или по сценарию из другого исходного файла.Создав файлы, вы можете выполнить «начальную загрузку», поместив их в каталог NiFi и (пере) запустив его.NiFi не регенерирует и не изменяет эти файлы, если пользователи, группы и политики не изменяются в пользовательском интерфейсе.

Единственным недостатком этого подхода является то, что эти файлы не гарантируют стабильную схему в будущем.Таким образом, новые поля могут быть добавлены или изменены с течением времени.Тем не менее, они были стабильны в течение последних нескольких версий NiFi.

...