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

设置引用

可以使用引用通知客户端应用程序应该联系哪个服务器(如果无法在本地获取此信息)。引用是指向远程后缀或条目的指针,目录服务器将其代替结果返回给客户端。然后,客户端必须在引用中所指定的远程服务器上再次执行操作。

在以下三种情况下将发生重定向:

在任何情况下,引用都是一个 LDAP URL,其中包含主机名、端口号以及其他服务器上的 DN(可选)。例如 ldap://east.example.com:389

有关如何在目录部署中使用引用的概念性信息,请参见《Sun Java System Directory Server Enterprise Edition 6.1 Deployment Planning Guide》

以下部分介绍设置目录默认引用以及创建和定义智能引用的过程。

设置默认引用

客户端应用程序在某个 DN 上提交操作时,如果由目录服务器维护的任何后缀都不包含该 DN,则会将默认引用返回给该客户端应用程序。服务器将返回定义的所有引用,但不会定义返回引用的顺序。

Procedure设置默认引用

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

  1. 使用 dsconf 命令行实用程序设置一个或多个默认引用。


    $ dsconf set-server-prop -h host -p port suffix-DN referral-url:referral-URL
    

    例如:


    $ dsconf set-server-prop -h host1 -p 1389 dc=example,dc=com \
     referral-url:ldap://east.example.com:1389

设置智能引用

智能引用允许您将目录条目或目录树映射到特定的 LDAP URL。使用智能引用时,可以将客户端应用程序引用到特定服务器或特定服务器上的特定条目。

智能引用通常指向另一个服务器上具有相同 DN 的实际条目。但是,您可以将智能引用定义为指向相同服务器或不同服务器上的任何条目。例如,您可以将具有以下 DN 的条目定义为智能引用:


uid=bjensen,ou=People,dc=example,dc=com

该智能引用指向服务器 east.example.com 上的另一个条目:


cn=Babs Jensen,ou=Sales,o=east,dc=example,dc=com

目录使用智能引用的方式应符合 RFC 4511 的 4.1.10 部分所指定的标准 (http://www.ietf.org/rfc/rfc4511.txt)。

Procedure创建和修改智能引用

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

  1. 要创建智能引用,请使用 referralextensibleObject 对象类创建条目。

    referral 对象类允许使用应包含 LDAP URL 的 ref 属性。extensibleObject 对象类允许您将任何模式属性用作命名属性,以便与目标条目相匹配。

    例如,要定义以下可返回智能引用(而不是条目 uid=bjensen)的条目,请使用如下命令:


    $ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
    Enter bind password:
    dn: uid=bjensen,ou=People,dc=example,dc=com
    objectclass: top
    objectclass: extensibleObject
    objectclass: referral
    uid: bjensen
    ref: ldap://east.example.com/cn=Babs%20Jensen,ou=Sales,o=east,dc=example,dc=com

    注 –

    服务器将忽略 LDAP URL 中位于空格后的所有信息。因此,在用作引用的任何 LDAP URL 中,都必须使用 %20 代替空格。其他特殊字符必须进行转义。


    定义智能引用之后,对 uid=bjensen 条目的修改实际上将在其他服务器的 cn=Babs Jensen 条目上执行。ldapmodify 命令将自动跟踪引用,例如:


    $ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
    Enter bind password:
    dn: uid=bjensen,ou=People,dc=example,dc=com
    changetype: replace
    replace: telephoneNumber
    telephoneNumber: (408) 555-1234
  2. (可选的)要修改智能引用条目,请使用 ldapmodify-M 选项:


    $ ldapmodify -M -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
    Enter bind password:
    dn: uid=bjensen,ou=People,dc=example,dc=com
    changetype: replace
    replace: ref
    ref: ldap://east.example.com/cn=Babs%20Jensen,ou=Marketing,o=east,dc=example,dc=com