打开LDAP和ActiveDirectory同步

我一直在search谷歌一段时间,找出最好的方式来同步用户数据库之间的OpenLDAP和ActiveDirectory,但没有一个明确的结果!

我想要实现的是,在OpenLDAP中有用户数据库,然后将它们填充到AD中,以便这些用户可以访问我所有的应用程序(电子邮件,VPN,文件服务器,打印服务器几乎所有的开源应用程序)。基本上我正在尝试做的是创build一个单一的SignOn数据库,所有用户可以有基于Windows和Linux的应用程序相同的密码,但我也想确保密码双向更新。

如果有人能分享他的经验,我将不胜感激。 谢谢!!

单向同步有什么作用,但是有一些“需要组装”的是:

OpenLDAP→OpenLDAP副本→ActiveDirectory

其中中间OpenLDAP副本使用perl后端 – 而不是持久性存储。 你必须编写一个perl模块,它提供了映射到LDAP API调用( bindsearchcomparemodifyadd等)的9(最后一次检查)函数。

在这个代码中,你可以做任何属性/对象类和名称映射可能是必需的。 源代码发行版中有示例configuration和代码( SampleLDAP.pm )。 估计1000-1500行代码用于强大的真实世界实现。

稍微简单一些的方法是轮询源目录中的修改对象,并推送更改,请参阅lsc项目以获取实现。 这种方法可能会有延迟和可扩展性问题。 使用轮询方法,您可以通过添加syncrepl控件来进行OpenLDAPsearch,从而为您提供简单的back-perl方法版本 – 优势在于您无需实现API,只需要处理search结果,这些search结果会在发生更改时推送给您,并传播它们(并在出错时保存状态/重新连接)。

你将必须认真思考密码处理,密码属性( userPasswordunicodePwd )是有效的魔术 。 我一直能够通过双向密码同步来说服人们,所以我只能提供基本的build议(除非我可以说出你的话);-)

通常的方法是在“复杂性检查”的幌子下捕获密码更改,根据需要创build密码散列/格式并传播这些值,请参阅PasswdHk 。

您可能能够“说服”您的用户使用替代方法的密码更改/重置,并可以传播更改,像自助服务密码 (这只是在一个地方设置密码虽然)。

红帽拥有一些有用的文档 (尽pipe底层的DS不再是OpenLDAP),大部分理论仍然适用。 AFAICT目前的版本尚未进入CentOS 6。

PCNS是微软的方式,我相信它可以将密码推送到OpenLDAP(但是本身不会)。 XMA声称做这两个,虽然我没有使用它。

另请参阅: Active Directory和OpenLDAP同步涵盖了使用Kerberos的混合方法,该方法消除了密码同步(尽pipe这使得AD有权进行身份validation)。

总之,从阅读lsc文档开始,它可能只是做你想要的。