Sun Java System Directory Server Enterprise Edition 6.3 管理指南

第 26 章 客户端和目录代理服务器之间的连接

有关客户端和目录代理服务器之间的连接、连接处理程序以及连接处理程序中使用的条件和策略的概述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的第 20  章 “Connections Between Clients and Directory Proxy Server”

本章包含以下主题:

创建、配置和删除连接处理程序

有关如何创建、配置和删除连接处理程序以及为数据视图配置相似性的信息,请参见以下过程。

Procedure创建连接处理程序

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 创建连接处理程序。


    $ dpconf create-connection-handler -h host -p port connection-handler-name
    
  2. (可选的)查看连接处理程序列表。


    $ dpconf list-connection-handlers -h host -p port
    

Procedure配置连接处理程序

开始之前

定义连接处理程序的属性时,必须参照为目录代理服务器实例定义的其他连接处理程序的属性。请考虑所有连接处理程序的属性,以确保这些属性指定了不同的条件集,并设置了正确的优先级。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看连接处理程序的详细列表,以了解其主要属性和相对优先级。


    $ dpconf list-connection-handlers -h host -p port -v
    Name                        is-enabled  priority  description
    --------------------------  ----------  --------  ---------------------------
    anonymous                   false       99        unauthenticated connections
    default connection handler  true        100       default connection handler

    创建目录代理服务器实例时,将创建 anonymousdefault connection handler 连接处理程序。

  2. 查看一个连接处理程序的所有属性。


    $ dpconf get-connection-handler-prop -h host -p port connection-handler-name
    

    新连接处理程序的默认属性如下所示:


    aci-source                     :  -
    allowed-auth-methods           :  anonymous
    allowed-auth-methods           :  sasl
    allowed-auth-methods           :  simple
    allowed-ldap-ports             :  ldap
    allowed-ldap-ports             :  ldaps
    bind-dn-filters                :  any
    data-view-routing-custom-list  :  -
    data-view-routing-policy       :  all-routable
    description                    :  -
    domain-name-filters            :  any
    enable-data-view-affinity      :  false
    ip-address-filters             :  any
    is-enabled                     :  false
    is-ssl-mandatory               :  false
    priority                       :  99
    request-filtering-policy       :  no-filtering
    resource-limits-policy         :  no-limits
    schema-check-enabled           :  false
    user-filter                    :  any
  3. 配置连接处理程序的优先级。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name priority:value
    

    优先级可以是 1 到 100 之间的任何数字,其中 1 为最高优先级。对于目录代理服务器实例,将按照优先级的顺序对连接处理程序进行评估。

  4. (可选的)指定连接处理程序的 DN 过滤属性。

    通过使用此属性,您可以基于部分或全部绑定 DN 来控制访问。此属性的值为正则表达式。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     bind-dn-filters:regular-expression
    

    绑定 DN 过滤器采用 JavaTM 正则表达式的格式。有关创建 Java 正则表达式的信息,请参见 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

    例如,要从 ou=people,dc=example,dc=com 下的用户向名为 secure-handler 的连接处理程序发送所有绑定,请按如下方式设置 bind-dn-filters 属性:


    $ dpconf set-connection-handler-prop -h host1 -p 1389 secure-handler \
     bind-dn-filters:"uid=.*,ou=people,dc=example,dc=com"
  5. (可选的)指定要用于此连接处理程序的请求过滤策略的名称。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

    其中 policy-name 是现有请求过滤策略的名称。有关如何创建和配置请求过滤策略的信息,请参见创建和配置请求过滤策略和搜索数据隐藏规则

  6. (可选的)指定要用于此连接处理程序的资源限制策略的名称。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

    其中 policy-name 是现有资源限制策略的名称。有关如何创建和配置资源限制策略的信息,请参见创建和配置资源限制策略

  7. 配置步骤 2 中列出的所有其他属性。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     property:value [property:value ...]

    例如,将连接处理程序配置为只接受 SSL 连接。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     is-ssl-mandatory:true

    要获取某个属性的描述及其有效值列表,请运行以下命令:


    $ dpconf help-properties connection-handler
  8. 启用连接处理程序。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name is-enabled:true
  9. 重新启动目录代理服务器实例以使更改生效(如有必要)。

    有关重新启动目录代理服务器的信息,请参见重新启动目录代理服务器

Procedure删除连接处理程序

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. (可选的)查看连接处理程序列表。


    $ dpconf list-connection-handlers -h host -p port
    
  2. 删除一个或多个连接处理程序。


    $ dpconf delete-connection-handler -h host -p port connection-handler-name [connection-handler-name ... ]

Procedure配置数据视图的相似性

