Sun Java System Web Server 7.0 管理员指南

动态组

动态组具有一个 groupOfURLs 对象类 objectclass,可以没有也可以具有多个 memberURL 属性,其中每个属性都是一个描述一组对象的 LDAP URL。

对于 LDAP 服务,如果您希望基于任何属性自动将用户分组,或者希望将 ACL 应用于包含匹配 DN 的特定组,则 Web Server 允许您创建动态组。例如,您可以创建一个组,该组将自动包括任何包含属性 department=marketing 的 DN。如果您对 department=marketing 应用搜索过滤器,搜索将返回一个组,其中包含具有属性 department=marketing 的所有 DN。然后,您可以从基于此过滤器的搜索结果中定义一个动态组。随后,您可以为所获得的动态组定义一个 ACL。

Web Server 如何实现动态组

Web Server 在 LDAP 服务器模式中以 objectclass = groupOfURLs 的方式实现动态组。groupOfURLS 类可以有多个 memberURL 属性,每个属性都包含一个 LDAP URL,用于枚举目录中的一组对象。组的成员是这些对象集的总和。例如,下面的组只包含一个成员 URL:

ldap:///o=mcom.com??sub?(department=marketing)

该实例描述了一个由 "o=mcom.com" 下属于 "marketing" 部门的所有对象组成的集合。LDAP URL 可以包含搜索基 DN、范围和过滤器;但是,不包含主机名和端口。这意味着您只能引用同一个 LDAP 服务器上的对象。LDAP URL 支持所有范围。

DN 会自动包含在内,因而不需要您向组中添加每个 DN。组是动态变化的,因为每次 ACL 验证需要查找组时,Sun ONE Web Server 都将执行一个 LDAP 服务器搜索。ACL 文件中使用的用户和组名与 LDAP 数据库中的对象的 cn 属性相对应。


注 –

Web Server 使用 cn (commonName) 属性作为 ACL 的组名。


dbswitch.conf 配置文件(将 ACL 数据库名称与实际的 LDAP 数据库 URL 相关联)和 ACL 文件(定义要用于每个 ACL 的数据库)中,同时定义了从 ACL 到 LDAP 数据库的映射。例如,如果需要名为 "staff" 的组中成员的基本访问权限,ACL 代码将查找对象类为 groupOf<anything> 且 CN 被设置为 "staff" 的对象。该对象可通过两种方法来定义组成员,即显式枚举出成员 DN(与静态组的 groupOfUniqueNames 的操作相同),或指定 LDAP URL(例如,groupOfURLs)。

组可以同时为动态和静态

组对象可以同时包含 objectclass = groupOfUniqueMembersobjectclass = groupOfURL;因此,"uniqueMember" 和 "memberURL" 属性都是有效的。组成员是其静态和动态成员的总和。

动态组对服务器性能的影响

使用动态组对服务器的性能有所影响。如果您正在测试组成员,而该 DN 不是静态组的成员,则 Web Server 将检查数据库的基 DN 中的所有动态组。要完成此任务,Web Server 需要检查每个 memberURL 是否匹配,方法是对照用户 DN 检查其基 DN 和范围,然后使用用户 DN 作为基 DN 并使用 memberURL 的过滤器来执行基搜索。这一过程将产生大量的单个搜索操作。

创建动态组的指导原则

使用 Administration Server 创建新动态组时,请考虑以下指导原则:

表 8–1 动态组:必需的参数

参数名 

描述 

<base_dn>

搜索基的标识名 (Distinguished Name, DN),或 LDAP 目录中开始执行搜索的起点。此参数通常被设置为目录的后缀或根,例如 "o=mcom.com"。

<attributes>

搜索将返回的属性列表。要指定多个属性,请使用逗号来分隔属性(例如,"cn,mail,telephoneNumber");如果不指定属性,将返回所有属性。请注意,检查动态组成员资格时将忽略此参数。

<scope>

搜索范围,其值可以是: 

  • base 仅检索 URL 中所指定标识名 (<base_dn>) 的相关信息。

  • one 检索 URL 中所指定标识名 (<base_dn>) 的下一级条目的相关信息。此范围不包括基条目。

  • sub 检索 URL 中所指定标识名 (<base_dn>) 下面所有级别的条目的相关信息。此范围包括基条目。

    此参数是必需的。

<(filter)>

应用于指定搜索范围内的条目的搜索过滤器。如果您使用的是 Administration Server 表单,则必须指定此属性。请注意,必须带有括号。 

此参数是必需的。 

请注意,<attributes><scope><(filter)> 参数是根据它们在 URL 中的位置来标识的。因此,即使不想指定任何属性,也需要使用问号来表明不限制该字段。