环境准备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 验证配置完毕。