用户存储在AD中时,Windows机器是否可以通过Kerberos进行Sambavalidation?

我知道这个标题可能不太清楚,但我想不出什么更好的。

我们有两个域,我们称之为example.comsubnet.example.com 。 前者由Active Directory服务器进行pipe理,并包含一些服务器以及所有Windows客户端。 后者包含许多Unix机器(主要是Solaris)。 从SUBNET.EXAMPLE.COMEXAMPLE.COM有一个单向的信任。

有了这个设置,通常的东西工作正常,如SSHlogin,NFSv4等

现在,我想要做的是在subnet.example.com的Unix机器上运行Samba服务器。 Windows用户应该能够访问这些服务器上的文件。

我在Samba中设置了Kerberos身份validation,并且可以在任何Linux客户端上正常工作。 当我有一个Kerberos TGT时,我可以通过smbclient访问机器,如果我删除它,它将停止工作。 用户映射完全按照预期工作。 机器在MIT Kerberos服务器上有cifs/hostname条目。

但是,Windows客户端无法做到这一点。 在查看Samba日志时,我可以看到Samba服务器试图与AD服务器交谈,但由于Samba服务器尚未joinAD域,因此不允许这样做。

所以,我听到你问: “你为什么不joinAD域呢?” 。 答案是,我无法做到这一点,因为子网上的系统是正在安装和重新安装的testing系统,通常每天多次,我们不希望有一个ADpipe理员configuration这个(并删除它们以及)每次testing系统安装或脱机。

另外,对于Linux客户端来说,一切都是完美的,这使我相信应该有可能以某种方式来实现这一点。

所以,我的问题是:这是可能的吗? Windows中是否存在一些限制,阻止它们成为正常Kerberos领域的客户端? 如果是这样,这个问题最好的解决方法是什么?

我解决了这个问题。 问题是Windows客户端不知道subnet.example.com属于不同的领域。 解决办法是通知客户这一点。 可以用以下两个命令完成,我相信我类似于在Unix系统上的krb5.conf添加域信息:

 ksetup /addkdc SUBNET.EXAMPLE.COM hostname.of.kerberos.server ksetup /addhosttorealmmap .subnet.example.com SUBNET.EXAMPLE.COM 

我这样做后,客户端身份validation正常工作。