Principes des logs d'authentification
Les demandes d'authentification sur la WebUI peuvent venir de plusieurs points d'entrées :
- Une connexion sur l'interface de Visualisation
- Un appel aux URL des pages de reporting ( voir la page Générer le rapport CSV par URL ou via un script )
Afin de pouvoir suivre une demande d'authentification sans tracer l'utilisateur un uuid est généré par connexion.
- Pour le suivre il suffit de rechercher "authentication phase id-XXXX", XXXX étant une chaîne alphanumérique ( Ex : id-eaa09e3a8b2d11eb937a080027cc5994 )
Afin de respecter la Réglementation Générale sur la Protection des Données,
- les logs en INFO ne doivent pas identifier un utilisateur mais juste tracer une connexion
- les logs en WARNING, DEBUG ou ERROR peuvent afficher des informations sur les utilisateurs car ces logs sont utiliser à des fins de diagnostique de l'application
La WebUI initie donc les logs et demande à chacun de ses sous-modules d'authentifier l'utilisateur. Les logs concernant chacun des modules se trouvent dans leur page.
Descriptions des logs
Initialisation de la demande d'authentification
Un premier log permet d'initialiser une "authentication phase" avec un identifiant.
"L'authentication phase id" est généré aléatoirement sans prendre en compte les données de l'utilisateur. Cet identifiant unique permet seulement de suivre une requête de connexion sans pouvoir identifier un utilisateur.
Si le même utilisateur se connecte une seconde fois ou sur un autre poste, l'identifiant généré sera totalement différent.
[YYYY-MM-DD HH:MM:SS] INFO : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] Need to check a user authentication ( authentication phase id-eaa09e3a8b2d11eb937a080027cc5994 )
Parcours des sous-modules pour authentifier les utilisateurs
La WebUI va ensuite parcourir tous ses sous-modules et demander à tous ceux qui ont la fonction "check_auth" d'authentifier les utilisateurs :
[YYYY-MM-DD HH:MM:SS] INFO : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] Use module "auth-active-directory" to authenticate user ( authentication phase id-b6a7f0ae8bc511ebb37a080027cc5994 )
Authentification réussie
Si le sous-module a authentifier l'utilisateur, la WebUI l'indique :
[YYYY-MM-DD HH:MM:SS] INFO : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] The user has been authenticated by the module "auth-active-directory" ( authentication phase id-b6a7f0ae8bc511ebb37a080027cc5994 )
Un log de DEBUG vient compléter le nom de l'utilisateur qui a réussit à se connecter :
[YYYY-MM-DD HH:MM:SS] DEBUG : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] User "user.example" is authenticated ( authentication phase id-b6a7f0ae8bc511ebb37a080027cc5994 )
La phase d'authentification est terminée.
Authentification échouée
Si aucun des sous-modules n'a authentifier, l'utilisateur alors un log d'info va afficher qu'un utilisateur n'a pas put se connecter :
[YYYY-MM-DD HH:MM:SS] INFO : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] We tried to authenticate the user with all active module but it failed. AUTHENTICATION FAILED ( authentication phase id-b6a7f0ae8bc511ebb37a080027cc5994 )