Nifi 1.5 群集上的不受信任代理



我已经尽力遵循:https://pierrevillard.com/2016/11/29/apache-nifi-1-1-0-secured-cluster-setup/

我正在运行nifi-1.5.0,当我转到每个页面时,我看到一个错误,例如:不受信任的代理CN=nifi-{1-3}.east.companyname.com,OU=NIFI。

我正在使用 ldap 身份验证,并且只接受"无效"证书。

我使用了一个不相关的密钥服务器来生成密钥库/信任库/证书,如上面的链接。

我也有nifi.security.needClientAuth=truenifi.cluster.protocol.is.secure=true在我的所有节点上的 nifi.properties 文件中设置

我的授权方文件包含所有节点的条目,例如:

<property name="Node Identity 1">CN=nifi-1.east.companyname.com, OU=NIFI</property> <property name="Node Identity 2">CN=nifi-2.east.companyname.com, OU=NIFI</property> <property name="Node Identity 3">CN=nifi-3.east.companyname.com, OU=NIFI</property>提前感谢!

我建议您在authorizers.xml中配置授权方以使用具有两个用户组提供程序的CompositeConfigurableUserGroupProvider

  1. file-user-group-provider:这将用于存储群集节点的身份(证书 DN)
  2. ldap-user-group-provider:对于您的最终用户,这将在集群复制请求时被代理

配置这两个UserGroupProviders,然后将CompositeConfigurableUserGroupProvider配置为使用文件用户组提供程序作为"可配置提供程序",将 ldap-用户组提供程序用作"用户组提供程序 1"。下面是一个示例:

<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>
<property name="Initial User Identity 1">CN=nifi-1.east.companyname.com, OU=NIFI</property>
<property name="Initial User Identity 1">CN=nifi-2.east.companyname.com, OU=NIFI</property>
<property name="Initial User Identity 1">CN=nifi-3.east.companyname.com, OU=NIFI</property>
</userGroupProvider>
<userGroupProvider>
<identifier>ldap-user-group-provider</identifier>
<class>org.apache.nifi.ldap.tenants.LdapUserGroupProvider</class>
<!-- ... configure this to match the settings in login-identity-providers.xml ... -->
</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">ldap-user-group-provider</property>
</userGroupProvider>
<accessPolicyProvider>
<identifier>file-access-policy-provider</identifier>
<class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
<property name="User Group Provider">composite-configurable-user-group-provider</property>
<property name="Authorizations File">./conf/authorizations.xml</property>
<property name="Initial Admin Identity"></property>
<property name="Legacy Authorized Users File"></property>
<property name="Node Identity 1">CN=nifi-1.east.companyname.com, OU=NIFI</property>
<property name="Node Identity 2">CN=nifi-2.east.companyname.com, OU=NIFI</property>
<property name="Node Identity 3">CN=nifi-3.east.companyname.com, OU=NIFI</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>

在每个节点上配置此项,然后删除users.xmlauthorizations.xml并在每个节点上重新启动 NiFi。(这是创建用户.xml和授权所必需的.xml并将节点身份设置为充当代理,如果用户.xml和授权与数据一起存在.xml则不会发生这种情况。如果操作正确,每个节点都应允许集群节点使用客户端证书(来自其 keystore.jks)进行身份验证,并且每个节点都将被授权充当代理,这意味着当最终用户与一个集群通信时,该交互将被复制到集群中的所有节点,这就是您想要的。

您应该能够设置nifi.security.needClientAuth=false.基于证书的身份验证仍然有效,只是不需要(即,对于从最终用户到节点的初始通信,LDAP 凭据就足够了)。

希望这有帮助!

参考:NiFi 管理员指南

最新更新