文章目录
Nifi开启安全访问模式后,需要通过两层认证才能被访问,一层是身份认证,另一层是权限认证。
1.开启安全访问模式
简单的来说就是使用SSL协议访问。
1.1 下载并安装toolkit
官网提供了此工具,可以快速生成需要的信息,免去繁杂的步骤。
1.1.1 下载
地址:https://nifi.apache.org/download.html
目前以nifi-toolkit-1.11.3-bin.tar.gz [42 MB] ( asc, sha256, sha512)为例
1.1.2 移动
使用工具或SCP CMD移动安装包到相应的机器上
1.1.3 解压
CMD:tar -zxvf 包名
1.2 生产文件
进入toolkit主目录下,执行以下CMD
#根据你提供的域名和IP地址生成两个分别以域名和IP地址的目录,里面的文件有Keystore.jks,Truststore.jks,nifi.properties。两个目录的区别在于nifi.properties里的host的值一个是域名,一个是IP,选其中一个就好了,推荐选域名那个目录,这样IP就不会暴露。
./bin/tls-toolkit.sh standalone -n '域名','IP地址,如果前面的单引号填了域名,这里也可以忽略,具体原因如上述' -O -S '替换成你想设置的truststore密码' -P '设置一个keystore密码' -c 'hostname of NiFi Certificate Authority (default: localhost)'
NOTE:如果集群搭建也需要认证,也使用一台机器生成证书,然后再迁移。
1.3 将文件移动到相应位置
把刚刚生成Keystore.jks,Truststore.jks,nifi.properties移动到NIFI的./conf目录下(注:如果./conf路径下已经有nifi.properties,对比一下是否还要保留,保留的话需要自己配置nifi.properties里的信息,建议不保留直接覆盖,然后根据自己的需求修改nifi.properties里的其他信息,比如集群的相关配置信息)
复制的CMD:cp 移动前的路径 移动后的路径
2.身份认证
很多服务都提供了身份认证,这里以LDAP说明。
2.1 编辑nifi.properties
编辑CMD:vi nifi.properties
#默认空白,配置使用LDAP
nifi.security.user.login.identity.provider=ldap-provider
2.2 编辑./conf/login-identity-provider.xml
在NIFI主目录下,编辑CMD:vi /conf/login-identity-provider.xml
<provider>
<identifier>ldap-provider</identifier>
<class>org.apache.nifi.ldap.LdapProvider</class>
<property name="Authentication Strategy">SIMPLE</property>
<property name="Manager DN">真实的DN ,例如:CN=Users,OU=abc,DC=example,DC=com</property>
<property name="Manager Password">真实的密码</property>
<property name="Url">ldap://真实的IP:PORT</property>
#Base DN for searching for users (i.e. CN=Users,DC=example,DC=com).
<property name="User Search Base">例如OU=abc,DC=example,DC=com</property>
#Filter for searching for users against the User Search Base. (i.e. sAMAccountName={0}). The user specified name is inserted into '{0}'.
<property name="User Search Filter">sAMAccountName={0}</property>
<property name="User Object Class">person</property>
<property name="Identity Strategy">USE_USERNAME</property>
<property name="Authentication Expiration">12 hours</property>
</provider>
2.3 查看是否配置身份成功
2.3.1 开启NIFI
进入到NIFI主目录下,启动NIFI的CMD:./bin/nifi.sh start
2.3.2 进入NIFI UI
a.使用浏览器登入https://你之前配置的IP:在nifi.proerties的配置信息nifi.web.https.port的值/nifi,如
https://10.123.123.12:1234/nifi
b.发现如下画面,输入你的LDAP账密即可

c.出现如下画面代表身份认证通过

接下来进行权限认证
3.权限认证
使用身份验证机制之后,须配置谁可以访问系统,以及他们的访问级别。权限认证由UserGroupProvider和AccessPolicyProvider组成
3.1 UserGroupProvider
3.1.1 把授权的用户放在一个provider里管理,provider有LdapUserGroupProvider和FileUserGroupProvider,这里选择默认的FileUserGroupProvider
3.1.2 authorizers.xml负责管理这些provider,在NIFI主目录下,编辑authorizers.xml的CMD:vi ./conf/authorizers.xml
<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>
#The identity of a users and systems to seed the Users File
<property name="Initial User Identity 1">之前通过身份认证在的DN,如cn=小林,ou=搬砖人员,dc=搬砖公司,dc=com</property>
#这里可以添加多个初始用户,用Initial User Identity 1、2、3、4····n格式,如下
<property name="Initial User Identity 2">类型同上,但是不可以重复DN</property>
</userGroupProvider>
3.2 AccessPolicyProvider
3.2.1 AccessPolicyProvider负责管理相关用户的不同类别的权限,
AccessPolicyProvider默认的就是FileAccessPolicyProvider。
3.2.2 authorizers.xml负责管理这个provider,在NIFI主目录下,编辑authorizers.xml的CMD:vi ./conf/authorizers.xml
<accessPolicyProvider>
<identifier>file-access-policy-provider</identifier>
<class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
<property name="User Group Provider">file-user-group-provider</property>
<property name="Authorizations File">./conf/authorizations.xml</property>
#初次登入时,要设置一个管理员身份才可以进入NIFI,然后可以在NIFI的UI里设置其他用户的权限
<property name="Initial Admin Identity">之前通过身份认证在的DN,如cn=小林,ou=搬砖人员,dc=搬砖公司,dc=com</property>
<property name="Legacy Authorized Users File"></property>
<property name="Node Identity 1"></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>
nifi.security.user.authorizer=managed-authorizer
3.3.3 进入NIFI UI
a.使用浏览器登入https://你之前配置的IP:在nifi.proerties的配置信息nifi.web.https.port的值/nifi,如
https://10.123.123.12:1234/nifi
b.然后用刚刚设置过的管理员身份登入
c.显示如下画面代表成功

d.上图中红色框代表添加其他用户和授权,具体页面如下


4.对密码进行加密

/opt/nifi-toolkit-1.x/bin/encrypt-config.sh -n /opt/nifi-1.xx/conf/nifi.properties -l /opt/nifi-1.xx/conf/login-identity-providers.xml -b /opt/nifi-1.xx/conf/bootstrap.conf
666

被折叠的 条评论
为什么被折叠?



