Détail du fichier de configuration

Structure générale

La structure d'un fichier de configuration est la suivante

# global configuration directives
<global config directives>

# first backend definition
backend <typeA>
<backend-specific directives>

# first database definition & config directives of the first backend
database <typeA>
<database-specific directives>

# second database definition & config directives of the first backend
database <typeA>
<database-specific directives>

# second backend definition
backend <typeB>
<backend-specific directives>

# first database definition & config directives of the second backend
database <typeB>
<database-specific directives>

# second database definition & config directives of the second backend
database <typeB>
<database-specific directives>


	

On distingue les trois sections décrites précédemment.

Il est possible d'inclure d'autre fichier dans un fichier de configuration:

include <nom de fichier>
	

Cette directive permet d'inclure un fichier externe dans le fichier de configuration, à l'endroit où elle se trouve. Le fichier inclus fera partie intégrante du fichier de configuration, c'est à dire qu'il devra respecter la même syntaxe.

Astuce

Les fichiers sont très utiles pour séparer la définition du schéma de l'annuaire, ou les permissions, du reste du fichier de configuration.

Avertissement

Il est possible d'inclure à nouveau un fichier dans un fichier déjà inclus. Néanmoins aucune vérification de boucle n'est faite. Il faut donc se méfier des boules infinies.

Directives générales

loglevel <entier>

Cette directive est un entier qui indique le niveau de débogage du serveur. Sa valeur indique le type d'informations qui vont être transmises au système (dans syslogd). La valeur de la directive est une combinaison additive de valeurs de bases, dont les plus utiles sont les suivantes (la liste complètes est dans le manuel d'OpenLdap):

-1

Permet d'affichage toutes les valeurs de débogage, ce qui peut très vite se montrer illisible.

0

Aucune valeur de débogage.

32

Affiche le processus de recherche d'un filtre.

64

Affiche le processus de parsage du fichier de configuration.

128

Affiche le calcul des permissions de chaque opération. Cette valeur est évidemment très utilisée lorsqu'on met en place les permissions pour valider le bon déroulement des accès, en lecture comme en écriture, aux objets de la base.

256

Affiche le résultats de chaque opération (succès, échec, permission refusée, etc.)

Astuce

Sur un annuaire en production, il est préférable de ne pas laisser un niveau de log trop élevé. Certains niveaux de log trop bavards, comme le 128, peuvent en certaines circonstances ralentir l'annuaire à cause d'écritures trop fréquentes et trop importantes dans le fichier syslog.

referral <URI>

Cette directive donne le referral qui sera retourné aux clients lorsque le serveur ne peut pas répondre à un requête qui lui est soumise. Cela arrive lorsqu'une requête s'exécute à partir d'un noeud qui n'est pas dans les suffixes gérés par le serveur.

Directives sur la sécurité

defaultaccess { none | compare | search | read | write }

Cette directive donne l'accès accordé par défaut aux clients lorsqu'aucune clause de permission n'est présente dans le reste du fichier de configuration, ou bien lorsqu'aucune de ces clauses ne correspond.

password-hash { SSHA | SHA | SMD5 | MD5 | CRYPT }

Cette directive indique le hashage utilisé pour le stockage des mots de passe dans l'annuaire. Par défaut le hashage utilisé est SSHA.

access to "clause d'accès"

Cette directive inclut une clause d'accès. Un chapitre lui est dédié.

Directives sur les schémas

schemacheck { On | Off }

Cette directive indique si le serveur slapd devra vérifier si les objets de l'annuaire respectent ou pas le schéma, lors d'une insertion ou d'une modification.

Il n'y a généralement aucune raison de désactiver la vérification du schéma en dehors de la phase de développement de l'annuaire, lorsque des composants ne sont pas encore finis.

attributetype <RFC2252 Attribute Type Description>, objectclass <RFC2252 Object Class Description>

Ces deux directives permettent de définir respectivement des attributs et des classes d'objets. Avant de définir ses propres attributs et ses propres objets il faut inclure les schémas standards. De plus les attributs doivent être définis avant les objets. La syntaxe et l'usage de ces directives seront étudiées dans un autre chapitre.

Gestion des ressources

Nous allons voir dans cette section les directives qui permettent de gérer les ressources utilisées par un serveur slapd.

idletimeout

Cette directive prend pour valeur un entier qui indique le nombre de seconde qu'attendra un serveur avant de fermer de force la connexion à un client inoccupé. La valeur par défaut, 0, permet de désactiver cette option.

sizelimit

Cette directive prend pour valeur un entier qui spécifie le nombre maximum d'entrées retournées par une recherche dans l'annuaire. La valeur par défaut est 500.

timelimit

Cette directive prend pour valeur un entier qui sera la durée maximale, en secondes, que le serveur passera à répondre à une requête. Si une demande n'est pas terminée pendant ce temps, une erreur de type "exceeded timelimit" sera envoyée au client. La valeur par défaut est 3600 (une heure).

Directives des sections backend

backend <backend type>

Cette directive ouvre une section dédiée à un backend particulier. Elle définit le type de backend. Les valeurs possibles sont les suivantes:

bdb

Backend base de données transactionnelle Berkeley

ldbm

Backend basé sur des fichiers de format DBM, ou GDBM, le plus facile à installer.

dnssrv

Ce backend retourne des referrals en se basant sur le champs SRV des enregistrements DNS.

ldap

Backend proxy, qui transmet les requêtes entrantes à un autre LDAP serveur. Un server proxy permet de mutualiser entre les différents clients les connexions à un serveur distant.

meta

Backend similaire au backend ldap mais offrant des possibilités supplémentaires pour présenter aux clients un ensemble de serveur LDAP comme étant un seul serveur LDAP grâce à des mécanisme de traduction du nom des objets.

monitor

Le backend monitor n'est pas vraiment un backend. Il permet d'accéder à des informations sur le serveur.

passwd

Backend qui s'appuie sur le fichier /etc/passwd. Il n'est utilisé qu'à des fins de démonstration.

perl, shell

Ces deux backends exécutent chaque commande ldap, soit par l'intermédiaire d'un objet perl, soit par un programme externe quelconque.

sql

Backend qui s'appuie sur une base de données SQL, de type ODBC. Ce backend nécessite beaucoup de configuration pour transformer les requêtes ldap en requêtes SQL.

La plupart des backends nécessitent leurs propres directives pour être configuré correctement. Nous y reviendrons plus tard.

Directives d'une section database

Une section database commence dans le fichier de configuration par une directive database, dont la valeur est celle du backend auquel appartient la base de données.

suffix DN

Indique le noeud que la base de données va gérer.

lastmod on | off

Indique si la base de données doit enregistrer les modifications effectuées dans des attributs dédiés. Ces attributs sont les suivants: modifiersName, modifyTimestamp, creatorsName, and createTimestamp.

Par défaut la valeur on. Pour certains backend il est nécessaire qu'elle soit à off.

readonly on | off

Cette option met la base en lecture seule.

rootdn <DN>

Utilisateur dont les accès ne seront pas soumis aux clauses d'accès.

rootpw <mot de passe>

Le mot de passe de l'utilisateur rootdn. Ce mot de passe peut être stocké sous forme hashé.

Directives de réplication

Les directives suivantes permettent de contrôler comment s'effectue la réplication d'un annuaire. Toutes ces directives sont spécifiques à une database.

Fixme: description du modèle maître esclave de réplication.

replica host <hostname>[:<port>] [bindmethod={ simple | kerberos | sasl }]

Fixme

replogfile <filename>

Fixme

updatedn <DN>

Fixme