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

第 25 章 目录代理服务器和后端 LDAP 服务器之间的连接

本章介绍如何配置目录代理服务器与后端 LDAP 服务器之间的连接。本章包含以下主题:

配置目录代理服务器和后端 LDAP 服务器之间的连接

创建 LDAP 数据源后,为该 LDAP 数据源打开的默认连接数为 6 个,即读取、绑定和写入操作各 2 个连接。要验证默认连接,请键入以下命令:


dpconf get-ldap-data-source-prop src-name num-read-init num-write-init num-bind-init
num-bind-init   :  2
num-read-init   :  2
num-write-init  :  2

当通信量增加时,将自动增加连接数。

有关如何配置目录代理服务器和后端 LDAP 服务器之间的连接的信息,请参见以下过程:

Procedure配置目录代理服务器和后端 LDAP 服务器之间的连接数


注 –

此过程将配置绑定操作的连接数。要配置读取或写入操作的连接数,请执行相同的过程,但要将 bind 替换为 readwrite


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

  1. 配置目录代理服务器和后端 LDAP 服务器之间用于绑定操作的初始连接数。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-init:new-value
    
  2. 配置绑定操作的连接数增量。

    增量是每次请求超出当前连接数的连接时所增加的连接数。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-incr:new-value
    
  3. 配置绑定操作的最大连接数。

    达到最大连接数时,将无法再添加更多的连接。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     num-bind-limit:new-value
    

Procedure配置连接超时

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

  1. 配置目录代理服务器可以尝试连接到数据源的最长时间。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     connect-timeout:new-value
    

    例如,将连接超时时间配置为 10 毫秒。


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name connect-timeout:10

Procedure配置连接池等待超时

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

  1. 配置目录代理服务器可以等待连接池中已建立的连接变为可用的最长时间。


    $ dpconf set-server-prop -h host -p port data-source-name \
     connection-pool-wait-timeout:value
    

    例如,将超时时间配置为 20 秒。


    $ dpconf set-ldap-data-source-prop -h host1 -p 1389 data-source-name \
     connection-pool-wait-timeout:20000

配置目录代理服务器和后端 LDAP 服务器之间的 SSL

以下过程介绍如何配置目录代理服务器和后端 LDAP 服务器之间的 SSL。

Procedure配置目录代理服务器和后端 LDAP 服务器之间的 SSL

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

  1. 配置目录代理服务器和后端 LDAP 服务器之间的安全端口。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     ldaps-port:port-number
    
  2. 配置何时将 SSL 用于目录代理服务器和后端 LDAP 服务器之间的连接。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name ssl-policy:value
    
    • 如果 valuealways,则始终将 SSL 用于连接。

    • 如果 valueclient,则会在客户端使用 SSL 时使用 SSL。

    如果连接未使用 SSL,则可以使用 startTLS 命令将此连接升级为 SSL。

    传输层安全 (Transport Layer Security, TLS) 是 SSL 的标准版本。TLS over LDAP 是经 IETF 批准的用于确保 LDAP 安全的标准方式。LDAPS 实际上是一种标准方式,但它会带来某种复杂性,例如为服务提供两个端口而不是仅使用一个端口。

  3. 选择 SSL 的协议和密码,如为目录代理服务器选择 SSL 密码和 SSL 协议所述。

  4. 将目录代理服务器配置为验证来自后端 LDAP 服务器的 SSL 服务器证书。

    有关信息,请参见将后端目录服务器的证书添加到目录代理服务器上的证书数据库中

  5. 如果后端 LDAP 服务器请求来自目录代理服务器的证书,请将目录代理服务器配置为发送 SSL 客户端证书。

    有关信息,请参见将证书导出到后端 LDAP 服务器

  6. 重新启动目录代理服务器实例以使更改生效。

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

为目录代理服务器选择 SSL 密码和 SSL 协议

目录代理服务器可以使用的密码和协议取决于所使用的 JavaTM 虚拟机 (JVMTM)。默认情况下,目录代理服务器使用为 JVM 计算机启用的默认密码和协议。

Procedure选择密码和协议的列表

可使用此过程检索受支持的密码和协议,以及启用的密码和协议。如果密码或协议受支持,则可启用或禁用该密码或协议。

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

  1. 查看受支持的密码和协议的列表。


    $ dpconf get-server-prop -h host -p port supported-ssl-cipher-suites \
     supported-ssl-protocols
  2. 查看已启用的密码和协议的列表。


    $ dpconf get-server-prop -h host -p port enabled-ssl-cipher-suites \
     enabled-ssl-protocols
  3. 启用一个或多个受支持的密码或协议。

    1. 启用一个或多个受支持的密码。


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-suites:supported-ssl-cipher-suite \
       [enabled-ssl-cipher-suites:supported-ssl-cipher-suite ...]

      要在现有的支持密码列表中添加密码,请使用以下命令:


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-suites+:supported-ssl-cipher-suite
      
    2. 启用一个或多个受支持的协议。


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol \
       [enabled-ssl-cipher-protocols:supported-ssl-cipher-protocol ...]

      要在现有的支持协议列表中添加协议,请使用以下命令:


      $ dpconf set-server-prop -h host -p port \
       enabled-ssl-cipher-protocols+:supported-ssl-cipher-protocol
      
  4. (可选的)禁用支持的密码或协议。


    $ dpconf set-server-prop -h host -p port \
     enabled-ssl-cipher-protocols-:supported-ssl-cipher-protocol
    

