20.14. 使用 Active Directory 格式的用户名进行身份验证
当您连接到目录服务器时,您必须指定用户的可分辨名称(DN),如
uid=user_name,ou=People,dc=example,dc=com
进行验证。但是 DN 可能会难以记住。如果启用并配置 AD DN 插件,您可以使用 Active Directory 格式的用户名,如 user_name
或 user_name@域
,而不是 DN。
启用插件和用户使用不是 DN 格式的用户名连接到目录后,目录服务器会根据插件的配置搜索 DN。如果搜索返回一个 DN,Directory 服务器会使用此 DN 进行身份验证。如果返回任何或多个 DN,身份验证会失败。
注意
您只能使用命令行启用和配置 AD DN 插件。
要启用并配置插件,使其使用
example.com
作为默认域:
- 添加 cn=addn,cn=plugins,cn=config 插件条目并设置默认域:
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=addn,cn=plugins,cn=config changetype: add objectClass: top objectClass: nsSlapdPlugin objectClass: extensibleObject cn: addn nsslapd-pluginPath: libaddn-plugin nsslapd-pluginInitfunc: addn_init nsslapd-pluginType: preoperation nsslapd-pluginEnabled: on nsslapd-pluginId: addn nsslapd-pluginVendor: 389 Project nsslapd-pluginVersion: 1.3.6.0 nsslapd-pluginDescription: Allow AD DN style bind names to LDAP addn_default_domain: example.com
插件条目中所需的addn_default_domain
参数会设置默认域。如果在身份验证过程中指定的用户名不包含域名,则插件会附加此域。 - 为默认域添加配置条目:
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=example.com,cn=addn,cn=plugins,cn=config changetype: add objectClass: top objectClass: extensibleObject cn: example.com addn_base: ou=People,dc=example,dc=com addn_filter: (&(objectClass=account)(uid=%s))
有关示例中使用的参数的详情,请查看 红帽目录服务器配置、命令和文件参考 中的描述。警告必须至少为默认域添加配置条目。如果缺少该条目,Directory 服务器将无法启动。 - 另外,您还可以按照上一步所述创建额外的域配置来支持多个域名。每个域配置都可以使用不同的搜索基础和过滤器。
- 重启 Directory 服务器实例:
# dsctl instance_name restart