3.8. Esempio del file di configurazione

Quello che segue è un esempio di file di configurazione, suddiviso con testo esplicativo. Definisce due database per gestire le parti differenti dell'albero X.500; entrambe sono istanze di database BDB. I numeri della linea indicati sono forniti soltanto come riferimento e non sono inclusi nel file reale. In primo luogo, la sezione di configurazione globale:


1.    # example config file - global configuration section
2.    include /usr/local/etc/schema/core.schema
3.    referral ldap://root.openldap.org
4.    access to * by * read

La linea 1 è un commento. La linea 2 include un altro file di config il quale contiene le definizioni dello schema del nucleo. La direttiva di rinvio nella linea 3 significa che le domande non locali ad uno dei database definiti sotto si riferiranno al server LDAP che funziona sulla porta standard (389) all'host root.openldap.org.

La linea 4 è un controllo di accesso globale. Si applica a tutti i campi (dopo qualsiasi comando di accesso al database-specifico applicabile).

La sezione successiva del file di configurazione definisce un backend BDB che gestirà le domande per cose nella porzione dell'albero "dc=example,dc=com". Il database viene replicato su due slapd slave, una sui truelies, l'altra su judgmentday. Gli indici devono essere mantenuti per numerosi attributi e l'attributo userPassword deve essere protetto da accessi non autorizzati.


5.     # BDB definition for the example.com
6.     database bdb
7.     suffix "dc=example,dc=com"
8.     directory /usr/local/var/openldap-data
9.     rootdn "cn=Manager,dc=example,dc=com"
10.    rootpw secret
11.    # replication directives
12.    replogfile /usr/local/var/openldap/slapd.replog
13.	   replica uri=ldap://slave1.example.com:389
14.            binddn="cn=Replicator,dc=example,dc=com"
15.            bindmethod=simple credentials=secret
16.    replica uri=ldaps://slave2.example.com:636
17.            binddn="cn=Replicator,dc=example,dc=com"
18.            bindmethod=simple credentials=secret
19.    # indexed attribute definitions
20.    index uid pres,eq
21.    index cn,sn,uid pres,eq,sub
22.    index objectClass eq
23.    # database access control definitions
24.    access to attr=userPassword
25.            by self write
26.            by anonymous auth
27.            by dn.base="cn=Admin,dc=example,dc=com" write
28.            by * none
29.    access to *
30.            by self write
31.            by dn.base="cn=Admin,dc=example,dc=com" write
32.            by * read

La linea 5 è un commento. L'inizio della definizione del database è contrassegnato dalla parola chiave del database alla linea 6. La linea 7 specifica il suffisso di DN per le domande da passare a questo database. La linea 8 specifica la directory in cui i file del database saranno presenti.

Le linee 9 e 10 identificano la voce "super user" del database e la password collegata. Questo campo non è soggetto a controllo di accesso o a limitazioni di scadenza o di formato. Ricordare di cifrare il rootpw usando slappasswd.

Esempio: rootpw{SSHA}Jq4xhhkGa7weT/0xKmaecT4HEXsdqiYA

Le linee da 11 a 18 sono per la replica. Vedere il link Replication per maggiori informazioni su queste direttive.

Le linee da 20 a 22 indicano gli indici da mantenere per i vari attributi.

Le linee da 24 a 32 specificano il controllo di accesso per i campi in questo database. Poiché questo è il primo database, i controlli si applicano anche ai campi non contenuti in alcun database (come la Root DSE). Per tutti i campi applicabili, l'attributo di userPassword è scrivibile dall'oggetto stesso e dall'oggetto "admin". Può essere usato per scopi di autenticazione/autorizzazione, ma non è altrimenti leggibile. Tutti gli altri attributi sono scrivibili dall'oggetto e dall'oggetto "admin" ma possono essere letti da tutti gli utenti (autenticati o no).

La sezione successiva dell'esempio del file di configurazione definisce un altro database BDB. Questo gestisce le domande che riguardano il sottoalbero dc=example,dc=net, ma è gestito dalla stessa entità del primo database. Si noti che senza la linea 39, l'accesso in lettura verrebbe concesso grazie alla regola globale di accesso contenuta nella linea 4.


33.    # BDB definition for example.net
34.    database bdb
35.    suffix "dc=example,dc=net"
36.    directory /usr/local/var/openldap-data-net
37.    rootdn "cn=Manager,dc=example,dc=com"
38.    index objectClass eq
39.    access to * by users read