ActiveDirectory Kerberos 密钥表在 Linux 上不可用

ActiveDirectory Kerberos 密钥表在 Linux 上不可用

我正在为配置 Kerberos 身份验证Alfresco CIFS 协议完全用 Java 实现(JLAN 项目)。这不是第一次,我以前总是一次性就设置好。

在同一网络中,使用 ActiveDirectoryWindows 2008R2和同样的程序,我已经成功地完成了两个环境的设置,但生产环境给我带来了麻烦。

生产密钥表由ktpassActiveDirectory 生成,使用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

现在我尝试使用它红帽 5.8使用 MIT Kerberos 库和实用程序版本1.6.1-70-el4我收到以下错误:

$ kinit -k -t prod.keytab cifs/myserver.mydomain.com
kinit(v5): Key table entry not found while getting initial credentials

以下是我检查过的内容(多次):

  • 我的krb5.conf默认区域设置没问题
  • 我可以打开prod.keytabktutil列出cifs/myserver.mydomain.com
  • 我可以使用密码和命令进行身份验证kinit cifs/myserver.mydomain.com
  • kvno cifs/myserver.mydomain.com返回与 keytab 条目相同的密钥编号
  • 我还删除了 ActiveDirectory 帐户并再次执行了该操作。结果还是一样。

所以一切都已完成,成功了。两个服务帐户都成功了,第三个服务帐户失败了。唯一的区别可能是 SPN 长度比其他服务帐户长一点,但远小于 260 个字符的 SPN 限制。

我有斯特拉塞德kinit -k -t prod.keytab cifs/...命令和我刚才看到的对 keytab 文件的读取操作以及紧接着到 stderr 的错误消息的输出。

在类似的环境中是否存在与我的麻烦相似的已知问题?

如何诊断该问题的根源?

造成这种失败的主要原因是什么?

我应该尝试什么才能找到出路?

答案1

通过网络捕获,我的客户的管理员发现了 Novell 记录的一个匹配问题: 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 库来说不是必需的。

答案2

首先,您需要验证您的计算机是否运行了 SPN 引用的服务,是否与域控制器(“打开网络和共享中心”中的域网络)建立了信任关系;确定后,再次生成票证并按如下方式执行 kinit:

kinit-k-t prod.keytab cifs/[电子邮件保护]

结论:你错过了 REALM (@MYDOMAIN.COM)

注意:适用于 Windows 2008 EE X64 R2

相关内容