2009-04-03 4 views
7

Sono molto in sintonia con la modellazione relazionale, ma nuovo per la modellazione LDAP e sto cercando le migliori pratiche per la progettazione di schemi LDAP. Mi piacerebbe sapere quali sono gli equivalenti di terza forma normale e altre pratiche nel mondo di LDAP?Best practice per la modellazione LDAP

I collegamenti a white paper che si espandono su questo argomento sono molto apprezzati.

+0

Sono graditi tutti i collegamenti a elenchi completamente esaustivi delle migliori pratiche di modellazione LDAP. – McGovernTheory

risposta

9

Scegli uno schema standard, come core, cosine, inetOrgPerson, eduPerson, Java Objects, etc. appropriata per il vostro scopo previsto. La maggior parte dei server LDAP ha una collezione di valori predefiniti.

Preferire gli elementi esistenti, ma se è necessario extend the schema, aggiungere prefisso a comCompany (nome di dominio della propria azienda o altro identificatore univoco) per evitare conflitti da elementi standard futuri.

2

LDAP è intrinsecamente NON compatibile con anche la prima forma normale - alcuni dei suoi attributi possono contenere più valori.

LDAP è un sistema progettato per prestazioni di lettura/ricerca ottimali, ad es. è più appropriato in uno scenario in cui leggerete/guardate il modo dei dati più che cambiandolo (-> directory, la rubrica della vostra azienda non cambierà dozzine volte al giorno).

LDAP non è progettato per la sostituzione o la concorrenza con il sistema di database relazionale standard che eccellono nell'immissione/trasformazione dei dati, dove un gran numero di operazioni inserirà e/o aggiornerà i dati. Questo è ciò per cui gli RDBMS sono perfettamente adatti.

Quindi, in chiusura: LDAP contro RDBMS è davvero un antipasto - e i due mondi sono abbastanza distinti e molto diversi nel loro stile di lavoro. Non consiglierei di provare ad applicare ciecamente qualcosa da un mondo all'altro - sarà una brutta partita.

Come ispirazione per la progettazione dello schema LDAP, guarderei sicuramente Active Directory di Microsoft, eDirectory di Novell (o come si chiamano in questi giorni) e forse altre directory LDAP e impariamo dai loro progetti.

Marc

+1

Ho usato 3NF come analogia e sto semplicemente cercando un elenco enumerato di best practice per la modellazione di LDAP – McGovernTheory

+0

Anche le directory LDAP non implementano alcun tipo di integrità referenziale. – pjp

+0

1. Molti server di directory professionali hanno plug-in di integrità referenziale. 2. L'affermazione sulla "lettura più che sul cambiamento" non è più valida per i server moderni e di qualità. I server più recenti hanno un divario molto più stretto tra la ricerca/confrontare e aggiornare i tempi di risposta. –

4

La nostra esperienza mostra il disegno dello schema e il DIT è molto dipende dallo scopo del del server LDAP.

Per lo schema, è generalmente consigliabile attenersi allo "standard" del fornitore del settore o del server LDAP.

Per la struttura del DIT, a meno che non si tratti di un servizio di file e stampa (ad esempio Active Directory) o OES (Netware), in genere una struttura "piatta" si adatta meglio.

Se è un'implementazione di grandi dimensioni (ad esempio> 100k), i gruppi dovrebbero essere evitati, se possibile.

-Jim

3

Sulla base della mia esperienza denormalizzare il più possibile, come l'obiettivo, come detto in precedenza, con LDAP è ricerca molto veloce, ma questo significa che l'inserimento di record può richiedere più tempo, dopo un po ' . È inoltre importante assicurarsi di poter conservare i backup di LDAP.

Si consiglia di guardare la creazione di varie classi, ad esempio un utente, ma anche una classe per l'utente di autorizzazione, se necessario.

Guarda cosa probabilmente sarà necessario. Ad esempio, all'università in cui mi trovavo, ci siamo resi conto che alcune persone che hanno solo una relazione tangenziale con l'università avranno un account LDAP.

Come si scopre quali tipi di utenti o risorse saranno presenti nel ldap, allora sarà utile determinare come impostare le persone. Ad esempio, se si dispone di una classe che è solo un nome utente o identificatore e una password, e forse un certificato, allora sarebbe utile per la flessibilità.

Se si intende consentire alle persone di accedere dal proprio account unix, ci sono alcune classi che devono essere nello schema.