认证失败处理FAQ
现象描述
样例工程调试运行过程发现认证失败。
处理流程
出现认证失败的原因很多,在不同场景中建议参考以下步骤来排查:
- 确认本应用所运行设备和FusionInsight集群网络上是否通畅,Kerberos认证所需的各类端口(TCP/UDP)是否可正常访问。
- 确认各个配置文件是否被正确读取到,路径是否保存正确。
- 确认用户名和keytab文件是按操作指导得到的。
- 确认各类配置信息是否已经先设置好了,再发起认证。
- 确认没有在同一个进程中发起多次认证,即重复调用login()方法。
- 若还有问题,需联系华为工程师做进一步分析。
认证失败样例
解决认证出现如下关键字:clock skew too greate的问题
- 检查FusionInsight集群时间。
- 检查开发环境所在机器的时间,与集群时间的偏差应小于5分钟。
解决认证出现如下关键字:(time out) can not connect to kdc server的问题
- 要检查“krb5.conf”文件内容是否正确,即是否与集群中的KerberoServer的业务IP配置相同。
- 检查Kerberos服务是否正常。
- 检查防火墙是否关闭。
解决认证出现如下关键字:current user is [email protected] (auth:KERBEROS)has logined的问题
- 检查当前环境是否有用户已执行kinit命令进行安全认证?
- 是,执行步骤 2。
- 否,执行步骤 3。
- 此用户是否还需要继续使用,不能注销?
- 是,注释LoginUtil.checkNeedLogin()方法,然后执行步骤 3。
- 否,执行kdestory命令注销用户登录信息,然后执行步骤 3。
- 检查当前环境操作系统中的登录用户是否使用Kerberos机制进行安全认证,且样例工程使用了IBM JAVA平台?
- 是,且不能修改操作系统用户认证机制,请注释LoginUtil.checkNeedLogin()方法,然后执行步骤 4。
- 否,执行步骤 4。
- 检查样例工程是否多次调用认证方法,认证方法只需要调用一次。