NIFI登录配置(kerberos)
1.下载kerberos:
(https://centos.pkgs.org/6/centos-x86_64/krb5-server-1.10.3-57.el6.x86_64.rpm.html)(下载rpm包网址)
1.1下载四个包krb的包
krb5-auth-dialog-0.13-5.el6.x86_64.rpm
krb5-libs-1.10.3-57.el6.x86_64.rpm
krb5-server-1.10.3-57.el6.x86_64.rpm
krb5-workstation-1.10.3-57.el6.x86_64.rpm
rpm -ivh krb5-auth-dialog-0.13-5.el6.x86_64.rpm(指令行)
rpm -ivh krb5-libs-1.10.3-57.el6.x86_64.rpm --force --nodeps(指令行)
rpm -ivh krb5-server-1.10.3-57.el6.x86_64.rpm(指令行)
rpm -ivh krb5-workstation-1.10.3-57.el6.x86_64.rpm(指令行)
2.安装和配置kerberos:
2.1配置kerberos
关于kerberos的配置请参考前6步即可(下面是主要的两个配置文件例子)
http://jingyan.baidu.com/article/aa6a2c14e5020f0d4d19c44a.html?st=2&net_type=&bd_page_type=1&os=0&rst=&word=normal
2.2网站配置(以下可通过上述网站进行详细配置)
(1) 配置krb5.conf
vi /etc/krb5.conf(指令行)Realm参数自己设定但要一致
kdc=主机ip
admin_server=主机ip
Kdc为kdc位置 格式 主机:端口(可用默认)(主机可以是主机名或ip)
(2)配置kdc.conf
vi /var/kerberos/krb5kdc/kdc.conf(指令行)
Realms 下参数要和krb5.conf中Realms一样。(3)创建数据库
2.3创建通信主体和用户及启动kdc进程
(1)在kerberos中创建两个主体
kadmin.local(指令行) 进入数据库
addprinc nifi/nifi.com@NIFI.COM(指令行) 添加用户
第二个 addprinc是向NiFi认证的最终用户也叫超级用户(user)addprinc user(指令行) 添加超级用户
(2)创建通信主体的keytab文件
ktadd – k /opt/key/nifi-nifi.keytab nifi/nifi@NIFI.COM (指令行)
(3)启动两个进程:
service
krb5kdc start (指令行)service kadmin start(指令行)
kinit user(指令行)检测创建的用户是否
输入创建用户时输入的密码
Klist(指令行) 查看认证用户
3.NiFi配置
3.1生成证书
为了执行任何类型的身份验证,NiFi必须配置为使用https。所以我们要配置证书和信任库,启用双向SSL。
关于证书的生成nifi提供了 nifi-toolkit-1.1.0工具,可以直接生成证书。
具体使用可以参考官方文档或者下面链接
(https://community.hortonworks.com/articles/58233/using-the-tls-toolkit-to-simplify-security.html)
本文推荐使用(https://www.tinycert.org/#0)这个工具生成证书颁发机构及客户端/服务端证书。
(1)certificates.zip(已经生成好的证书文件)
下载zip包地址:https://community.hortonworks.com/storage/attachments/4335-certificates.zip
下载后的包为:4335-certificates.zip
进入到4335-certificates.zip路径下
unzip 4335-certificates.zip(指令行) 解压包
生成之后下载CA及客户端等证书。
将客户端证书导入到浏览器中
将其他两个证书导入到服务器,执行下面指令。密钥库地址及密码自己设定
(2)进入到解压完包的路径下
mv cert.pfx cert.p12(命令行)
openssl x509 -outform der -in cacert.pem -out cacert.der(命令行)
keytool -import -keystore cacert.jks -file cacert.der(命令行)
3.2 nifi.properties配置
(1) Vi /opt/nifi-1.1.0/conf/nifi.properties(指令行)进入nifi配置文件
nifi.remote.input.secure=true
nifi.web.https.host=localhost
nifi.web.https.port=9445
nifi.security.keystore=./conf/keystore.jks
nifi.security.keystoreType=jks
nifi.security.keystorePasswd=<your password>
nifi.security.keyPasswd=<your password>
nifi.security.truststore=./conf/truststore.jks
nifi.security.truststoreType=jks
nifi.security.truststorePasswd=<your password>
根据自己之前的配置参数进行更改
1. # kerberos #
2. nifi.kerberos.krb5.file=/etc/krb5.conf
3. nifi.kerberos.service.principal=nifi/nifi@NIFI.COM (通信主体)
4. nifi.kerberos.keytab.location=/opt/key/nifi-nifi.keytab
5. nifi.kerberos.authentication.expiration=12 hours
1. nifi.security.user.login.identity.provider=kerberos-provider
2. nifi.login.identity.provider.configuration.file=./conf/login-identity-providers.xml
3.3配置 login-identity-providers.xml
<provider>
<identifier>kerberos-provider</identifier>
<class>org.apache.nifi.kerberos.KerberosProvider</class>
<property name="Default Realm">NIFI.COM</property>
<property name="Authentication Expiration">12 hours</property>
</provider>
NIFI.APACHE.ORG写自己的Realm名
3.4配置authorizers.xml
<property name="Initial Admin Identity">user@NIFI.COM</property>
User@NIFI.COM 超级用户
3.5 主机名映射
10.20.204.159mk nifi.com
将域名映射到主机名,以便与我们的KDC中的域排队。
(注:若不用本机浏览器访问nifi,需要在客户端host文件加入 10.20.204.159 nifi.com)
以上所有配置完成,启动nifi。
在浏览器中访问:https://nifi.com:9445/nifi
(注:要在客户端导入客户端证书。)
当登录浏览器是可能会出现错误
Mozilla Firefox 火狐浏览器
选择 高级
Google Chrome