[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Proxying AD : troubles with the comma character
Emmanuel Lesouef wrote:
First of all, thanks for your answer and sorry for my late reply...
Le Wed, 01 Jul 2009 16:57:24 +0200,
Michael Ströder <michael@stroeder.com> a écrit :
It should work. You should provide more details:
- relevant excerpts of slapd.conf
Here it is (skipped unrelevant parts) :
moduleload back_ldap
moduleload back_meta
moduleload rwm
database meta
overlay rwm
back-meta has built-in rwm capabilities, you should not use the rwm
overlay with it.
suffix "dc=authentification,dc=crbn"
uri "ldap://dc1.crbn.intra/ou=ad,dc=authentification,dc=crbn"
"ldap://dc2.crbn.intra"
suffixmassage "ou=ad,dc=authentification,dc=crbn"
"ou=CRBN,dc=crbn,dc=intra"
rwm-rewriteEngine on
rwm-map attribute uid sAMAccountname
rwm-map objectclass inetOrgPerson user
rwm-rewriteContext bindDN
rwm-rewriteRule "(.+)2C(.+)" "$1\,$2"
same as above; use the above commands without the "rwm-" prefix.
In any case, "CN=DUPONT\, Harry, OU=DSI, OU=CRBN, DC=crbn,DC=intra" and
"CN=DUPONT\2C Harry, OU=DSI, OU=CRBN, DC=crbn,DC=intra" are perfectly
equivalent from an LDAP point of view. If AD does not recognize this,
then it's broken.
If you want back-meta to map "\2C" into "\," you need to use
database meta
suffix "dc=virtual"
uri "ldap://:9011/dc=virtual"
rewriteEngine on
rewriteContext searchResult
rewriteRule "^(.+,)?dc=real$" "$1dc=virtual"
rewriteContext searchAttrDN alias searchResult
rewriteContext matchedDN alias searchResult
rewriteContext referralDN alias searchResult
rewriteContext default
rewriteRule "^(.+,)?dc=virtual$" "$1dc=real"
rewriteRule "^(.*)\\\\2C(.*)$" "$1\\,$2"
See notes about escaping in slapd.conf(5) and slapd-meta(5) and
slapo-rwm(5).
uri "ldap://mail.adl.crbn.fr/ou=adl,dc=authentification,dc=crbn"
suffixmassage "ou=adl,dc=authentification,dc=crbn"
"dc=adl,dc=crbn,dc=fr"
uri "ldap://mail.adl.crbn.fr/ou=lycees,dc=authentification,dc=crbn"
suffixmassage "ou=lycees,dc=authentification,dc=crbn" "dc=lycee"
- which LDAP client is doing what (try to reproduce the issue with
OpenLDAP's command-line client)
The result is the same with ldapsearch and with ldapbrowser (java
client v2.8.2).
- how does the AD entry look like
Here is an example of an OpenLDAP entry (skipped some attributes not in openldap schema) :
dn: cn=DUPONT\, Harry, ou=DSI, ou=ad, dc=authentification,dc=crbn
^^^ this is a VERY UNFORTUNATE naming convention, as "," is a special
char in DN. The real fix would be to change it into something less
braindead.
mail: h.dupont@crbn.fr
objectGUID:: YBJCaXTvv73vv71C77+9IO+/ve+/ve+/vXvvv73vv70=
uid: dupont_h
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
company: DSI
name: DUPONT, Harry
sn: DUPONT
telephoneNumber: 9042
cn: DUPONT, Harry
title: Reprographe
homeDirectory: \\gamelle\users$\dupont_h
givenName: Harry
displayName: DUPONT Harry
userPrincipalName: dupont_h@crbn.intra
distinguishedName: cn=DUPONT\2C Harry,ou=DSI,ou=ad,dc=authentification,dc=crbn
And here is the original AD entry :
dn: CN=DUPONT\, Harry, OU=DSI, OU=CRBN, DC=crbn,DC=intra
mail: h.dupont@crbn.fr
objectGUID:: YBJCaXTvv73vv71C77+9IO+/ve+/ve+/vXvvv73vv70=
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
company: DSI
name: DUPONT, Harry
sn: DUPONT
telephoneNumber: 9042
cn: DUPONT, Harry
title: Reprographe
homeDirectory: \\gamelle\users$\dupont_h
givenName: Harry
displayName: DUPONT Harry
userPrincipalName: dupont_h@crbn.intra
distinguishedName: CN=DUPONT\, Harry,OU=DSI,OU=CRBN,DC=crbn,DC=intra
sAMAccountName: dupont_h
Notice the distinguishedName in the two examples... It is not rewriten, but it's another question...
That's because slapd knows nothing about the "distinguishedName"
attribute, as it's not standard track. If you define it as a DN-valued
attribute, then back-meta can rewrite it, as soon as you instruct it to
do so (e.g. by using the "suffixmassage" directive).
p.