環境準備html
操做系統:ubuntu 16web
NIFI:1.9.0 ,並能夠正常啓動apache
Kerberos service 安裝完畢,NIFI(單節點)所在服務器上安裝Kerberos clienubuntu
因爲NIFI賬號密碼驗證只支持HTTPS請求,全部咱們必須先擁有一個CA證書。瀏覽器
第一步服務器
首先你得下載一個NIFI,傳送 NIFI-x.x.xide
進入NIFI目錄下的網站
./nifi.sh start 啓動操作系統
訪問瀏覽器 http://127.0.0.18080 是否能夠訪問,能夠訪問後下一步.net
第二步
安裝Kerberos服務 傳送 kerberos
第三步
準備CA證書。因爲要開啓NIFI的登陸權限認證,訪問地址必須是HTTPS。
到https://www.tinycert.org註冊免費獲取證書
右邊點擊Create新建一個Requests/Certificates,左邊download => CA Certificate,右邊download => pkcs#12 Archive,並將2個文件上傳到NIFI部署的服務上
第四步
NIFI 開啓kerberos認證
找到服務器響應的文件,執行如下3條命令
mv cert.pfx cert.p12
openssl x509 -outform der -in cacert.pem -out cacert.der
keytool -import -keystore cacert.jks -file cacert.der
在執行過程當中會要求輸入密碼,若是你是在上面的網站上註冊的,密碼就是你的註冊的密碼。最後輸入是,將證書加入密鑰庫。
進入nifi目錄下的conf文件夾找到如下幾個配置文件
authorizers.xml,配置管理員賬號,配置權限相關。(sc/admin@SC.COM 是Kerberos中的一個賬號)
<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">sc/admin@SC.COM</property> </userGroupProvider> <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> <property name="Initial Admin Identity">sc/admin@SC.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> </authorizers>
nifi.properties nifi環境配置文件
nifi.web.http.host= nifi.web.http.port= nifi.web.https.host=cm-agent1 nifi.web.https.port=9090(端口自定義) . . . nifi.security.keystore=/opt/cert/cert.p12 nifi.security.keystoreType=PKCS12 nifi.security.keystorePasswd=1qaz2wsx nifi.security.keyPasswd=1qaz2wsx nifi.security.truststore=/opt/cert/cacert.jks nifi.security.truststoreType=JKS nifi.security.truststorePasswd=1qaz2wsx nifi.security.user.authorizer=managed-authorizer nifi.security.user.login.identity.provider=kerberos-provider # kerberos # nifi.kerberos.krb5.file=/etc/krb5.conf # kerberos service principal # nifi.kerberos.service.principal=sc/admin@SC.COM
login-identity-providers.xml 配置驗證方式
<provider> <identifier>kerberos-provider</identifier> <class>org.apache.nifi.kerberos.KerberosProvider</class> <property name="Default Realm">SC.COM</property> <property name="Authentication Expiration">12 hours</property> </provider>
users.xml 根據系統賬號自動生成的文件,第一次進入沒有
authorizations.xml 根據權限自動生成的文件,第一次進入沒有。
配置完畢,重啓nifi,保證新端口能夠訪問。注意:不要在瀏覽器添加nifi相關證書,不然將致使不會出現登陸窗口,會使用證書默認賬號登陸。
點擊繼續訪問,輸入賬號密碼登陸,初始賬號爲配置文件內的賬號,個人是 sc/admin@SC.COM,因此輸入賬號sc/admin,再輸入密碼,kerberos建立sc/admin@SC.COM賬號時候的密碼。
點擊登陸。nifi kerberos 驗證配置完畢。