Serveur LDAP
Cette image est basée sur osixia/openldap. Elle est spécialisée pour les besoins de l'infrastructure de Picasoft.
Cette image doit être lancée aux côtés de TLS Certs Monitor pour fonctionner.
Tout changement de structure doit être documenté sur le wiki.
Démarrage
Copier pica-openldap.secrets.example
en pica-openldap.secrets
, puis lancer :
docker-compose up -d && docker-compose logs -f
Notez que l'ensemble de la configuration pour préparer l'instance n'est utilisée que lors du premier lancement : elle n'aura aucun effet sur les instances existantes.
Lors du premier lancement, on vérifiera s'il y a des permissions à rajouter à la main.
Configuration
Par rapport à la configuration de base, cette version :
- Spécifie l'organisation Picasoft (variables d'environnement dans le Docker Compose),
- Configure un utilisateur
readonly
appellénss
, - Active et force la connexion TLS au serveur LDAP,
- Ajoute les schémas additionnels (permettant d'utiliser
host
etauthorizedService
, par exemple), - Crée la structure du base du LDAP (Group, People, Service),
- Ajoute des entrées d'exemple pour les comptes.
La configuration par défaut de l'image est dans les répertoires bootstrap
, environment
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 |
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. 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
Le fichier ldapns.schema permet le support des attributs host
et authorizedServices
.
Entrée initiales de l'annuaire
Le fichier init.ldif crée la structure de base de l'annuaire :
- Une OU (Organizational Unit)
People
, pour les comptes POSIX personnels, - Une OU
Groups
, pour les groupes POSIX, - Une OU
Services
, pour les comptes POSIX "virtuels", destinés aux services comme Mattermost.
Il crée aussi des entrées example
donnant un exemple pour chacun de ces types.
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 (cn=nss,dc=picasoft,dc=net) |
Attention : les mots de passe apparaîtront en clair dans l'environnement du conteneur.
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
Mise à jour de l'image
Il suffit de modifier la version de osixia/openldap dans le Dockerfile :
FROM osixia/openldap:XXX
Ne pas oublier de mettre à jour la version dans le docker-compose.yml :
image: registry.picasoft.net/pica-openldap:XXX
Test de l'image sur un client
- Accès à la configuration (utiliser le mot de passe défini par
LDAP_CONFIG_PASSWORD
)
ldapsearch -Z -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 -Z -W -x -D cn=admin,dc=picasoft,dc=net -b dc=picasoft,dc=net
Ces deux commandes doivent fonctionner dans le conteneur. Si ce n'est pas le cas, il y a une erreur de configuration.