Я установил OpenLDAP в качестве прокси-сервера AD в соответствии с: https://wiki.samba.org/index.php/OpenLDAP_as_proxy_to_AD
Все работает нормально у клиентов, использующих стандартные bindDN полного дн: атрибут (например, cn=jdoe,ou=users,dc=example,dc=com
)
Некоторые клиенты используют userPrincipalName так как bindDN, что совершенно нормально для AD, но не для прокси OpenLDAP, который выдает ошибку при подключении:
conn=1002 op=1 do_bind: invalid dn (jdoe@example.com)
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
Я пытался переписать bindDN из userPrincipalName с помощью rwm-rewriteRule
из rwm
наложение. Это не сработало, хотя работает со стандартным связыванием дн(например.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" ":"
Есть способ как переписать bindDN из jdoe@example.com к bindDN из cn = jdoe, ou = users, dc = example, 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