207 lines
6.9 KiB
Markdown
207 lines
6.9 KiB
Markdown
|
# Installation de nine
|
|||
|
|
|||
|
## Cloner le dépot
|
|||
|
|
|||
|
git clone
|
|||
|
|
|||
|
## Comment personnaliser
|
|||
|
|
|||
|
Pour personnaliser la configuration de base
|
|||
|
|
|||
|
- créer un fichier /env/.env.local
|
|||
|
- et faite varier les variables d'environnement WEB_URL et PROTOCOLE
|
|||
|
|
|||
|
### Host
|
|||
|
|
|||
|
De base ninedocker est configuré pour fonctionner sur nine.local en https
|
|||
|
|
|||
|
Exemple de faire fonctionner le docker en local et en http
|
|||
|
|
|||
|
```
|
|||
|
WEB_URL=localhost
|
|||
|
PROTOCOLE=http
|
|||
|
```
|
|||
|
|
|||
|
### Ports & Services associés
|
|||
|
|
|||
|
Les services suivants sont à l'écoute des ports
|
|||
|
|
|||
|
- 3306 = mariadb
|
|||
|
- 9000 = ninegate
|
|||
|
- 1389/1636 = openldap
|
|||
|
- 8999/8443 = keycloak
|
|||
|
- 9001 = nextcloud
|
|||
|
- 9002 = nineboard
|
|||
|
- 9003 = wordpress
|
|||
|
- 9100 = adminer
|
|||
|
- 9101 = phpldapadmin
|
|||
|
- 9102 = nineapache
|
|||
|
|
|||
|
Si vous souhaitez ne pas attaquer vos services via leurs ports, vous devrez mettre en place un reverse proxy apache ou ngnix
|
|||
|
|
|||
|
exemple apache
|
|||
|
|
|||
|
```
|
|||
|
ProxyPass /auth http://0.0.0.0:8080/auth retry=0 keepalive=On
|
|||
|
ProxyPassReverse /auth http://0.0.0.0:8080/auth retry=0
|
|||
|
|
|||
|
ProxyPass /ninegate http://0.0.0.0:9000/ninegate retry=0 keepalive=On
|
|||
|
ProxyPassReverse /ninegate http://0.0.0.0:9000/ninegate retry=0
|
|||
|
ProxyPass /wssninegate ws://0.0.0.0:9000/wssninegate retry=0 keepalive=On
|
|||
|
ProxyPassReverse /wssninegate ws://0.0.0.0:9000/wssninegate retry=0
|
|||
|
|
|||
|
ProxyPass /nextcloud http://0.0.0.0:9001 retry=0 keepalive=On
|
|||
|
ProxyPassReverse /nextcloud http://0.0.0.0:9001 retry=0
|
|||
|
|
|||
|
ProxyPass /nineboard http://0.0.0.0:9002/nineboard retry=0 keepalive=On
|
|||
|
ProxyPassReverse /nineboard http://0.0.0.0:9002/nineboard retry=0
|
|||
|
ProxyPass /wssnineboard ws://0.0.0.0:9002/wssnineboard retry=0 keepalive=On
|
|||
|
ProxyPassReverse /wssnineboard ws://0.0.0.0:9002/wssnineboard retry=0
|
|||
|
|
|||
|
ProxyPass /wordpress http://0.0.0.0:9003/wordpress retry=0 keepalive=On
|
|||
|
ProxyPassReverse /wordpress http://0.0.0.0:9003/wordpress retry=0
|
|||
|
|
|||
|
ProxyPass /adminer http://0.0.0.0:9100 retry=0 keepalive=On
|
|||
|
ProxyPassReverse /adminer http://0.0.0.0:9100 retry=0
|
|||
|
|
|||
|
ProxyPass /phpldapadmin http://0.0.0.0:9101/phpldapadmin retry=0 keepalive=On
|
|||
|
ProxyPassReverse /phpldapadmin http://0.0.0.0:9101/phpldapadmin retry=0
|
|||
|
|
|||
|
ProxyPass /nineapache http://0.0.0.0:9102 retry=0 keepalive=On
|
|||
|
ProxyPassReverse /nineapache http://0.0.0.0:9102 retry=0
|
|||
|
```
|
|||
|
|
|||
|
### Activer / Désactiver les services
|
|||
|
|
|||
|
Dans votre ./env/.env.local vous pouvez activer / désactiver des services via les variables suivante
|
|||
|
|
|||
|
```
|
|||
|
MARIADB_ACTIVATE=
|
|||
|
LDAP_ACTIVATE=
|
|||
|
CAS_ACTIVATE=
|
|||
|
NINEGATE_ACTIVATE=
|
|||
|
NEXTCLOUD_ACTIVATE=
|
|||
|
NINEBOARD_ACTIVATE=
|
|||
|
WORDPRESS_ACTIVATE=
|
|||
|
ADMINER_ACTIVATE=
|
|||
|
PHPLDAPADMIN_ACTIVATE=
|
|||
|
NINEAPACHE_ACTIVATE=
|
|||
|
```
|
|||
|
|
|||
|
### Déporter des services
|
|||
|
|
|||
|
Certains services peuvent t'être distant et non géré par le docker nine. Pour cela garder le service actif mais indiquer lui qu'il n'est pas local via les variables suivantes
|
|||
|
|
|||
|
```
|
|||
|
LDAP_LOCAL
|
|||
|
CAS_LOCAL
|
|||
|
NINEGATE_LOCAL
|
|||
|
NEXTCLOUD_LOCAL
|
|||
|
NINEBOARD_LOCAL
|
|||
|
WORDPRESS_LOCAL
|
|||
|
ADMINER_LOCAL
|
|||
|
PHPLDAPADMIN_LOCAL
|
|||
|
NINEAPACHE_LOCAL
|
|||
|
```
|
|||
|
|
|||
|
S'il ne sont pas local en fonction du service vous devrez ajouter les variables nécessaire dans votre .env.local pour indiquer où se situe le service.
|
|||
|
|
|||
|
**LDAP**
|
|||
|
|
|||
|
```
|
|||
|
LDAP_HOST # Host de votre annuaire
|
|||
|
LDAP_PORT # Port de votre annuaire
|
|||
|
LDAP_TLS # Use TLS 1/0
|
|||
|
LDAP_BASEDN # Basedn de votre annuaire
|
|||
|
LDAP_ADMIN_USERNAME # UID du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
|||
|
LDAP_USER # DN du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
|||
|
LDAP_PASSWORD # Password du compte writer ou reader de votre annuaire. Writer obligatoire si vous synchroniser ninegate dans votre openldap
|
|||
|
LDAP_USERNAME=uid # Attribut de l'uid d'un utilisateur
|
|||
|
LDAP_FIRSTNAME=givenname # Attribut prénom d'un utilisateur
|
|||
|
LDAP_LASTNAME=sn # Attribut nom d'un utilisateur
|
|||
|
LDAP_DISPLAYNAME=displayName # Attribut displayname d'un utilisateur
|
|||
|
LDAP_EMAIL=mail # Attribut mail d'un utilisateur
|
|||
|
LDAP_MEMBER=memberUid # Liste des uid utilisateur dans un groupe
|
|||
|
```
|
|||
|
|
|||
|
### Personnaliser Ninegate
|
|||
|
|
|||
|
#### MASTERIDENTITY
|
|||
|
|
|||
|
Ce variable va vous permettre de déterminer qui est le maître de l'identité
|
|||
|
|
|||
|
**SQL**
|
|||
|
|
|||
|
- C'est ninegate le maître vous pouvez via l'interface de gestion de ninagate créer/modifier/supprimer des niveaux/groups/utilisateurs
|
|||
|
- Vous pourrez activer l'auto inscription des utilisateurs
|
|||
|
- Les utilisateurs pourront bénéficier d'un "Mot de passe oublié"
|
|||
|
- Si vous avez activer le service LDAP, les utilisateurs pourront alors être synchroniser
|
|||
|
|
|||
|
**LDAP**
|
|||
|
|
|||
|
- C'est l'annuaire le maître vous ne plus créer/modifier/supprimer des utilisateurs dans l'interface de ninegate, ni bénéficier de l'auto inscription des utilisateurs ni de la fonctionnalité "Mot de passe oublié"
|
|||
|
- Cela sera à vous de créer directement dans l'annuaire vos utilisateurs
|
|||
|
- Vous pourrez créer des niveaux et des groupes
|
|||
|
- Les niveau01s et les groupes pourront etre associé à une requete LDAP indiquant à Ninegate comment les récupérer et les synchroniser dans sa base
|
|||
|
|
|||
|
### MODE_AUTH
|
|||
|
|
|||
|
Quel protocole d'authentification sera utilisé par les différents service
|
|||
|
|
|||
|
- SQL = sa propre mire d'authentification
|
|||
|
- CAS = CAS le serveur CAS local ou externe
|
|||
|
- LDAP = l'annuaire local ou externe dans ce cas la variable LDAP_LOGIN_FILTER est nécessaire
|
|||
|
|
|||
|
#### Synchronisation
|
|||
|
|
|||
|
Pour activer la synchronisation des comptes il est nessaire d'activer cette variable
|
|||
|
|
|||
|
```
|
|||
|
LDAP_SYNC
|
|||
|
```
|
|||
|
|
|||
|
En fonction de votre MASTERIDENTITY vous pouvez synchroniser les utilisateurs
|
|||
|
|
|||
|
**Si masteridentity est à SQL = où sont synchronisées les datas dans l'annuaire**
|
|||
|
|
|||
|
Attention dans ce cas ninegate attend une structure d'annuaire bien précise. Vous pouvez retrouver cette structure si vous souhaitez déporter votre annuaire à ces emplacements :
|
|||
|
|
|||
|
- schema = ./volume/openldap/nine/schema/cadoles.ldif
|
|||
|
- ldif = ./volume/openldap/nine/ldif/cadoles.ldif
|
|||
|
|
|||
|
Voici les variables qui indiquera à ninegate où aller synchroniser son organisation
|
|||
|
|
|||
|
```
|
|||
|
LDAP_BASEUSER="ou=users,ou=ninegate,o=gouv,c=fr"
|
|||
|
LDAP_BASENIVEAU01="ou=niveau01,ou=ninegate,o=gouv,c=fr"
|
|||
|
LDAP_BASENIVEAU02="ou=niveau02,ou=ninegate,o=gouv,c=fr"
|
|||
|
LDAP_BASEGROUP="ou=groups,ou=ninegate,o=gouv,c=fr"
|
|||
|
```
|
|||
|
|
|||
|
**Si masteridentity est à LDAP**
|
|||
|
|
|||
|
Dans l'interface de ninegate sur les niveaux vous devrait lui indiquer comment créer les utilisateurs de ce niveau via un filtre LDAP
|
|||
|
|
|||
|
Exemple
|
|||
|
|
|||
|
```
|
|||
|
(&(uid=*)(objectclass=inetOrgPerson)(!(description=Computer)))
|
|||
|
```
|
|||
|
|
|||
|
Dans ce cas à l'initialisation de ninegate un premier niveau sera généré est lié à la requete annuaire déclarée via
|
|||
|
|
|||
|
```
|
|||
|
OPENLDAPREQNIVEAU01
|
|||
|
```
|
|||
|
|
|||
|
Vous pouvez aussi synchroniser vos groupes annuaires dans ninegate en activant et en précisant la requête LDAP permettrant de les récupérer
|
|||
|
|
|||
|
```
|
|||
|
OPENLDAPSYNCHROGROUP
|
|||
|
OPENLDAPREQGROUP
|
|||
|
```
|
|||
|
|
|||
|
**Si masteridentity est à SSO**
|
|||
|
|
|||
|
Il n'y a pas de synchronisation, la création / modification des utilisateurs se fait à la connexion de ce dernier.
|