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 Rapport par URL )
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 utilisés à des fins de diagnostic 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
Tous les logs d’authentification seront regroupés sous le chapitre [ AUTHENTICATION ]
Suivant l'origine de la demande, le chapitre suivant sera :
- [ UI Visualization ] : Une connexion sur l'interface de Configuration
- [ REPORTING ] : Un appel sur les URLs de génération de rapport
Exemple :
[YYYY-MM-DD HH:MM:SS] INFO : [ DAEMON-NAME ] [ AUTHENTICATION ]
Initialisation de la demande d'authentification
Un premier log permet d'initialiser une "authentication phase" avec un identifiant.
[YYYY-MM-DD HH:MM:SS] INFO : [ MODULE-NAME ] [ AUTHENTICATION ] [ UI Visualization ] Need to check a user authentication ( authentication phase id-eaa09e3a8b2d11eb937a080027cc5994 )
L'authentification 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é est totalement différent.
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 authentifié, 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 )
Authentification échouée
Si aucun des sous-modules n'a authentifié l'utilisateur, alors un log d'info va afficher qu'un utilisateur n'a pas pu 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 )