使用 Acegi 保护 Java 应用程序,第 2 部分: 使用 LDAP 目录服务器
2010-03-18 00:00:00 来源:WEB开发网每个 LDAP 属性是由 RFC 定义的。LDAP 允许使用多个属性创建一个 DN,但是本文的示例只使用了以下 4 个属性:
dc(域组件)
o(组织)
ou(组织单元)
uid(用户 ID)
示例使用 dc 表示域,用 o 表示组织名称,ou 表示组织的不同单元,而 uid 表示用户。
由于 org 是根节点,其 DN 只需指定自身的名称(dc=org)。比较一下,manufacturingEnterprise 节点的 DN 是 o=manufacturingEnterprise,dc=org。当向下移动节点树时,每个父节点的 DN 被包含在其子节点的 DN 中。
将属性分组
LDAP 将相关的属性类型分到对象类中。例如,名为 organizationalPerson 的对象类所包含的属性定义了在组织内工作的人员(例如,职称、常用名、邮寄地址等等)。
对象类使用继承特性,这意味着 LDAP 定义了基类来保存常用属性。然后子类再对基类进行扩展,使用其定义的属性。LDAP 目录中的单个节点可以使用若干个对象类:本文的示例使用了以下几个对象类:
top 对象类是 LDAP 中所有对象类的基类。
当其他对象类都不适合某个对象时,将使用 domain 对象类。它定义了一组属性,任何一个属性都可以用来指定一个对象。其 dc 属性是强制性的。
organization 对象类表示组织节点,例如 图 2 中的 manufacturingEnterprise。
organizationalUnit 对象类表示组织内的单元,例如 图 1 中的 departments 节点及其子节点。
groupOfNames 对象类表示一组名称,例如某部门职员的名称。它具有一个 member 属性,该属性包含一个用户列表。图 1 中所有的组节点(例如 engineers 节点)使用 member 属性指定该组的成员。而且,示例使用 groupOfNames 对象类的 ou(组织单元)属性指定组用户的业务角色。
更多精彩
赞助商链接