Я установил OpenLDAP как прокси AD в соответствии с : https://wiki.samba.org/index.php/OpenLDAP_as_proxy_to_AD
Все работает нормально для клиентов, использующих стандартный bindDN с полным атрибутом dn: (например, 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 пользователяPrincipalName с использованием rwm-rewriteRule из наложения rwm. Это не сработало, хотя работает со стандартными dn привязки (например, cn = jdoe, ou = users, dc = example, dc = com
)
Это не работает:
rwm-rewriteRule "(.+,)@example.com$" "cn=$1,ou=users,dc=example,dc=com" ":"
Это работает:
rewritin ou=users for ou=employees as a test:
rwm-rewriteRule "(. +,)? ou = users, dc = example, dc = com $" "$ 1ou = сотрудники, dc = example, dc = com" ":"
Есть ли способ переписать bindDN (скрытый) в 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
Правильно, что вы можете переписать DN с помощью slapo-rwm, но это должны быть DN.
Так что вы можете переписать короткий DN uid=user@example.com
на uid=user,dc=example,dc=com
даже путем поиска в записи с помощью фильтра (attr=user@example.com)
.
Но переписываемая краткая форма должна быть действительным представлением строки DN, как определено в RFC 4514, а не просто основным именем пользователя user@example.com
, как в MS AD.
См. примеры в slapo-rwm(5).
.