为连接处理程序分配连接时,该连接上的请求将显示在为该连接处理程序配置的数据视图列表中,或者显示在所有已配置的数据视图中。该连接上的后续请求只对用于第一个请求的数据视图公开。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 启用数据视图的相似性。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     enable-data-view-affinity:true
  2. (可选的)将连接处理程序配置为将请求路由到数据视图的自定义列表。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name data-view-routing-policy:custom
  3. (可选的)配置数据视图列表。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list:view-name [data-view-routing-custom-list:view-name ...]

    要将数据视图添加到现有数据视图列表中,请使用以下命令:


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list+:view-name
    

    要从现有数据视图列表中删除数据视图,请使用以下命令:


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     data-view-routing-custom-list-:view-name
    

创建和配置请求过滤策略和搜索数据隐藏规则

有关请求过滤策略的概述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Request Filtering Policies for Connection Handlers”。有关搜索数据隐藏规则的概述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Search Data Hiding Rules in the Request Filtering Policy”

有关如何创建和配置请求过滤策略和搜索数据隐藏规则的信息,请参见以下过程。

Procedure创建请求过滤策略

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 创建请求过滤策略。


    $ dpconf create-request-filtering-policy policy-name
    
  2. 将请求过滤策略与某个连接处理程序关联。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     request-filtering-policy:policy-name
    

Procedure配置请求过滤策略

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看请求过滤策略的属性。


    $ dpconf get-request-filtering-policy-prop -h host -p port policy-name
    

    请求过滤策略的默认属性如下所示:


    allow-add-operations                :  true
    allow-bind-operations               :  true
    allow-compare-operations            :  true
    allow-delete-operations             :  true
    allow-extended-operations           :  true
    allow-inequality-search-operations  :  true
    allow-modify-operations             :  true
    allow-rename-operations             :  true
    allow-search-operations             :  true
    allowed-comparable-attrs            :  all
    allowed-search-scopes               :  base
    allowed-search-scopes               :  one-level
    allowed-search-scopes               :  subtree
    allowed-subtrees                    :  ""
    description                         :  -
    prohibited-comparable-attrs         :  none
    prohibited-subtrees                 :  none
  2. 通过设置步骤 1 中列出的一个或多个属性来配置请求过滤策略。


    $ dpconf set-request-filtering-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

    通过设置步骤 1 中列出的属性,可以配置请求过滤策略的以下功能:

    • 允许客户端执行的操作类型

    • 对客户端公开或隐藏的子树

    • 搜索操作的范围

    • 搜索过滤器的类型

    • 可以或无法在搜索和比较操作中进行比较的属性类型

