- 拿到认证所需要的服务器keytab文件
例如需要访问hive,则首先需要hive权限的秘钥文件,默认地址为/etc/security/keytabs/
- 最好使用服务端hive的jdbc驱动进行连接,防止版本兼容问题。
- 编写安全服务文件 hive.login
创建一个文件用来登录验证
com.sun.security.jgss.initiate{
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
useTicketCache=false
keyTab="D:/dongwei/krb5/hive.service.keytab"
principal="hive/n1.bigdatatest.com@BIGDATATEST.COM"
doNotPrompt=true
debug=true
debugNative=true;
};
4. 配置环境变量
根据文件地址配置环境变量,krb5cache文件是需要后面生成的。只需要创建好temp目录即可
变量名:KRB5_CONFIG,变量值:D:\krb5\krb5.ini
变量名:KRB5CCNAME,变量值:C:\temp\krb5cache
- 配置登录地址及参数
地址: jdbc:hive2://n1.bigdatatest.com:10000/default;principal=hive/n1.bigdatatest.com@BIGDATATEST.COM
参数:
-Djava.security.auth.login.config=D:/dongwei/krb5/hive.login -Djava.security.krb5.realm=BIGDATATEST.COM
-Djava.security.krb5.kdc=n1.bigdatatest.com
-Djavax.security.auth.useSubjectCredsOnly=false
- 调试及日志查看
可能因为某些不可描述的原因,有些同学按照操作还是不能成功连接。这时候就需要寄出debug大法。
在参数配置里增加一条
-Dsun.security.krb5.debug=true
连接失败后根据错误日志来解决问题