我已根据以下内容将 OpenLDAP 设置为 AD 代理: https://wiki.samba.org/index.php/OpenLDAP_as_proxy_to_AD
对于使用标准绑定DN充分DN: 属性(例如cn=jdoe,ou=users,dc=example,dc=com
)
一些客户正在使用用户主体名称作为绑定DN,这对于 AD 来说完全没问题,但对于 OpenLDAP 代理来说就不行了,因为 OpenLDAP 代理在连接时会抛出一个错误:
conn=1002 op=1 do_bind: invalid dn ([email protected])
send_ldap_result: conn=1002 op=1 p=3
send_ldap_result: err=34 matched="" text="invalid DN"
send_ldap_response: msgid=2 tag=97 err=34
conn=1002 op=1 RESULT tag=97 err=34 text=invalid DN
我尝试重写绑定DN的用户主体名称使用rwm-rewriteRule
覆盖rwm
层。这不起作用,尽管它适用于标准绑定dn 的(例如cn=jdoe,ou=users,dc=example,dc=com
)
这不起作用:
rwm-rewriteRule "(.+,)@example.com$" "cn=$1,ou=users,dc=example,dc=com" ":"
这有效-重写ou=users
为ou=employees
测试:
rwm-rewriteRule "(.+,)?ou=users,dc=example,dc=com$" "$1ou=employees,dc=example,dc=com" ":"
有没有办法重写绑定DN的[电子邮件保护]到绑定DN的cn=jdoe,ou=用户,dc=示例,dc=com?
感谢您的任何想法:)
这是我当前的配置:
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
modulepath /usr/lib64/openldap/
moduleload back_ldap
moduleload rwm
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
database ldap
readonly yes
protocol-version 3
rebind-as-user yes
uri "ldap://X.X.X.X:389"
suffix "dc=example,dc=com"
overlay rwm
rwm-rewriteEngine on
rwm-rewriteRule "(.+,)@example.com$" "cn=$1,ou=users,dc=example,dc=com" ":"
logfile /var/log/slapd/slapd.log
loglevel -1
TLSCACertificatePath /etc/openldap/certs
TLSCertificateFile "OpenLDAP Server"
TLSCertificateKeyFile /etc/openldap/certs/password