Skip to content
Snippets Groups Projects
Verified Commit 1e6e0426 authored by Stephane Bonnet's avatar Stephane Bonnet
Browse files

Une doc, une !

parent fb03148d
No related branches found
No related tags found
1 merge request!42Pica openldap dev
# pica/openldap
Cette image est basée sur [osixia/openldap](https://github.com/osixia/docker-openldap). Elle est spécialisée pour les besoins de l'infrastructure de Picasoft.
## Démarrage rapide
```bash
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](./bootstap/schema) | Schémas additionnels (format ldif) | Schémas ajoutés automatiquement à l'initialisation de la configuration) |
| [bootstrap/ldif](./bootstrap/ldif) | Entrées initiales de l'annuaire (format ldif) | Entrées automatiquement ajoutées à l'initialisation de l'annuaire |
| [environment](./environment) | Configuration par défaut | Définition des valeurs par défaut des variables d'environnement utilisables dans le docker-compose |
| [certs](./certs) | Certificats TLS | Certificats utilisés pour les connexions ldaps. Gérés au travers de Traefik par [pica-tls-certs-monitor](../pica-tls-certs-monitor), à laisser vide.
| [secrets](./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](./bootstrap/schema/ldapns.schema) : support des attributs `authorizedHost` et `authorizedServices`
### Configuration par défaut
* Le fichier [pica.startup.yaml](./environment/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](./environment/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](./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` :
```bash
$ make
```
### Mise à jour de l'image
Il suffit de modifier la version de osixia/openldap dans le [Dockerfile](./Dockerfile) :
```Dockerfile
FROM osixia/openldap:1.2.4
```
Ne pas oublier de mettre à jour la version dans le [Makefile](./Makefile) :
```Makefile
NAME = pica/openldap
VERSION = 0.0.1
```
## Démarrage du conteneur
Pour démarrer le conteneur, utiliser le fichier
[docker-compose.yml](./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](../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.
```bash
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](./docker-compose.yml) :
```yaml
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)
```bash
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)
```bash
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`).
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment