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