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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章