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
etauthorizedServices
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
).