NIFI Kerberos 认证开启
环境准备
操作系统:ubuntu 16
NIFI:1.9.0 ,并可以正常启动
Kerberos service 安装完毕,NIFI(单节点)所在服务器上安装Kerberos clien
由于NIFI帐号密码验证只支持HTTPS请求,所有我们必须先拥有一个CA证书。
-
第一步
首先你得下载一个NIFI,传送 NIFI-x.x.x
进入NIFI目录下的
./nifi.sh start 启动
访问浏览器 http://127.0.0.18080 是否可以访问,可以访问后下一步
-
第二步
安装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 验证配置完毕。