# Documentation for LemonLDAP::NG 1.9

## Main changes

Version 1.9 of LL::NG brings the following main changes:

- OpenID Connect support
- Nginx support
- New manager interface

You must read upgrade from 1.4 to 1.9 documentation page before installing it.

## Installation

### Before installation

- Pré-requis et dépendances
- Upgrade notes

### Installation

- Installation depuis l'archive
- Installation sur Debian/Ubuntu avec les paquets
- Installation sur RHEL/CentOS avec les paquets
- Installation on Suse Linux Enterprise Server with packages
- Run in LemonLDAP::NG in Docker

### After installation

- Deployer la configuration Apache
- Deployer la configuration Nginx

## Configuration

### Premiers pas

- Vue d'ensemble de la configuration
- Configurer le cookie SSO (Single Sign On) et l'URL du portail
- Paramètrer les redirections
- Définir les variables exportées
- Gérer les hôtes virtuels
- Configurer les spécificités des sessions

### Portail

- Présentation
- Personnalisation du portail
- Menu du portail
- Captcha
- Public pages

### Bases de données d'authentification, des utilisateurs et des mots-de-passe

Official Backends | Authentification | Utilisateurs | Mot-de-passe
--- | --- | --- | ---
Active Directory | ✔ | ✔ | ✔
Apache (Kerberos, NTLM, OTP, ...) | ✔ |  |
BrowserID (Mozilla Persona) | ✔ |  |
CAS | ✔ |  |
Bases de données (DBI) | ✔ | ✔ | ✔
Démonstration | ✔ | ✔ | ✔
Facebook | ✔ | ✔ |
Kerberos (available with version ≥ 1.9.14) | ✔ |  |
LDAP | ✔ | ✔ | ✔
LinkedIn | ✔ |  |
Null | ✔ | ✔ | ✔
OpenID Connect | ✔ | ✔ |
Proxy LL::NG | ✔ | ✔ |
Radius | ✔ |  |
SAML 2.0 / Shibboleth | ✔ | ✔ |
Slave | ✔ | ✔ |
SSL | ✔ |  |
Twitter | ✔ |  |
WebID | ✔ | ✔ |
Yubikey | ✔ |  |
Combo Backends | Authentification | Utilisateurs | Mot-de-passe
Choice by users | ✔ | ✔ | ✔
Empiler de multiples backends | ✔ | ✔ |
Obsolete Backends | Authentification | Utilisateurs | Mot-de-passe
Google | ✔ | ✔ |
OpenID | ✔ | ✔ |
LL::NG distant | ✔ | ✔ |

### Base de données de la configuration

LL::NG a besoin d'un dispositif de stockage de sa propre configuration (gérée par le manager). Choisir l'une des options suivantes :

Backend | Partageable | Commentaire
--- | --- | ---
File (JSON) |  | Not shareable between servers except if used in conjunction with SOAP or with a shared file system (NFS,…). Sélectionné par défaut lors de l'installation.
SQL (RDBI/CDBI) | ✔ |
LDAP | ✔ |
MongoDB | ✔ |
SOAP | ✔ | Backend proxy à utiliser avec un autre backend de configuration. Peut être utilisé pour sécuriser un autre backend pour des serveurs distants.

On ne peut démarrer avec une configuration vide, il faut donc lire comment changer de backend de configuration pour convertir une configuration existante en une autre.

### Base de données des sessions

Les sessions sont stockées en utilisant les modules de la famille Apache::Session. Tous les modules de type Apache::Session sont utilisables excepté pour quelques fonctionnalités.

Backend | Partageable | Explorateur de sessions | Resctriction d'ouverture de session | Expiration des sessions | Commentaire
--- | --- | --- | --- | --- | ---
File |  | ✔ | ✔ | ✔ | Pas partageable entre serveurs sauf si utilisé avec le backend de configuration SOAP ou un système de partage de fichiers (NFS,…). Sélectionné par défaut lors de l'installation.
SQL | ✔ | ✔ | ✔ | ✔ | Pas optimisé pour l'exlorateur de sessions et les fonctionnalités de session unique.
LDAP | ✔ | ✔ | ✔ | ✔
Redis | ✔ | ✔ | ✔ | ✔ | Le plus rapide. Doit être securisé par un contrôle d'accès réseau.
MongoDB | ✔ | ✔ | ✔ | ✔ | Doit être securisé par un contrôle d'accès réseau.
Browseable (SQL, Redis ou LDAP) | ✔ | ✔ | ✔ | ✔ | Optimisé pour l'explorateur de sessions et les fonctionnalités de session unique.
SOAP | ✔ | ✔ | ✔ | ✔ | Backend proxy à utiliser avec un autre backend de sessions. Peut être utilisé pour sécuriser un autre backend pour des serveurs distants.

### Fournisseur d'identité

- Tous les protocoles de fournisseur d'identité peuvent être utilisés simultanément
- LemonLDAP::NG peut être utilisé comme proxy entre ces protocoles

- CAS 1.0 / 2.0 / 3.0
- SAML 2.0 / Shibboleth
- OpenID 2.0 (obsolete)
- OpenID Connect
- Get parameters provider

## Protection des applications

- Écrire les règles et en-têtes
- Variables qui peuvent être utilisées dans les règles et en-têtes
- Integrate vendor applications
- Integrate self-made applications
- Rejeu de formulaires
- Custom Handlers

### Well known compatible applications

Here is a list of well known applications that are compatible with LL::NG. A full list is available on vendor applications page.

## Fonctionnalités avancées

- Systèmes de notification
- Stockage du mot-de-passe en session
- Authentification inter-domaines (CDA)
- Contrôle d'accès basé sur les rôles (RBAC)
- Utiliser les fonctions personnalisées
- Utiliser les fonctions étendues
- Réinitialiser les mots-de-passe par mail (self-service)
- Create an account (self service)
- Propager les déconnexions aux applications
- Agent jeton sécurisé
- Cage sécurisée
- Historique de connexion
- Agent AuthBasic
- Support FastCGI
- Voir la liste complète des paramètres

## Mini howtos

- Modifier la protection du manager
- Configuration et sessions dans MySQL
- Configuration et sessions dans LDAP
- Accès à la configuration et aux sessions par SOAP
- Integration dans Active Directory (LDAP et Kerberos)
- Créer un proxy de protocoles (SAML vers OpenID, CAS vers SAML ,…)
- Convertir les en-têtes HTTP en variables d'environnement

## Exploitation

- Performances
- Sécurité
- SELinux
- Page de statut de l'agent
- Supervision MRTG
- Journalisation
- Messages d'erreur
- Haute disponibilité