Authentification forte des utilisateurs

Principe général

Depuis la version 6.0.0 de MedShakeEHR, il est possible d’utiliser une authentification forte de l’utilisateur à deux facteurs.
La technique employée est l’ajout d’un OTP (one time password). Elle nécessite que l’utilisateur soit toujours en possession de son téléphone pour pouvoir s’identifier et utiliser MedShakeEHR.

D’autre part depuis cette même version un échec d’authentification, classique ou forte, ajoute une ligne dans les l’historique système ce qui ouvre la porte à l’utilisation de processus de sécurité au niveau serveur.

Mise en œuvre de l’authentification forte

Configuration

Coté configuration, les choses sont simples : il suffit de passer le paramètre de configuration optionGeLogin2FA à true (false par défaut) en zone d’administration.

Côté utilisateur

Après que le paramètre optionGeLogin2FA ait été mis à true, les utilisateurs réalisant ensuite une première authentification sont automatiquement redirigés vers une page explicative.

Cette page présente les consignes et le flash code nécessaire à la copie de la clef de sécurité dans l’application.
Il est impératif à ce stade que l’utilisateur réalise la procédure sinon il ne pourra plus se loguer dans MedShakeEHR faute de pouvoir fournir l’OTP nécessaire.

La procédure effectuée, l’utilisateur est amené à la page de login où il va réaliser sa première identification à 2 facteurs.

Applications smartphones compatibles

Par défaut, les paramètres choisis pour la génération de l’OTP (fixés dans le code source) le sont pour être le plus standard possible.
Nous vous conseillons par exemple l’utilisation de FreeOTP éditée par RedHat. Toutes les applications des grands noms de l’informatique fonctionnent également (mais peut-on raisonnablement leur confier ce genre de données personnelles ?).

Authentification échouée : messages dans l’historique système

Code qui génère l’erreur dans l’historique système en cas d’échec d’authentification générale (classique ou forte) :

openlog("MedShakeEHR", LOG_PID | LOG_PERROR, LOG_LOCAL0);
syslog(LOG_WARNING, "MedShakeEHR - echec de connexion depuis {$_SERVER['REMOTE_ADDR']}");

Code qui génère l’erreur dans l’historique système en cas d’échec d’authentification phonecature :

openlog("MedShakeEHR", LOG_PID | LOG_PERROR, LOG_LOCAL0);
syslog(LOG_WARNING, "MedShakeEHR - echec de connexion phonecapture depuis {$_SERVER['REMOTE_ADDR']}");
 

Article précédent