Le backend de session explorable (Apache::Session::Browseable) fonctionne exactement comme le module Apache::Session::* correspondant mais ajoute des index qui améliore les performances de l'explorateur de session et les restrictions de sessions.
Lorsqu'on utilise des fonctionnalités telles SAML (authentification ou fournisseur d'identité), CAS (fournisseur d'identité) ou le service de réinitialisation de mots-de-passe, il faut également indexer quelques champs.
Le tableau suivant liste les champs à indexer suivant les fonctionnalités dont on souhaite améliorer les performances :
Fonctionnalité | Champs à indexer |
---|---|
Explorateur de sessions | ipAddr WHATTOTRACE |
Session explorer (persistent sessions) | _session_uid |
Resctriction d'ouverture de session | ipAddr WHATTOTRACE |
Authentification ou fourniture d'identité SAML | _saml_id ProxyID _nameID _assert_id _art_id _session_id |
Fourniture d'identité CAS | _cas_id |
Réinitialisation de mots-de-passe | user |
Il est possible d'utiliser Redis comme expliqué dans Backend de sessions Redis.
Il suffira juste d'ajouter le paramètre Index
dans Paramètres généraux
» Sessions
» Stockage des sessions
» Module Apache::Session
:
Paramètres exigés | ||
---|---|---|
Nom | Commentaire | Exemple |
server | Serveur Redis | 127.0.0.1:6379 |
Index | Index | _whatToTrace ipAddr |
La base de donnée doit être préparée exactement comme celle du backend de session SQL si ce n'est qu'un champ doit être ajouté pour chaque donnée à indexer.
CREATE TABLE sessions ( id CHAR(32) NOT NULL PRIMARY KEY, a_session BLOB, _whatToTrace VARCHAR(255), ipAddr VARCHAR(15), KEY _whatToTrace (_whatToTrace), KEY ipAddr (ipAddr) );
Aller dans le manager et mettre le module de session (Apache::Session::Browseable::MySQL pour MySQL) dans Paramètres généraux
» Sessions
» Stockage des sessions
» Module Apache::Session
et ajouter le paramètre suivant (sensible à la casse) :
Paramètres exigés | ||
---|---|---|
Nom | Commentaire | Exemple |
DataSource | La chaîne DBI | dbi:mysql:dbname=sessions |
UserName | Le login de la base de données | lemonldapng |
Mot-de-passe | Le mot de passe de la base de données | mysuperpassword |
Index | Index | _whatToTrace ipAddr |
Pour les bases de données telles PostgreSQL, ne pas oublier d'ajouter “Commit” avec une valeur de 1
Aller dans le manager et mettre le module de session à Apache::Session::Browseable::LDAP
Configurer ensuite les options comme dans le backend de sessions LDAP.
Il faut ajouter le champ Index
, on peut aussi configurer le champ ldapAttributeIndex
pour indiquer le nom d'attribut dans lequel les index doivent être stockés.
Paramètres exigés | ||
---|---|---|
Nom | Commentaire | Exemple |
ldapServer | URI du serveur | ldap://localhost |
ldapConfBase | DN de la branche des sessions | ou=sessions,dc=example,dc=com |
ldapBindDN | Login de connexion | cn=admin,dc=example,dc=password |
ldapBindPassword | Mot-de-passe de connexion | secret |
Index | Liste d'index | _whatToTrace ipAddr |
Paramètres optionnels | ||
Nom | Commentaire | Valeur par défaut |
ldapObjectClass | Objectclass de l'entrée | applicationProcess |
ldapAttributeId | Attribut où stocker l'idetifiant de session | cn |
ldapAttributeContent | Attribut où stocker le contenu de la session | description |
ldapAttributeIndex | Attribut où stocker les index | ou |
Restreindre l'accès réseau au backend.
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.