NIFI Kerberos 认证

原创
2019/05/15 15:36
阅读数 2.1K

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 验证配置完毕。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部