将 Active Directory 同步到数据库

将 Active Directory 同步到数据库

我们希望让客户能够自行管理他们的用户。目前我们拥有大约 300 个客户,最多可容纳 10,000 名用户。

除了创建、更新和删除用户之外,他们还会经常阅读有关用户的信息,以获取静态数据和其他有用的信息。所有这些功能都应该可以从用户通过 Citrix 或类似程序访问的 Intranet 网页(.NET Framework 4)获得。

现在的问题是,我们真的希望用户不要直接查询 AD,而是让他们访问与 AD 同步的数据库。每天运行几次同步就足够了(可能每 5 小时一次)。当他们创建用户时,它不应该立即可用,而是在两天内进行审核然后创建(下一步是删除此手动审核,但这超出了这个问题的范围)。

您如何看待 AD 的这种同步?是否有人有过这种经验?其他组织是否也这样做过?在这些组织中,您会收到大量请求,而数据库比 AD 更能处理这些请求(我猜)?

是否有任何技术可以编写此类脚本来将 AD 与数据库表同步?我主要关心的是组/成员关系,这可能相当复杂。或者是否有软件可以将 AD 与数据库同步?

任何评论都将不胜感激。谢谢。

答案1

您可以设置轻量级目录服务(以前称为 ADAM),将 AD 架构和对象复制到外部 LDAP DB,用户可以查询并获取您所说的信息。这样,您就可以通过仅同步要发布的对象而不公开其他 AD 对象来具体说明对外公开的内容。

答案2

从数据库同步 Active Directory 是一个非常常见的要求 - 不一定是您描述的用例,但更常见的是对于使用将员工存储在数据库中的 HR 工具来管理员工的公司。

您可以使用以下方法轻松将数据库内容同步到 ADLDAP 同步连接器 (LSC)这是一个为此目的而专门设计的开源工具。简而言之,这个工具可以替代您可能手写的脚本,并减少您遇到的错误,同时还增加了各种功能,使同步更加容易。

我已经为超过 70,000 名用户(包括组成员)设置了从 Oracle DB 到 LDAP 服务器的类似同步(请记住 AD 也是 LDAP 服务器)。首次初始化后,同步在不到 10 分钟的时间内完成。

无论您是否采用 LSC,以下链接都应该会引起您的兴趣:有关与 Active Directory 同步数据的许多技术技巧

答案3

如果你有一些编程技能,你可以设置和调整压力压力。 它包含了:

  • 将 AD 与 OpenLDAP 服务器或 SQL 数据库同步的 perl 脚本。
  • AUnix 服务守护进程,它允许您同步密码。

相关内容