我有一个运行良好的设置,使用 OpenLDAP 获取用户信息并使用 Kerberos 进行身份验证,但我们也需要集成 Windows,为此我们决定迁移到 Active Directory 可能是一个好主意。从 OpenLDAP 移动帐户信息非常简单且容易完成,但我有一个问题:如何将密码/身份验证信息从 MIT Kerberos 移动到 AD?
我知道他们之间可以进行某种委托,但这不能解决我的问题吗?或者我可以对 MIT Kerberos KDC 进行 AD 身份验证吗?密码存储在 Kerberos 的散列中,所以我不能以明文形式移动它们。我想知道哈希值在 MIT 和 AD 之间是否兼容,因为我也可以以加密形式将密码输入 AD。
有没有人有这方面的经验?除了要求我的所有用户更改密码并且在所有身份验证从一个地方切换到另一个地方而没有任何共存时遇到一个主要麻烦之外,您还有什么建议。
你没有。虽然系统之间的 kerberos 哈希值必须相同,因为它们被用作加密和解密密钥,但没有一个公共 API 允许直接设置它们。鉴于 AD 要求为其提供明文密码,并且您的 LDAP/KRB5 安装尽职尽责地放弃了该密码,您需要等待密码更改或打破基本规则并至少暂时以可逆形式保留密码,假设您已经有一些中间件可以将密码更改发送到您可以检测的 OpenLDAP/Kerberos。
这是我们目前正在考虑的方法。使用 Kerberos 对 Windows 进行身份验证 这称为跨领域信任。需要注意的一些重要事项。找到所有领域通用的加密类型至关重要,通常取决于 AD。您使用的 AD 版本通常决定了当天的地下室。我发现的最佳设置指南实际上来自 Microsoft:Kerberos Interoperability Step-by-Step Guide for Windows Server 2003。我遇到的关键问题是告诉它使用哪种加密类型用于跨领域信任,这是很久以前编写的其他指南忽略提及的。
看看使用下面链接中的解决方案是个好主意:
http://www.centrify.com/solutions/unix-linux-identity-management.asp
就迁移而言,您可以在移动时使用像 PCNS 这样的系统进行密码同步。您将并行运行这两个系统一段时间,并让几个“每个人都重置密码”天,以确保它们在移动之前同步。对于您正在做的事情,PCNS 是比 Kerberos 互操作更好的解决方案。
PCNS(密码更改通知服务)在域控制器上运行,并将密码转发到“目标”,然后再设置密码。以下链接说明了如何执行此操作。
http://technet.microsoft.com/en-us/library/bb463208.aspx
如果您正在构建新的 AD 林,请在构建之前查看安全 GPO 设置。这样你就可以尽可能安全地开始......我说的是 NTLM 版本、ldap 签名等......
Samba4 和 freeipa 可以允许 windows 工作站进行身份验证。您是否考虑过其中之一。