fabio tonon wrote:
> Ciao a tutti.
> 
> Mi chiamo Fabio. E' la prima volta che scrivo..(abbiate pazienza sono un
> very very neofita..).
> Allora ho un dubbio amletico che mi perseguita:
> Ho un applicazione che antispam. Ho diverse fonti LDAP (purtroppo sono tutte
> AD).
> Ecco allora il query filter è il sAMAccountname e il risultato della query
> deve esser il campo mail
> 
> Io pensavo di costruire un albero LDAP con OpenLDAP e far puntare questo a
> diversi alberi AD (su diversi naming context ... ovvero domini differenti
> tutti raggiungibili tramite porta 389).
> 
> Ho letto della possibilità di compilare openldap con le opzioni
> --enable-rewrite e --enable-ldap.
> Non so se mi sono spiegato bene ma la mia domanda è: si può fare?

Si.  In due modi:

1) back-meta: basta che compili con --enable-meta.
2) back-ldap (ed eventualmente "subordinate"): basta che compili con
--enable-ldap

Poi occorre capire bene che cosa ti serve: se il client cerca gia' con
sAMAccountName nel filtro, e se ti va bene che i diversi alberi AD si
presentino con il loro namingContext e tutto cio' che ti serve, al piu',
e' che sia possibile con una sola ricerca trovare un sAMAccountName
indipendentemente da quale AD lo ospita, allora ci vuole qualche
accorgimento in piu'

1) back-meta:

occorre definire come suffix il minimo comun denominatore tra i
namingContext; alla peggio la entry vuota.  Se per esempio hai
"dc=esempio,dc=it" e "dc=prova,dc=it" allora basta

suffix          "dc=it"

se invece hai "dc=esempio,dc=it" e "dc=example,dc=com" allora occorre

suffix          ""

quindi definisci tanti "uri" quanti sono gli AD, ognuno con

uri             "ldap://ldap.esempio.it/dc=esempio,dc=it";

uri             "ldap://ldap.prova.it/dc=prova,dc=it";

2) back-ldap:

se non ti serve la possibilita' di cercare con una sola operazione in
tutti i database basta che definisci un database ldap per ogni AD.

Se invece ti serve poter cercare tutti i database con una sola
operazione occorre innanzitutto capire qual'e' il minimo comun
denominatore, come prima.  Quindi, occorre definire un database locale
che lo contiene (ad esempio, un back-bdb).  Infine, occorre definire i
database remoti, aggiungendo ad ognuno "subordinate" e per ultimo il
database locale, che va popolato con le entry di ricucitura fino ai
database locali.  Per esempio,

database        ldap
suffix          "dc=esempio,dc=it"
subordinate
uri             "ldap://ldap.esempio.it";

database        ldap
suffix          "dc=example,dc=com"
subordinate
uri             "ldap://ldap.example.com";

database        bdb
suffix          ""

Il database va quindi popolato con le entries

dn: dc=it
objectClass: domain
dc: it

dn: dc=com
objectClass: domain
dc: com

Se invece dovesse occorrere anche una riscrittura di namingContext o di
attributi allora la cosa si complica un po', e occorre --enable-rewrite.

Ciao, p.



Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
http://www.sys-net.it
---------------------------------------
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   [EMAIL PROTECTED]
---------------------------------------


_______________________________________________
OpenLDAP mailing list
[email protected]
https://www.sys-net.it/mailman/listinfo/openldap


Rispondere a