拿到认证所需要的服务器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 连接失败后根据错误日志来解决问题
|