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

DSML 标识映射

执行无证书的基本验证时,目录服务器将使用标识映射机制来确定接受 DSML 请求时要使用的绑定 DN。此机制将从 HTTP 请求的“授权”头中提取信息,以确定要用于绑定的标识。

DSML/HTTP 的默认标识映射由服务器配置中的以下条目指定。

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people
dsSearchFilter: (uid=${Authorization})

此配置表明,服务器应该使用 HTTP 用户 ID 作为目录服务器后缀中所存储的 DN 的 uid 值。例如,如果 HTTP 用户为 bjensen,服务器将尝试使用 DN uid=bjensen,ou=people 执行绑定。

因此,要使映射正常工作,您必须完成 dsSearchBaseDN 的值。例如,可以将 dsSearchBaseDN 的值更改为 ou=people,dc=example,dc=com。这样,如果 HTTP 用户为 bjensen,服务器将尝试使用 DN uid=bjensen,ou=people,dc=example,dc=com 执行绑定。

dn: cn=default,cn=HTTP-BASIC,cn=identity mapping,cn=config
objectClass: top
objectClass: nsContainer
objectClass: dsIdentityMapping
cn: default
dsSearchBaseDN: ou=people,dc=example,dc=com
dsSearchFilter: (uid=${Authorization})

在映射条目属性 dsSearchFilter 中,可以使用 ${header } 格式的占位符,其中 header 是 HTTP 头的名称。

以下是 DSML 映射中最常用的头。

${Authorization}

此字符串将由 HTTP“授权”头中包含的用户名替换。“授权”头同时包含用户名及其密码,但在此占位符中只替换用户名。

${From}

此字符串将由 HTTP“发件人”头中可能包含的电子邮件地址替换。

${host}

此字符串将由 DSML 请求 URL 中的主机名和端口号(即服务器的主机名和端口号)替换。

要使 DSML 请求执行其他类型的标识映射,请为 HTTP 头定义新的标识映射。

Procedure为 HTTP 头定义新的标识映射

  1. 编辑默认的 DSML-over-HTTP 标识映射,或为此协议创建自定义映射。

    映射条目必须位于 cn=HTTP-BASIC,cn=identity mapping,cn=config 条目下。

    可以从命令行中使用 ldapmodify 命令添加此条目,如使用 ldapmodify 添加条目所述。

  2. 重新启动目录服务器以使新映射生效。

    将首先评估自定义映射。如果没有成功的自定义映射,则评估默认映射。如果所有映射都无法确定 DSML 请求的绑定 DN,将禁止并拒绝该 DSML 请求(错误 403)。