文章目錄
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