使用Active Directory存储数据

时间:2011-01-05 14:43:49

标签: .net active-directory rdbms

我想知道当不是所有实体类型都是传统的AD实体(如组织单位,用户,组等)时,使用Active Directory来存储与应用程序相关的实体是一个明智的想法。

目前,我有一个由客户和用户组成的数据库架构。每个客户都可以拥有自己的部门。每个部门都可以拥有一组用户。每个用户都可以拥有名称,身份验证详细信息等。一位同事提醒我,Active Directory已经拥有支持这种层次结构的基础架构,因此从头开始重建可能不是最佳选择。

现在,我的问题是我需要更多的实体,而不仅仅是客户,用户等。我将不得不存储统计信息,文档,联系人(不是sysetm中的用户)和其他信息。要凭空挑选一个数字,可能还有10-20个其他实体类型,这些实体类型在Active Directory中尚不存在。这些实体类型将“链接”到客户,用户等。此系统中的用户不是我本地网络中的用户,而是通过互联网访问我的软件。

我对Active Directory的理解非常模糊,但据我所知,我必须扩展AD架构以存储我自己的实体。我必须在“组织单位”中添加属性,例如“文档列表”。

另一种方法可能是依赖AD中的组织单位,用户和组,并拥有一个单独的MSSQL数据库来存储剩余的数据。然后,我的MSSQL数据库必须使用它的唯一标识符或任何名称将“联系”等实体链接到特定的OU或用户。

对此有何想法?将复杂类型存储在AD而不是MSSQL数据库中是否明智?

(在任何一种情况下,实体很可能都不足以使性能成为非问题)

1 个答案:

答案 0 :(得分:0)

你所描述的当然可以做到。我已经见过了。你可能会发现AD非常沉重,并且在这种情况下会过度使用。管理和长期维护将是非常昂贵的。我不推荐它。使用数据库可能是适合您的解决方案。

或者,如果您没有现有数据库或者不想使用现有数据库,则可以使用Active Directory Lightweight Directory Services(AD LDS,以前称为ADAM)。这被设计为更轻量级的目录,并在其自己的架构中运行,因此您不必更改现有的AD基础结构。我过去曾经使用过它,而且维护起来要容易得多。另一个优点是它使用与AD相同的框架和SDK。