Le principe de la règle de réécriture : si on trouve
un motif, on le traite, le change et ensuite on fait une requête sur
un autre annuaire :
database meta
suffix "dc=mathrice,dc=fr"
lastmod off
# Un annuaire distant :
uri "ldap://mathrice.math.u-bordeaux.fr:389/dc=mathrice,dc=fr"
rebind-as-user
#Règles de réécriture
rewriteEngine on
rewriteContext default
rewriteRule "uid=([a-Z]+),ou=login,o=umr([0-9]+),dc=mathrice,dc=fr"
\ "uid=%1,ou=login,o=umr%2,dc=mathrice,dc=fr" ":"
rewriteContext searchBase alias default
rewriteContext bindDn
rewriteRule "uid=([a-Z]+),ou=login,o=umr([0-9]+),dc=mathrice,dc=fr"
\
"uid=%1,ou=login,o=umr%2,dc=mathrice,dc=fr" ":"
rewriteContext searchFilter
rewriteRule "uid=([a-Z]+),ou=login,o=umr([0-9]+),dc=mathrice,dc=fr"
\
"uid=%1,ou=login,o=umr%{&&umr(%2)},dc=mathrice,dc=fr"
":"
rewriteRule "(.*\\()uid=([a-z]+)([0-9]+)(\\).*)" \
"%1&(uid=%2)(o:dn:=umr%3)%4 " "@"
Dans ces règles, si une requête est du style alfred1234
(1234 = un numéro à 4 chiffres), on décompose cette
requête en uid=alfred,ou=login,o=umr1234,dc=mathrice,dc=fr
De cette façon, un utilisateur va pouvoir s'authentifier sur son vrai
login, qui est alors garanti 100% unique.
SUITE