从 OpenLDAP/Kerberos 迁移到 Active Directory

从 OpenLDAP/Kerberos 迁移到 Active Directory

我有一个运行良好的设置,使用 OpenLDAP 来获取用户信息,使用 Kerberos 来验证身份,但我们也需要 Windows 集成,为此我们决定将账户信息转移到 Active Directory 中可能是一个好主意。将帐户信息从 OpenLDAP 中转移非常简单且容易,但我有一个问题:如何将密码/验证信息从 MIT Kerberos 转移到 AD?

我知道它们之间可以进行某种委托,但这不能解决我的问题?或者我可以针对 MIT Kerberos KDC 进行 AD 身份验证吗?密码存储在 Kerberos 中的哈希中,因此我无法以明文形式移动它们。我想知道哈希是否在 MIT 和 AD 之间兼容,因为我也可以以加密形式将密码输入 AD。

有人有这方面的经验吗?除了要求所有用户更改密码,并且当所有身份验证从一个地方切换到另一个地方而没有任何共存时,会有一个大麻烦之外,您还有什么建议。

答案1

但我有一个问题:如何将密码/身份验证信息从 MIT Kerberos 移动到 AD?

你不需要。虽然 Kerberos 哈希值在系统之间必须相同,因为它们用作加密和解密密钥,但没有任何公共 API 允许直接设置它们。鉴于 AD 要求提供纯文本密码,而您的 LDAP/KRB5 安装会尽职尽责地丢弃它,您需要等待密码更改或打破基本规则并至少暂时以可逆形式保留密码,假设您有一些中间件可以将密码更改发送到您可以检测的 OpenLDAP/Kerberos。

我知道它们之间可以进行某种委托,但这不能解决我的问题吗?或者我可以针对 MIT Kerberos KDC 进行 AD 身份验证吗?

这是我们目前正在考虑的方法。使用 Kerberos 向 Windows 进行身份验证 这称为跨领域信任。需要注意一些重要事项。找到所有领域通用的加密类型至关重要,并且通常取决于 AD。您使用的 AD 版本通常决定了当天的加密。我发现设置它的最佳指南实际上来自 Microsoft:Windows Server 2003 的 Kerberos 互操作性分步指南。我遇到的关键问题是告诉它跨领域信任要使用哪种加密类型,很久以前编写的其他指南都没有提到这一点。

答案2

使用类似下面链接中的解决方案是一个好主意:

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 签名等...

答案3

Samba4 和 freeipa 可以允许 Windows 工作站进行身份验证。你考虑过其中之一吗?

相关内容