NIFI快速认证配置

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值