2.5. 使用引用
引用告知客户端应用程序要联系特定信息。当客户端应用程序请求本地服务器上不存在的目录条目或数据库被关闭以进行维护时,会发生此重定向。本节包含有关引用的以下信息:
有关如何在目录中使用引用的概念信息,请参阅 红帽目录服务器部署指南。
2.5.1. 以引用模式启动服务器 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
引用用于将客户端应用程序重定向到其他服务器,而当前服务器不可用,或者客户端请求当前服务器上未保存的信息。例如,在对目录服务器进行配置更改时,以引用模式启动目录服务器会将所有客户端引用给其他供应商,而该服务器不可用。使用 refer 命令 以引用 模式启动目录服务器。
使用 refer 选项运行 nsslapd。
ns-slapd refer -D /etc/dirsrv/slapd-instance_name [-p port] -r referral_url
# ns-slapd refer -D /etc/dirsrv/slapd-instance_name [-p port] -r referral_url
/etc/dirsrv/slapd-instance_name
/ 是目录服务器配置文件所在的目录。这是 Red Hat Enterprise Linux 中的默认位置。- port 是以引用模式启动的目录服务器的可选端口号。
- referral_url 是返回到客户端的引用。LDAP URL 的格式包含在 附录 C, LDAP URL 中。
2.5.2. 设置默认引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
目录服务器返回默认引用到在目录维护的任何后缀中提交 DN 操作的客户端应用程序。以下流程描述了使用命令行为目录设置默认引用。
2.5.2.1. 使用命令行设置默认引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用 dsconf config replace 命令,在
nsslapd-referral
参数中设置默认引用。例如,将 ldap://directory.example.com/
设置为默认引用:
dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-referral="ldap://directory.example.com/"
# dsconf -D "cn=Directory Manager" ldap://server.example.com config replace nsslapd-referral="ldap://directory.example.com/"
2.5.3. 创建智能引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
智能引用将目录条目或目录树映射到特定的 LDAP URL。使用智能引用时,客户端应用程序可以引用特定服务器或特定服务器上的特定条目。
例如,客户端应用程序请求目录条目 uid=jdoe,ou=people,dc=example,dc=com。为客户端返回一个智能引用,它指向服务器 directory.europe.example.com 中的条目 cn=john doe,o=people,ou=europe,dc=example,dc=com 。
目录使用智能引用的方式符合 RFC 2251 部分 4.1.11 中指定的标准。RFC 可从 http://www.ietf.org/rfc/rfc2251.txt 下载。
2.5.3.1. 使用命令行创建智能引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
要创建一个智能引用,创建带有 referral 对象类的相对目录条目,并将
ref
属性设置为引用 LDAP URL。
例如,要创建一个名为 uid=user,ou=people,dc=example,dc=com 的智能引用,其引用
ldap://directory.europe.example.com/cn=user,ou=people,ou=europe,dc=example,dc=com
:
注意
目录服务器在 LDAP URL 中的空格后忽略任何信息。因此,在用作引用的 LDAP URL 中使用 %20 而不是空格。
如果 DN 路径中已有引用,请将
-M
选项与 ldapadd 一起使用。有关智能引用的更多信息,请参阅 目录服务器部署指南。
2.5.4. 创建后缀引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
以下流程描述了在 后缀 中创建引用。这意味着,后缀使用引用而不是数据库或数据库链接来处理操作。
警告
当您将后缀配置为返回引用时,与后缀关联的数据库中包含的 ACI 会被忽略。另外,创建后缀引用只适用于非复制后缀。
2.5.4.1. 使用命令行创建后缀引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
创建后缀引用:
- (可选)创建一个 root 或 sub-suffix (如果不存在)。详情请查看 第 2.1.1 节 “创建后缀”。
- 将引用添加到后缀。例如:
dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix set --add-referral="ldap://directory.example.com/" database_name
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend suffix set --add-referral="ldap://directory.example.com/" database_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.4.2. 使用 Web 控制台创建后缀引用 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
创建后缀引用:
- 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录目录服务器”。
- 选择实例。
- 打开菜单。
- (可选)创建一个 root 或 sub-suffix (如果不存在)。详情请查看 第 2.1.1 节 “创建后缀”。
- 从列表中选择后缀,并打开 Referrals 选项卡。
- 单击。
- 填写字段以创建引用 URL。
- 单击。