我一直在挖掘谷歌洞找出最佳的方式来同步AD和OpenLDAP之间的用户数据库。 我想要实现的是,在AD中拥有用户数据库,然后将这些用户传播到OpenLDAP,以便这些用户可以访问我的所有应用程序(电子邮件,VPN,文件服务器,打印服务器几乎所有的开源应用程序)。 我想创build一个单一的数据库login,所有用户可以有相同的密码为基于Windows和Linux的应用程序。 我也想确保密码双向更新。 如果有人能分享他的经验,我将不胜感激。 谢谢!!
我曾经为一个项目做过一次 – 祝你好运! 你有AD服务器的pipe理权限吗? 你可能需要它。 与你的ADpipe理员交朋友:-)
你能否详细说明你的项目是关于什么?
问题是如果您只需要您的用户/应用程序对ActiveDirectory或LDAP进行身份validation,或者如果您需要您的应用程序访问存储在ActiveDirectory中的数据,并可能增加或修改条目。
如果您只需要进行身份validation,那么就像Justin指出的那样,您只需要在ActiveDirectory服务器上绑定一个匿名或密码保护(没有太多额外的值的IMHO)绑定帐户即可。 与您的ActiveDirectorypipe理员联系。
如果您想使用ActiveDirectory的内容作为您自己的用户logging的基础,并且可能需要增加或修改数据,则可能需要设置自己的LDAP服务器(因为您的IT部门可能不会为修改“他们”的logging…)
ActiveDirectory看起来像LDAP,是相似的,但主要是在架构上的差异。
你会遇到几个问题:
我记得我在AD发现了很多不一致的logging,例如组织结构错误,人们logging中混杂着机器,设备,软件的logging – 呃! 和人员logging散布在模式(不是所有的人只在一个子树中logging,就像您在LDAP模式中所期望的那样)
… 要完成的 …
如果您只需要人员或应用程序对目录进行身份validation,则可能不值得完成所有这些操作 – 最好是直接通过绑定帐户使用AD。
使用openldap命令行工具尝试在UNIX命令行上针对ActiveDirectory进行身份validation。 这将帮助您了解过程和返回的数据。
让我看看我的旧项目笔记,我会更新这个
我希望这可以帮助你
要对OpenLDAP进行身份validation,您需要知道组织的“专有名称”(dn),“组织单位”(ou),身份validation人员的“公用名称”(cn)等值。但是,在这里不能给你一个完整的介绍…
最好在这里阅读OpenLDAP的文档: http : //www.openldap.org/doc/admin24/
最好在命令行上运行“ldapsearch”来尝试和validation您可以绑定/访问LDAP。 http://www.openldap.org/software/man.cgi?query=ldapsearch&apropos=0&sektion=0&manpath=OpenLDAP+2.0-Release&format=html
或在IBM网站上: http : //publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzahy%2Frzahyunderdn.htm
值得研究的选项可能是使用Active Directory进行身份validation,并使用现有的OpenLDAP进行授权:
http://www.openldap.org/doc/admin24/security.html#Pass-Through%20authentication
如上述文档中所述,您可以将您的用户名/密码validation委托给Kerberos。 实际上,给出的例子(见14.5.2)展示了如何设置这个以validationAD域。 您将需要在Active Directory中设置一个用户帐户,该用户帐户可以绑定到DC以运行LDAP查询。 此用户帐户应该没有权限访问任何Windows服务器,也不应该在任何敏感的安全组中。
希望有所帮助。
必须为我的公司解决同样的问题。
以Linux为中心,密码必须在以下各项之间同步:
现在,你遇到的主要问题是:
所以我想出了这个: https : //github.com/cedric-dufour/upwdchg ; 简而言之:
我所说的“本地”方法是指:
我在两年前做了类似的项目,我处于类似的位置,不知道从哪里开始,如何把两端联系在一起。
第一步:找出你想要完成的任务并写下来。 第二步:看看要求是否现实,完全可以完成。 如果不是,你愿意牺牲什么物品。 (这是需要很长时间的地方)。 第3步:select一个LDAP平台。 在你的情况下,你已经有一个现有的。 第四步:logging和testing。 第5步:切换计划是最重要的,因为如果你完成了所有想要的事情,这并不重要,但也要确保顺利过渡。 就我而言,我们不得不分阶段进行。
从阅读你上面的评论看起来你已经有OpenLDap在生产。 您的要求如下所示:
a)允许用户在AD上使用相同的密码策略。
b)用户帐户自动传播到LDAP。
回答a)您可以在LDAP中设置一个PAM pass-through模块,以通过Kerberos将密码validation委托给DC。 这样你就不会在两个地方保持密码的头痛。 我在389-DS LDAP上做过,文档链接应该足够了。 当用户进行身份validation时,PAM模块会检查LDAP中是否存在用户帐户,如果是,则将密码与krb5.so一起传递给PAM堆栈进行身份validation。 检查这里也应该适用的389-DS文档。
回答b)我打了所有的瓶子,想出一个方法来使用现成的解决scheme,但没有接近。 这是因为您必须按照帐户和组的架构。 所以我在一位同事的帮助下在perl中写了一个脚本,将用户和组从AD同步到LDAP。 f代码片段就在这里 。