有谁知道有什么解决方案可以让我在 Windows Active Directory 和 Linux 服务器上托管的 LDAP 服务器之间进行用户帐户同步?我目前正在研究 FreeIPA (www.freeIPA.org) 和 389DS (http://directory.fedoraproject.org)。
我希望进行帐户同步,因为 AD 服务器部署在我们的总部,该总部尚未加固(没有生成器支持,只有 1 个互联网连接),而 Linux LDAP 服务器部署在加固的数据中心。数据中心的所有机器都是基于 Linux 的,而总部 90% 的机器都是 Windows。我知道 389DS 和 FreeIPA 具有用户同步功能,但它们也需要安装单独的程序来执行密码。我很好奇是否有人知道如何让 Linux 中的 Kerberos 从属服务器与 Linux LDAP 服务器配对以进行密码验证并从 Windows 服务器接收其更新,这样就不需要安装额外的应用程序,并且如果 AD 服务器发生故障,Linux 主机仍然能够针对 Linux LDAP 服务器进行身份验证。
我们的用户中大约有 50% 仅使用 Windows,45% 的用户同时使用 Windows 和 Linux,最后 5% 仅使用 Apple,我目前正在尝试获得一个系统,让用户只需知道 1 个用户名和密码即可登录我们所有的系统。
答案1
Active Directory 不仅仅是一堆 LDAP 对象和属性。一些互操作协议是专有的,许多安全敏感属性和 API 被锁定,无法通过任何类型的挂钩进行扩展,只能由受信任的代码调用。如果您有任何辅助目录可以写入您的密码更改,则使用不同的 GINA 来处理密码更新是 Windows 世界中常见的做法 (tm)。
您可能需要了解 Novell 的 eDirectory / NDS 和 SSO 功能集 - 它的设计很大程度上考虑了异构 Linux / Windows 环境。
答案2
如果您确实想正确地执行此操作,您应该在数据中心部署域控制器并让您的 Linux 系统对其进行身份验证(将 POSIX 扩展添加到 AD,并将每个需要 Unix 访问的 AD 帐户扩展为 POSIXAccount)。
尝试让 AD 服从于另一个身份验证/授权存储非常困难,而且容易失败。相比之下,Unix 系统通常能够轻松通过 AD 进行身份验证(通过将其视为普通的 LDAP)。
采用这种方式有许多好处 - 其中包括您有一个辅助 AD 域控制器(在数据中心,使用电池/UPS),并且您获得一个有效的单一身份验证存储。
答案3
Samba 4 刚刚发布;这是第一个“完全”兼容 Active Directory 的版本。
我还没有机会尝试一下,但是因为它是 *nix 原生的和兼容 AD,这可能是未来最好的方法。