Skip to content
Snippets Groups Projects

pica/openldap

Cette image est basée sur osixia/openldap. Elle est spécialisée pour les besoins de l'infrastructure de Picasoft.

Démarrage rapide

cp secrets/pica-openldap.secrets.example secrets/pica-openldap.secrets \
&& make \
&& docker-compose up ldap-host

Si tout se passe bien un conteneur de test est disponible.

Configuration

La configuration par défaut de l'image est dans les répertoires bootstrap, environment, certs et secrets.

La table suivante donne le rôle de ces répertoires :

Répertoire Contenu À quoi ça sert
bootstrap/schema Schémas additionnels (format ldif) Schémas ajoutés automatiquement à l'initialisation de la configuration)
bootstrap/ldif Entrées initiales de l'annuaire (format ldif) Entrées automatiquement ajoutées à l'initialisation de l'annuaire
environment Configuration par défaut Définition des valeurs par défaut des variables d'environnement utilisables dans le docker-compose
certs Certificats TLS Certificats utilisés pour les connexions ldaps. Gérés au travers de Traefik par pica-tls-certs-monitor, à laisser vide.
secrets Mots de passe Mots de passe utilisés pour les trois utilisateurs par défaut (admin, config et nss)

Le contenu de ces répertoire est copié dans l'image à la construction, à l'exception des secrets. Cette copie est supprimée par défaut une fois l'image configurée, après la première exécution du conteneur.

Schémas additionnels

  • ldapns.schema : support des attributs authorizedHost et authorizedServices

Configuration par défaut

  • Le fichier pica.startup.yaml contient toutes les valeurs par défaut des paramètres de configuration. Ces valeurs sont utilisées à la création de le configuration du serveur ldap à la première exécution du conteneur. Le fichier est supprimé ensuite.

  • Le fichier pica.yaml contient les paramètres de de configuration utilisés à chaque démarrage du conteneur. Pour l'instant il est utilisé pour définir le niveau de messages de débogage de slapd et limiter le nombre de descripteurs de fichiers utilisés (1024). On peut l'augmenter si on estime qu'il y aura plus de connexions simultanées sur le serveur.

Certificats

La configuration par défaut spécifie les fichiers suivants :

Fichier Rôle
cert.pem Certificat serveur
chain.pem Certificat CA
privkey.pem Clé privée serveur

Secrets

Le repertoire secrets doit contenir le fichier pica-openldap.secrets avec les mots de passe en clair qui seront utilisés pour l'administrateur de l'annuaire, l'accès à la configuration et l'accès en lecture seule. Un modèle est fourni dans le fichier [pica-ldap.secrets.examples](./secrets/ pica-ldap.secrets.example).

Variable Usage
LDAP_ADMIN_PASSWORD Mot de passe de l'adminsitrateur de l'annuaire (cn=admin,dc=picasoft,dc=net)
LDAP_CONFIG_PASSWORD Mot de passe de configuration (cn=admin,cn=config)
LDAP_READONLY_USER_PASSWORD Mot de passe de l'utilisateur read only

Attention : les mots de passe apparaîtront en clair dans l'environnement du conteneur.

Construction de l'image

Dans le répertoire pica-openldap :

make

Mise à jour de l'image

Il suffit de modifier la version de osixia/openldap dans le Dockerfile :

FROM osixia/openldap:1.2.4

Ne pas oublier de mettre à jour la version dans le Makefile :

NAME = pica/openldap
VERSION = 0.0.1

Démarrage du conteneur

Pour démarrer le conteneur, utiliser le fichier docker-compose.yml fourni. La base de données et la configuration peuvent être dans des volumes Docker automatiquement générés, mais il faut que les certificats soient dans un volume nommé spécifique pour pouvoir être mis à jour automatiquement par pica-tls-certs-monitor. Il s'agit du volume ldap-certs. Le fichier secrets/pica-openldap.secrets doit exister avant le premier démarrage.

Les informations contenues dans pica-openldap.secrets ne sont utilisées qu'au premier démarrage, on peut le remplacer ensuite par une version vide.

docker-compose up ldap-host

Plus de logs

Pour obtenir plus de logs, il suffit d'ajouter la ligne suivante au service ldap-host dans le fichier docker-compose.yml :

command: --loglevel debug

Test de l'image sur un client

  • Accès à la configuration (utiliser le mot de passe défini par LDAP_CONFIG_PASSWORD)
ldapsearch -W -x -D cn=admin,cn=config -b cn=config
  • Accès à l'annuaire (utiliser le mot de passe défini par LDAP_ADMIN_PASSWORD)
ldapsearch -W -x -D cn=admin,dc=picasoft,dc=net -b dc=picasoft,dc=net

Ces deux commandes doivent fonctionner sur l'hôte. Si ce n'est pas le cas, il y a une erreur de configuration.

Notes

  • La version 1.2.4 de l'image osixia/openldap ne fonctionne pas si on utilise un hostname complet non résoluble par DNS dans le fichier docker-compose.yml. Dans ce cas, il ne faut pas spécifier le FQDN, mais seulement le nom d'hôte (par exemple ldap).