5.3.2.2. 使用用户名to-dn
可以在授权部分中定义规则,将用户的简单用户名转换为其可分辨名称。username-to-dn
元素指定如何将用户名映射到 LDAP 目录中条目的可分辨名称。这个元素是可选的,只有在以下两者都满足时才需要:
- 身份验证和授权步骤针对不同的 LDAP 服务器。
- 组搜索使用可分辨名称。
如果已执行 LDAP 身份验证,可以使用身份验证期间发现的 DN,这也适用于安全域支持 LDAP 和 Kerberos 身份验证以及 Kerberos 需要转换的实例。
它包含以下属性:
属性 | 描述 |
---|---|
force |
当 force 属性设置为 |
使用以下方法之一配置 用户名至dn
:
- username-is-dn
这将指定远程用户输入的用户名是用户的可分辨名称。
username-is-dn 示例
/core-service=management/security-realm=ldap-security-realm:add batch /core-service=management/security-realm=ldap-security-realm/authorization=ldap:add(connection=ldap-connection) /core-service=management/security-realm=ldap-security-realm/authorization=ldap/group-search=group-to-principal:add(iterative=true, group-dn-attribute="dn", group-name="SIMPLE", group-name-attribute="uid", base-dn="ou=groups,dc=group-to-principal,dc=example,dc=org", principal-attribute="uniqueMember", search-by="DISTINGUISHED_NAME") /core-service=management/security-realm=ldap-security-realm/authorization=ldap/username-to-dn=username-is-dn:add(force=false) run-batch
这将定义 1:1 映射,并且没有额外的配置。
- username-filter
将搜索指定属性与提供的用户名匹配。
username-filter 示例
/core-service=management/security-realm=ldap-security-realm:add batch /core-service=management/security-realm=ldap-security-realm/authorization=ldap:add(connection=ldap-connection) /core-service=management/security-realm=ldap-security-realm/authorization=ldap/group-search=group-to-principal:add(iterative=true, group-dn-attribute="dn", group-name="SIMPLE", group-name-attribute="uid", base-dn="ou=groups,dc=group-to-principal,dc=example,dc=org", principal-attribute="uniqueMember", search-by="DISTINGUISHED_NAME") /core-service=management/security-realm=ldap-security-realm/authorization=ldap/username-to-dn=username-filter:add(force=false, base-dn="dc=people,dc=harold,dc=example,dc=com", recursive="false", attribute="sn", user-dn-attribute="dn") run-batch
属性 描述 base-dn
要开始搜索的可分辨上下文名称。
递归
搜索是否扩展至子上下文。默认值为
false
。attribute
用户条目的属性,以尝试和匹配提供的用户名。默认为
uid
。user-dn-attribute
要读取的属性以获取用户的可分辨名称。默认值为 to
dn
。- advanced-filter
此选项使用自定义过滤器来查找用户的可分辨名称。
advanced-filter 示例
/core-service=management/security-realm=ldap-security-realm:add batch /core-service=management/security-realm=ldap-security-realm/authorization=ldap:add(connection=ldap-connection) /core-service=management/security-realm=ldap-security-realm/authorization=ldap/group-search=group-to-principal:add(iterative=true, group-dn-attribute="dn", group-name="SIMPLE", group-name-attribute="uid", base-dn="ou=groups,dc=group-to-principal,dc=example,dc=org", principal-attribute="uniqueMember", search-by="DISTINGUISHED_NAME") /core-service=management/security-realm=ldap-security-realm/authorization=ldap/username-to-dn=advanced-filter:add(force=true, base-dn="dc=people,dc=harold,dc=example,dc=com", recursive="false", user-dn-attribute="dn",filter="sAMAccountName={0}") run-batch
对于与
username-filter 示例中
的那些属性,其含义和默认值相同。还有一个额外的属性:属性 描述 filter
用于搜索用户条目的自定义过滤器,用户名将在
{0}
占位符中替换。重要这必须在过滤器定义后保持有效,以便在使用任何特殊字符(如
&
)时确保使用正确的格式。例如和 字符:
和 字符
。