Table of Contents

Backend de sessions SQL

SQL session backend can be used with many SQL databases such as:

Mise en marche

Preparer la base de données

Il faut dédier une table pour héberger les sessions. Quelques exemples pour les serveurs principaux.

If your database doesn't accept UTF-8 characters in 'text' field, use 'blob' instead of 'text'.

MySQL

Créer une base de données si nécessaire :

mysqladmin create lemonldapng

Créer la table des sessions :

CREATE TABLE sessions (
    id CHAR(32) NOT NULL PRIMARY KEY,
    a_session text
    );
Changer char(32) en char(64) pour utiliser l'algorithme de hashage SHA256 (recommandé). Voir Sessions pour plus de détails
You can change table name sessions to whatever you want, just adapt the parameter TableName in module options.

PostgreSQL

Créer un utilisateur et un rôle :

su - postgres
createuser lemonldap-ng -P
Entrez le mot de passe pour le nouveau rôle : <PASSWORD>
Entrez-le de nouveau : <PASSWORD>
Le nouveau rôle est-il un super-utilisateur ? (o/n) n
Le nouveau rôle doit-il être autorisé à créer des bases de données ? (o/n) n
Le nouveau rôle doit-il être autorisé à créer de nouveaux rôles ? (o/n) n

Créer la base de données :

createdb -O lemonldap-ng lemonldap-ng

Créer la table:

psql -h 127.0.0.1 -U lemonldap-ng -W lemonldap-ng
Mot de passe pour l'utilisateur lemonldap-ng :
[...]
lemonldap-ng=> create table sessions ( id char(32) not null primary key, a_session text );
lemonldap-ng=> q
Changer char(32) en char(64) pour utiliser l'algorithme de hashage SHA256 (recommandé). Voir Sessions pour plus de détails

Manager

Aller dans le Manager et choisir le module de session (par exemple Apache::Session::Browseable::Postgres pour PostgreSQL) dans Paramètres généraux » Sessions » Stockage des sessions » Module Apache::Session et ajouter les paramètres suivants (sensible à la casse):

Paramètres exigés
Nom Commentaire Exemple
DataSource La chaîne DBI dbi:Pg:dbname=sessions;host=10.2.3.1
UserName Le login de la base de données lemonldapng
Mot-de-passe Le mot de passe de la base de données mysuperpassword
Commit Requis pour PostgreSQL 1
TableName Name of the table sessions

Il faut consulter la page de manuel correspondant à la base de données (Apache::Session::MySQL, …) pour connaître les paramètres. Il faut également installer le connecteur à la base de données (DBD::Oracle, DBD::Pg,…)

Pour MySQL, il faut ajouter quelques paramètres :
  • LockDataSource
  • LockUserName
  • LockPassword

Si MySQL est choisi, lire comment augmenter les performances de MySQL.

Sécurité

Restreindre l'accès réseau à la base de données.

On peut utiliser différent login/mot-de-passe pour les serveurs en surchargeant les paramètres globalStorage et globalStorageOptions dans le fichier lemonldap-ng.ini.