我正在为在Java(JLAN项目)中完全实现的Alfresco CIFS协议configurationKerberos身份validation。 那已经不是第一次了,我曾经一枪就把它放好了。
在同一个networking中,使用ActiveDirectory Windows 2008R2和相同的过程,我已经成功完成了两个环境的设置,但生产环境给我带来麻烦。
生产密钥表由ktpass在ActiveDirectory上用RC4-HMAC生成,就像其他环境一样。 帐户AlfrescoCifsP是专门为生产和这个唯一的服务:
ktpass -princ cifs/[email protected] -mapuser MYDOMAIN\AlfrescoCifsP -pass <password> -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -out c:\temp\prod.keytab
现在我尝试在RedHat 5.8上使用它,使用版本为1.6.1-70-el4的 MIT Kerberos库和实用程序,并且出现以下错误:
$ kinit -k -t prod.keytab cifs/myserver.mydomain.com kinit(v5): Key table entry not found while getting initial credentials
以下是我查过的(很多次):
krb5.conf是默认领域设置 ktutil打开prod.keytab并列出cifs/myserver.mydomain.com的插槽 kinit cifs/myserver.mydomain.com进行身份validation kvno cifs/myserver.mydomain.com将返回与keytab条目相同的密钥号码 所以一切都成功了。 这是成功的两个服务帐户,并在第三个失败。 唯一的区别可能是SPN的长度比其他的长一些,但是远小于260个字符的SPN限制。
我已经放大了kinit -k -t prod.keytab cifs/...命令,我刚刚看到了对keytab文件的读取操作,并将错误消息输出到stderr后面。
有没有什么已知的问题在类似的环境中匹配我的麻烦?
如何诊断这个问题的根源呢?
可能是这种失败的主要原因是什么?
我希望find一条出路,我该怎么办?
感谢networking捕获,我的客户pipe理员发现了Novelllogging的匹配问题: http : //www.novell.com/support/viewContent.do? externalId = 7005039&sliceId =1
我在krb5.conf添加了以下几行来解决kerberos 1.6.1库的问题:
default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac
在我看来,这些线对于最近的MIT Kerberos库来说是不必要的。
首先,你应该validation你的计算机运行哪些SPN引用的服务,是否join了与域控制器的信任关系(Domain Network in“Open Network and Sharing Center”); 一旦确定,再次生成票据并执行kinit如下:
kinit -k -t prod.keytab cifs / [email protected]
结论:你错过了REALM(@ MYDOMAIN.COM)
注意:适用于WINDOWS 2008 EE X64 R2