Procedure创建搜索数据隐藏规则

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 为请求过滤策略创建一个或多个搜索数据隐藏规则。


    $ dpconf create-search-data-hiding-rule -h host -p port policy-name rule-name \
     [rule-name ...]
  2. 查看搜索数据隐藏规则的属性。


    $ dpconf get-search-data-hiding-rule-prop policy-name rule-name
    

    搜索数据隐藏规则的默认属性如下所示:


    attrs                              :  -
    rule-action                        :  hide-entry
    target-attr-value-assertions       :  -
    target-dn-regular-expressions      :  -
    target-dns                         :  -
  3. 通过设置步骤 2 中列出的一个或多个属性来配置搜索数据隐藏规则。


    $ dpconf set-search-data-hiding-rule-prop -h host -p port policy-name rule-name \
      property:value [property:value ...]

    可以使用以下规则操作之一:

    hide-entry

    不返回目标条目。

    hide-attributes

    返回目标条目,但过滤掉指定的属性。

    show-attributes

    返回目标条目,但过滤掉未指定的属性。

    此规则可应用于以下条目:

    target-dns

    具有指定 DN 的条目

    target-dn-regular-expressions

    具有指定 DN 模式的条目

    target-attr-value-assertions

    具有指定属性名称和属性值对 (attrName#attrValue) 的条目

    以下配置定义了用于隐藏 inetorgperson 类型条目的搜索数据隐藏规则。


    $ dpconf set-search-data-hiding-rule-prop -h host1 -p port my-policy my-rule \
      target-attr-value-assertions:objectclass#inetorgperson

请求过滤策略和搜索数据隐藏规则的示例

以下示例包含请求过滤策略和搜索数据隐藏规则。当请求过滤策略与搜索数据隐藏规则相结合时,将限制对数据的访问,如下所示:


示例 26–1 请求过滤策略的样例


allow-add-operations                :  false
allow-bind-operations               :  true
allow-compare-operations            :  true
allow-delete-operations             :  false
allow-extended-operations           :  false
allow-inequality-search-operations  :  true
allow-modify-operations             :  false
allow-rename-operations             :  false
allow-search-operations             :  true
allowed-comparable-attrs            :  all
allowed-search-scopes               :  base
allowed-search-scopes               :  one-level
allowed-search-scopes               :  subtree
allowed-subtrees                    :  ou=people,dc=sun,dc=com
description                         :  myRequestFilteringPolicy
prohibited-comparable-attrs         :  none
prohibited-subtrees                 :  none


示例 26–2 搜索数据隐藏规则的样例


attrs                              :  -
rule-action                        :  hide-entry
target-attr-value-assertions       :  objectclass:inetorgperson
target-dn-regular-expressions      :  -
target-dns                         :  -

创建和配置资源限制策略

有关资源限制策略的概述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Resource Limits Policies for Connection Handlers”。有关如何创建和配置资源限制策略,以及如何自定义搜索限制的信息,请参见以下过程。

Procedure创建资源限制策略

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 创建资源限制策略。


    $ dpconf create-resource-limits-policy -h host -p port policy-name
    

    有关如何修改资源限制策略的属性的信息,请参见配置资源限制策略

  2. 将资源限制策略与某个连接处理程序关联。


    $ dpconf set-connection-handler-prop -h host -p port connection-handler-name \
     resource-limits-policy:policy-name
    

Procedure配置资源限制策略

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看资源限制策略的属性。


    $ dpconf get-resource-limits-policy-prop -h host -p port policy-name
    

    资源限制策略的默认属性如下所示:


    description                                 :  -
    max-client-connections                      :  unlimited
    max-connections                             :  unlimited
    max-simultaneous-operations-per-connection  :  unlimited
    max-total-operations-per-connection         :  unlimited
    minimum-search-filter-substring-length      :  unlimited
    referral-bind-policy                        :  default
    referral-hop-limit                          :  default
    referral-policy                             :  default
    search-size-limit                           :  unlimited
    search-time-limit                           :  unlimited
  2. 通过设置步骤 1 中列出的一个或多个属性来配置资源限制策略:


    $ dpconf set-resource-limits-policy-prop -h host -p port policy-name \
      property:value [property:value ...]

Procedure自定义搜索限制

可以根据搜索基和搜索范围为搜索操作定义自定义限制。如果搜索操作的目标 DN 和搜索范围与指定条件相匹配,则会限制搜索结果的最大大小。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 创建一个或多个自定义搜索限制。


    $ dpconf create-custom-search-size-limit -h host -p port policy-name \
      custom-search-limit-name [custom-search-limit-name ...]
  2. 为自定义搜索限制设置条件。


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name one-level-search-base-dn:value subtree-search-base-dn:value
    
  3. 对返回的结果(当搜索符合步骤 2 中的条件之一时)数设置限制。


    $ dpconf set-custom-search-size-limit-prop -h host -p port policy-name \
     custom-search-limit-name search-size-limit:value
    
  4. 查看自定义搜索限制的属性。


    $ dpconf get-custom-search-size-limit-prop -h host -p port policy-name \
      custom-search-limit-name
    

    自定义搜索限制的默认属性如下所示:


    one-level-search-base-dn  :  -
    search-size-limit         :  unlimited
    subtree-search-base-dn    :  -

将目录代理服务器配置为基于连接的路由器

Directory Proxy Server 5.2 是一个基于连接的路由器。在 Directory Proxy Server 5.2 中,客户端连接将被路由到特定的目录服务器。该客户端连接上的所有请求都将发送到相同的目录服务器,直到连接断开或客户端解除绑定为止。

Directory Proxy Server 6.3 是基于操作的路由器。但是,为了实现兼容性,可以将此目录代理服务器版本配置为基于连接的路由器,如以下过程所述。

Procedure将目录代理服务器配置为基于连接的路由器

  1. 创建并配置一个或多个连接处理程序,如创建、配置和删除连接处理程序所述。

    还可以使用默认的连接处理程序。

  2. 将所有连接处理程序配置为只将请求路由到根数据视图

    例如:


    $ dpconf set-connection-handler-prop -h host1 -p 1389 myConnectionHandler \
     data-view-routing-policy:custom data-view-routing-custom-list:"root data view"
  3. 为每个后端 LDAP 服务器创建并配置数据源,如创建和配置 LDAP 数据源所述。

    例如:


    $ dpconf create-ldap-data-source -h host1 -p 1389 myDataSource host2:2389
  4. 创建并配置数据源池,如创建和配置 LDAP 数据源池所述。

    例如:


    $ dpconf create-ldap-data-source-pool -h host1 -p 1389 myDataSourcePool
  5. 将所有数据源连接到数据源池,如将 LDAP 数据源连接到数据源池所述。

    例如,


    $ dpconf attach-ldap-data-source -h host1 -p 1389 myDataSourcePool myDataSource
  6. 将每个数据源配置为使用绑定重放来验证客户端,如使用绑定重放转发请求所述。

    例如:


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 myDataSource \
     client-cred-mode:use-client-identity
  7. 配置客户端连接和数据源池之间的相似性,如配置客户端相似性所述。

    例如:


    $ dpconf set-ldap-data-source-pool-prop -h host1 -p 1389 myDataSourcePool \
     enable-client-affinity:true client-affinity-policy:read-write-affinity-after-write