Недавно мы рассказывали, как организовать аутентификацию пользователей Apache NiFi через Okta OIDC в качестве сервиса провайдера удостоверений. Продолжая эту важную для обучения администраторов кластера и дата-инженеров тему, сегодня рассмотрим, как использовать SaaS-решение IBM Security Verify для управления доступом к пользовательскому интерфейсу Apache NiFi. Разбираемся с OpenID Connect для входа и OAuth2.0 с RESTful API для извлечения сохраненных данных пользователей и групп в облачном каталоге.
Что такое IBM Security Verify
Apache NiFi поддерживает аутентификацию пользователей с помощью клиентских сертификатов, имени пользователя и пароля, Knox или OpenID Connect. Для авторизации он предоставляет управляемый авторизатор, состоящий из «UserGroupProvider» и «AccessPolicyProvider». Эти провайдеры позволяют загрузить пользователей, группы и политики доступа и настроить их. Также можно интегрировать Apache NiFi с IBM Security Verify, чтобы контролировать доступ к пользовательскому интерфейсу этого потокового ETL-маршрутизатора.
Напомним, IBM Security Verify — это единое SaaS-решение, которое обеспечивает возможности облачного IAM-средства, включая функции глубокой проверки подлинности на основе рисков и автоматизированного управления согласием. Вообще под IAM-системами (Identity and Access Management) понимают набор технологий и программных продуктов, отвечающих задачам управления жизненным циклом учетных записей и управления доступом к корпоративным приложениям. IBM предлагает это решение для управления доступом, идентификацией, привилегированным доступом и идентификацией потребителя.
SaaS-решение IBM Security Verify помогает реализовать гибридный IAM и модернизировать различные реализации управления доступом, а также обеспечивает легкое управление из облака. Оно также включает в себя возможности CIAM, которые помогают создать основу стратегии идентификации потребителей. Портфель управления привилегированным доступом IBM Security Verify Privilege включает как облачные, так и локальные варианты развертывания.
Как настроить облачный IAM в Apache NiFi
Чтобы реализовать поддержку IAM в виде IBM Security Verify для Apache NiFi, следует создать и настроить OIDC-приложение, а также клиент доступа к API. Для этого следует сперва войти в IBM Security Verify, используя свой IBMid. Добавив новое пользовательское приложение, следует задать параметры входа для него. Например, указать метод входа OpenID Connect 1.0, задать URL приложения, код авторизации в качестве типа разрешения, отменить обязательное требование ключа для подтверждения обмена кодами (PKCE, Proof Key for Code Exchange) и определить URI перенаправления. После сохранения заданных конфигураций можно переходить к настройке клиента API.
Для этого надо создать клиент API, чтобы использовать его в конфигурации провайдера групп пользователей в Apache NiFi. Сохранив конфигурацию, можно переходить к конечному шагу, т.е. создать пользователя и предоставить ему права на потоковое приложение. При этом имя пользователя должно совпадать со значением электронной почты для этой интеграции.
Наконец, можно предоставить права приложения этому пользователю, чтобы IBM Security Verify разрешил ему доступ к NiFi-приложению.
Чтобы настроить OIDC-аутентификациию в потоковом ETL-маршрутизаторе, следует обновить 2 ключевых конфигурации:
- сперва обновить файл properties со следующими значениями
nifi.security.user.authorizer=managed-authorizer nifi.security.user.login.identity.provider= nifi.security.user.oidc.discovery.url=https://<tenant_id>.verify.ibm.com/oidc/endpoint/default/.well-known/openid-configuration nifi.security.user.oidc.client.id=<application_client_id> nifi.security.user.oidc.client.secret=<application_client_secret> nifi.security.user.oidc.additional.scopes=profile nifi.security.user.oidc.claim.identifying.user=email nifi.security.user.oidc.fallback.claims.identifying.user=uid
- далее следует обновить файл authorizers.xml:
<?xml version=”1.0" encoding=”UTF-8" standalone=”yes”?> <authorizers> <userGroupProvider> <identifier>file-user-group-provider</identifier> <class>org.apache.nifi.authorization.FileUserGroupProvider</class> <property name=”Users File”>./conf/users.xml</property> <property name=”Legacy Authorized Users File”></property> </userGroupProvider> <userGroupProvider> <identifier>ibmverify-user-group-provider</identifier> <class>org.apache.nifi.authorization.IBMVerifyUserGroupProvider</class> <property name=”IBM Verify URL”><tenant_id>.verify.ibm.com</property> <property name=”Client ID”><CLIENT_ID></property> <property name=”Client secret”><CLIENT_SECRET></property> <property name=”Refresh delay in minutes”>5</property> <property name=”Group filter prefix”>NIFI</property> </userGroupProvider> <userGroupProvider> <identifier>composite-configurable-user-group-provider</identifier> <class>org.apache.nifi.authorization.CompositeConfigurableUserGroupProvider</class> <property name=”Configurable User Group Provider”>file-user-group-provider</property> <property name=”User Group Provider 1">ibmverify-user-group-provider</property> </userGroupProvider> <accessPolicyProvider> <identifier>file-access-policy-provider</identifier> <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class> <property name=”User Group Provider”>ibmverify-user-group-provider</property> <property name=”Authorizations File”>./conf/authorizations.xml</property> <property name=”Initial Admin Identity”>nifiuser@mailinator.com</property> <property name=”Legacy Authorized Users File”></property> <property name=”Node Identity 1"></property> <property name=”Node Group”></property> </accessPolicyProvider> <authorizer> <identifier>managed-authorizer</identifier> <class>org.apache.nifi.authorization.StandardManagedAuthorizer</class> <property name=”Access Policy Provider”>file-access-policy-provider</property> </authorizer> </authorizers>
Узнайте больше про тонкости администрирования и эксплуатации Apache NiFi для построения эффективных ETL-конвейеров потоковой аналитики больших данных на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:
Источники