# Sessions

LL::NG utilise un mécanisme de session basé sur un identifiant de session secret partagé entre l'utilisateur (dans un cookie SSO) et la base des sessions.

Pour configurer les sessions, aller dans le manager, `Paramètres généraux` » `Sessions` :

- Stocker le mot-de-passe de l'utilisateur dans les données de session : voir la documentation sur le stockage du mot-de-passe.
- Durée de vie maximale des sessions : durée de vie maximale des sessions. Les anciennes sessions sont effacées par un script cron.
- Délai d'expiration des sessions : durée maximale d'inactivité.
- Sessions update interval: Minimum interval used to update session when activity timeout is set.

Le délai d'expiration des sessions nécessite que les agents aient un accès en écriture à la base des sessions.

- Conditions d'ouverture : règles à évaluer avant d'autoriser l'ouverture de session. Si un utilisateur ne remplit pas une condition, il est averti par un message personnalisé. Ce message peut contenir des données de session tels les attributs ou les macros. Les conditions sont examinées dans l'ordre alphabétique des commentaires.
- Sessions Storage: you can define here which session backend to use, with the backend options. See sessions database configuration to know which modules you can use. Here are some global options that you can use with all sessions backends:
  - generateModule: allows one to override the default module that generates sessions identifiers. For security reasons, we recommend to use Lemonldap::NG::Common::Apache::Session::Generate::SHA256
  - IDLength: length of sessions identifiers. Max is 32 for MD5 and 64 for SHA256
- Sessions multiples, on peut retreindre le nombre de sessions ouvertes :
  - Une session seulement par utilisateur : on ne peut ouvrir 2 sessions avec le même compte.
  - Une IP par utilisateur : un utilisateur ne peut ouvrir 2 sessions avec différentes adresses IP.
  - Un utilisateur par adresse IP : 2 utilisateurs ne peuvent ouvrir de sessions avec la même adresse IP.
  - Afficher les sessions effacées : affiche les sessions effacées lors de la phase d'authentification.
  - Afficher les autres sessions : affiche les autres sessions ouvertes lors de la phase d'authentification avec un lien pour les effacer.

Note that since HTTP protocol is not connected, restrictions are not applied to the new session: the oldest are destroyed.