将请求转发到后端 LDAP 服务器

本部分包含可用于将请求从目录代理服务器转发到后端 LDAP 服务器的各种方法的相关信息。

使用绑定重放转发请求

有关目录代理服务器中客户端证书绑定重放的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Directory Proxy Server Configured for BIND Replay”。以下过程介绍如何使用绑定重放将请求从目录代理服务器转发到后端 LDAP 服务器。

Procedure使用绑定重放转发请求

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

  1. 配置数据源客户端证书,以便使用客户端提供的证书通过后端 LDAP 服务器的验证。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-client-identity

使用代理授权转发请求

有关目录代理服务器中代理授权的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Directory Proxy Server Configured for Proxy Authorization”

本部分包含的过程将使用代理授权和代理授权控件来转发请求。

Procedure使用代理授权转发请求

  1. 将数据源配置为接受版本 1 或版本 2 的代理授权控件。

    例如,将数据源配置为接受版本 1 的代理授权控件。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:true

    或者,将数据源配置为接受版本 2 的代理授权控件。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-use-v1:false
  2. 将数据源配置为使用代理授权通过到后端 LDAP 服务器的验证。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth

    要将数据源配置为使用只有写入操作权限的代理授权来通过后端 LDAP 服务器的验证,请运行以下命令:


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-proxy-auth-for-write

    使用代理授权控制执行只写操作时,客户端标识不会转发到 LDAP 服务器以用于读取请求。有关转发无客户端标识的请求的详细信息,请参见转发无客户端标识的请求

  3. 使用目录代理服务器的绑定证书配置数据源。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:DPS-bind-dn bind-pwd-file:filename
    
  4. 将数据源配置为启用超时。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     proxied-auth-check-timeout:value
    

    目录代理服务器使用 getEffectiveRights 命令验证客户端 DN 是否具有代理授权的相关 ACI。结果将缓存在目录代理服务器中,并在 proxied-auth-check-timeout 过期时进行更新。

  5. 重新启动目录代理服务器实例以使更改生效(如有必要)。

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

Procedure当请求包含代理授权控件时使用代理授权转发请求

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

  1. 将目录代理服务器配置为接受版本 1 和/或版本 2 的代理授权控件。


    $ dpconf set-server-prop -h host -p port allowed-ldap-controls:proxy-auth-v1 \
     allowed-ldap-controls:proxy-auth-v2

转发无客户端标识的请求

以下过程介绍如何将请求从目录代理服务器转发到后端 LDAP 服务器,而不转发客户端标识。

Procedure转发无客户端标识的请求

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

  1. 将数据源配置为使用目录代理服务器证书通过后端 LDAP 服务器的验证。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     client-cred-mode:use-specific-identity
  2. 使用目录代理服务器的绑定证书配置数据源。


    $ dpconf set-ldap-data-source-prop -h host -p port data-source-name \
     bind-dn:bind-dn-of-DPS bind-pwd-file:filename
    
  3. 重新启动目录代理服务器实例以使更改生效(如有必要)。

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

以备用用户身份转发请求

本部分包含有关如何以备用用户身份转发请求的信息。

Procedure配置远程用户映射

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

  1. 启用要以备用用户身份转发的操作。


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 指定包含远程映射 ID 的属性名称。


    $ dpconf set-server-prop -h host -p port \
     remote-user-mapping-bind-dn-attr:attribute-name
    
  3. 将目录代理服务器配置为远程映射客户端 ID。


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:true
  4. 配置默认映射。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    如果在远程 LDAP 服务器上找不到映射的标识,则客户端标识将映射到默认标识。

  5. 在远程 LDAP 服务器上的客户端条目中配置用户映射。

    有关在目录服务器中配置用户映射的信息,请参见代理授权

Procedure配置本地用户映射

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

  1. 启用要以备用用户身份转发的操作。


    $ dpconf set-server-prop -h host -p port enable-user-mapping:true
  2. 确保未将目录代理服务器配置为远程映射客户端 ID。


    $ dpconf set-server-prop -h host -p port enable-remote-user-mapping:false
  3. 配置默认映射。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-default-bind-dn:default-mapping-bind-dn \
     user-mapping-default-bind-pwd-file:filename
    

    如果远程 LDAP 服务器上的映射失败,客户端 ID 将映射到此 DN。

  4. 如果允许未经验证的用户执行操作,请为未经验证的客户端配置映射。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    有关如何允许未经验证的用户执行操作的信息,请参见配置匿名访问

  5. 配置客户端 ID。


    $ dpconf set-user-mapping-prop -h host -p port \
     user-bind-dn:client-bind-dn user-bind-pwd-file:filename
    
  6. 配置备用用户 ID。


    $ dpconf set-user-mapping-prop -h host -p port \
     mapped-bind-dn:alt-user-bind-dn mapped-bind-pwd-file:filename
    

Procedure为匿名客户端配置用户映射

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

  1. 为未经验证的客户端配置映射。


    $ dpconf set-server-prop -h host -p port \
     user-mapping-anonymous-bind-dn:anonymous-mapping-bind-dn \
     user-mapping-anonymous-bind-pwd-file:filename
    

    将在目录代理服务器中配置匿名客户端映射,因为远程 LDAP 服务器中不包含匿名客户端条目。

    有关允许未经验证的用户执行操作的信息,请参见配置匿名访问