我想编写一个用于管理Windows Active Directory的软件,这样我们就可以使用非技术人员来管理AD"而不知道它"。
我是否想将我的AD用作数据库并直接在其上运行查询,还是将数据缓存到更快的数据库(如mongo或其他东西)更好?
AD是否支持并行工作?如果两个用户在我的软件上工作,AD会处理锁和oracle这样的东西吗?
可以通过写入事件的AD回调,或者至少可以告诉我上次检查操作的增量,还是每次都需要读取所有操作?
答案 0 :(得分:1)
以下是答案:
问:我是否想将我的AD用作数据库并直接在其上运行查询,还是将数据缓存到更快的数据库(如mongo或其他东西)更好?
答:这取决于。编写一个直接查询AD的应用程序(如ADUC \ ADSI)在开发方面要比使用自己的缓存数据库便宜得多,速度更快。我建议使用LDAP API(而非ADSI)实现它,因为ADSI是LDAP上的包装器。 问:问:AD支持并行工作吗?如果两个用户在我的软件上工作,那么AD会处理锁和oracle这样的东西吗?答:是的,AD支持并行工作并负责锁定。
问:可以通过写入事件的AD回调,或者至少可以告诉我上次检查操作的增量,还是每次都需要读取所有操作?
答:有3种不同的change tracking techniques。我建议使用DirSync或USNChanged,因为更改通知旨在跟踪小范围内的更改,例如多个用户或组(而不是整个AD)。