Lorsque le système est installé,
/etc/openldap/slapd.conf est disponible comme fichier
de configuration complet pour le serveur LDAP. Vous trouverez ci-après une
description des différents enregistrements, précisant les ajustements à
apporter. Les lignes commençant par un # sont inactives.
Pour activer ces lignes, il vous suffit de supprimer ce caractère de
commentaire de la ligne choisie.
Exemple 29.2. slapd.conf : Instruction Include pour les schémas
include /etc/openldap/schema/core.schema include /etc/openldap/schema/inetorgperson.schema
Cette première instruction de slapd.conf,
montrée dans Exemple 29.2, « slapd.conf : Instruction Include pour les schémas »,indique quel
schéma est utilisé pour l'organisation de votre annuaire LDAP. La ligne
core.schema est toujours requise. Dans le cas où vous
auriez besoin de schémas supplémentaires, ajoutez-les à la suite de cette
instruction (l'exemple ajouté ici est
inetorgperson.schema). Vous pourrez trouver d'autres
schémas disponibles dans le répertoire
/etc/openldap/schema/. Si vous voulez remplacer le
service NIS par un service LDAP équivalent, mentionnez à cet endroit les
schémas cosine.schema et
rfc2307bis.schema. Pour plus d'informations,
reportez-vous à la documentation de OpenLDAP fournie.
Exemple 29.3. slapd.conf : pidfile et argsfile
pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args
Ces deux fichiers contiennent l'identificateur de processus (PID, de l'anglais process id) ainsi que différents arguments utilisés pour le lancement du processus slapd. Aucune modification n'est nécessaire ici.
Exemple 29.4. slapd.conf : Contrôle d'accès
# Sample Access Control
# Allow read access of root DSE
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
#
access to dn="" by * read
access to *
by self write
by users read
by anonymous auth
#
# if no access controls are present, the default is:
# Allow read by all
#
# rootdn can always write!
Exemple 29.4, « slapd.conf : Contrôle d'accès » est l'extrait de code du
fichier slapd.conf qui paramètre le contrôle d'accès à
l'annuaire LDAP sur le serveur. Les paramètres qui sont définis dans la
section globale du fichier slapd.conf s'appliquent
tant qu'aucune règle d'accès particulière distincte n'a été établie dans la
section propre à la base de données. Ces règles ont priorité sur les
déclarations globales. Dans la configuration présentée, tous les
utilisateurs ont un accès en lecture à l'annuaire, mais l'administrateur
(rootdn) est le seul à pouvoir écrire dans cet annuaire.
La définition des privilèges d'accès sous LDAP est un processus extrêmement
complexe. Les astuces qui suivent peuvent aider :
Chaque règle d'accès a la structure suivante :
access to <quoi> by <qui> <accès>
quoi représente l'objet ou
l'attribut auquel vous accordez l'accès. Vous pouvez utiliser des règles
séparées pour protéger de manière explicite différentes branches de
l'arborescence ou des expressions rationnelles pour traiter des zones
complètes de l'arborescence à l'aide d'une règle.
slapd évalue toutes les règles dans l'ordre dans
lequel elles ont été introduites dans le fichier de configuration. Vous
devez donc toujours placer les règles génériques à la suite des règles
plus spécifiques. slapd applique la première règle qui
s'applique et toutes les lignes suivantes sont ignorées.
Le paramètre qui détermine qui peut
accéder aux domaines définis avec quoi. Vous
pouvez, ici aussi, utiliser des expressions
rationnelles.slapd interrompt l'évaluation de
qui après le première concordance, les règles
spécifiques doivent donc être listées avant les règles générales. Les
enregistrements énumérés dans Tableau 29.2, « Groupes d'utilisateurs et leurs droits d'accès »
sont possibles.
Tableau 29.2. Groupes d'utilisateurs et leurs droits d'accès
|
Descripteur |
Portée |
|---|---|
|
|
tous les utilisateurs sans exception |
|
|
utilisateurs non authentifiés (« anonymes ») |
|
|
utilisateurs authentifiés |
|
|
utilisateurs associés à l'objet cible |
|
|
Tous les utilisateurs auxquels cette expression rationnelle s'applique |
accès spécifie le type d'accès.
Utilisez les options énumérées dans Tableau 29.3, « Types d'accès ».
Tableau 29.3. Types d'accès
|
Descripteur |
Étendue de l'accès |
|---|---|
|
|
Accès interdit |
|
|
pour la prise de contact avec le serveur |
|
|
pour l'accès aux objets pour comparaison |
|
|
pour l'application de filtres de recherche |
|
|
accès en lecture |
|
|
accès en écriture |
slapd compare les privilèges demandés par le
client avec ceux qui sont accordés dans le fichier
slapd.conf. Le client obtient l'accès si les règles
permettent des droits plus élevés ou égaux à ceux qui sont demandés. Si
le client demande des droits plus élevés que ceux qui sont déclarés dans
les règles, l'accès est interdit.
Exemple 29.5, « slapd.conf: Exemple de contrôle d'accès » présente l'exemple d'un contrôle d'accès simple que vous pouvez configurer à votre guise à l'aide d'expressions rationnelles.
Exemple 29.5. slapd.conf: Exemple de contrôle d'accès
access to dn.regex="ou=([^,]+),dc=suse,dc=de" by dn.regex="cn=administrator,ou=$1,dc=suse,dc=de" write by user read by * none
Cette règle stipule que pour tous les enregistrements
ou, seul l'administrateur concerné dispose de l'accès en
écriture. Les autres utilisateurs authentifiés bénéficient d'un accès en
lecture et le reste du monde n'a droit à aucun accès.
![]() | Définition de règles d'accès |
|---|---|
En l'absence de règle | |
Pour plus d'informations et un exemple de configuration des privilèges
d'accès LDAP, reportez-vous à la documentation en ligne du paquetage
openldap2 installé.
Pour la gestion des contrôles d'accès, il est possible d'utiliser,
outre le fichier central de configuration du serveur
(slapd.conf), les ACI, ou informations de contrôle
d'accès (de l'anglais Access Control Information). Les ACI permettent
d'enregistrer les informations d'accès à différents objets dans
l'arborescence LDAP elle-même. Ce mode d'accès étant encore peu diffusé et
étant considéré par les développeurs eux-mêmes comme étant de niveau
expérimental, nous vous renvoyons ici aux pages correspondantes de la
documentation du projet OpenLDAP : http://www.openldap.org/faq/data/cache/758.html.
Exemple 29.6. slapd.conf : Instructions propres à une base de données
database ldbm suffix "dc=suse,dc=de" rootdn "cn=admin,dc=suse,dc=de" # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. rootpw secret # The database directory MUST exist prior to running slapd AND # should only be accessible by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap # Indices to maintain index objectClass eq
La première ligne de cette section (voir Exemple 29.6, « slapd.conf : Instructions propres à une base de données ») définit le type de base de données, en
l'occurrence LDBM. Le paramètre suffix à la seconde
ligne définit la partie de l'arborescence LDAP dont ce serveur doit être
responsable. Le rootdn suivant indique qui dispose des
privilèges d'administrateur sur ce serveur. L'utilisateur indiqué ici ne
doit pas pas posséder d'enregistrement LDAP ni exister comme utilisateur
normal. L'instruction rootpw définit le mot de passe de
l'administrateur. Vous pouvez saisir ici à la place de
secret le hachage du mot de passe de l'administrateur
créé avec slappasswd. L'instruction directory spécifie
le répertoire dans lequel les annuaires de la base de données sont
enregistrés sur le serveur. La dernière instruction, index
objectClass eq, permet de gérer un index à partir des classes
d'objets. Le cas échéant, complétez quelques attributs parmi ceux que vous
estimez les plus recherchés. Si vous ajoutez vos propres règles
Access pour la base de données, elles sont utilisées à
la place des règles Access globales.
Lorsque vous avez terminé de configurer le serveur LDAP et que vous
avez créé tous les enregistrements que vous souhaitiez sur le modèle décrit
dans Section 29.4, « Manipulation de données dans l'annuaire LDAP »), démarrez le serveur LDAP en
tant qu'utilisateur root à l'aide
de la commande rcldap start. Si vous
voulez arrêter le serveur à la main, saisissez la commande rcldap
stop. Vous pouvez demander l'état d'exécution
du serveur LDAP à l'aide de la commande
rcldapstatus.
Vous pouvez automatiser le démarrage et l'arrêt du serveur lors de la mise en marche et de l'arrêt de la machine concernée à l'aide de l'éditeur de niveaux d'exécution de YaST décrit dans Section 7.6, « Éditeur de niveaux d'exécution ». Vous pouvez aussi créer vous-même les liens correspondants pour les scripts de démarrage et d'arrêt à l'aide de la commande insserv à partir d'une invite de commande comme décrit dans Section 7.5.1, « Ajouter des scripts d'initialisation »).