使用Java自带kinit、klist在windows下进行kerberos认证

      最近工作需要,linux下进行kerberos认证很简单,也很容易。直接kinit命令执行就ok,然后相关的上层应用,诸如Python之类的kerberos程序内认证,都是基于操作系统层面已经认证过的凭证catch,再进行通信。但是windows下一直不方便,当然有MIT实现的windows下的kerberos客户端,不过配置好复杂,很多功能用不到。

      今天发现JDK的bin目录下,自带kinit,klist等命令。应该Java的JDK本身也可以进行kinit的认证。于是开始尝试。一番试验后最终成功。

      首先要把KDC中心提供的krb5.conf文件,做windows转制,转换为windows换行符的ini配置文件。变成krb5.ini。如下图所示:

     使用Java自带kinit、klist在windows下进行kerberos认证_第1张图片

然后将该文件放在C:\windows目录下。如图所示:

使用Java自带kinit、klist在windows下进行kerberos认证_第2张图片

    然后将需要认证的用户票据文件放到任何地方都可以,最好自己放个合适的路径或者目录保存起来。接着用JDK自带的kinit命令进行认证,用klist查看认证结果就ok了。如图:

    使用Java自带kinit、klist在windows下进行kerberos认证_第3张图片

如图所示,最关键的认证后的票据缓存会自动生成在 C:\Users\‘用户名’\krb5cc_用户名 文件中。这个至关重要哦,在python中进行kerberos时,使用gssapi和sasl,都需要提供这个文件,才能正常工作。

 

 

你可能感兴趣的:(技术)