A partir de la version 26, 3 nouvelles fonctions permettent d’ajouter une authentification en deux étapes pour sécuriser l’accès à une application. Une clé TOTP est générée afin de pouvoir utiliser une application de génération de codes comme Google ou Microsoft Authenticator :
- DoubleAuthGénèreCleTOTP : génération d’une Clé TOTP pour une adresse,
- DoubleAuthGénèreLien : génération d’un lien pour enregistrer un compte dans une application d’authentification.
- DoubleAuthVérifieCode : vérification du code donné par une application d’authentification.
Cela permet d’ajouter en toute simplicité une double authentification dans une application existante. En plus de l’étape d’authentification habituelle, une étape supplémentaire permet à l’utilisateur de donner un code affiché sur son téléphone.
Le principe complet :
- l’application génère une clé TOTP pour une adresse, qui doit être mémorisée,
-
pour l’étape de double authentification l’application doit permettre :
- la saisie d’un code à 6 chiffres reçu dans Google Authenticator,
- l’affichage d’un QR Code pour ajouter l’adress de l’utilisateur dans Google Authenticator.
Ce QR code sert uniquement pour que l’utilisateur ajoute son adressse dans Google Authenticator à sa première exécution.
- la saisie d’un code à 6 chiffres reçu dans Google Authenticator,
- le contrôle du code saisi par l’utilisateur, afin de l’autoriser ou non le démarrage de l’application.
1. Enregistrement de l’application dans Google Authenticator :
L’application pour l’adresse donnée doit être une fois pour toutes enregistrée dans Google Authenticator. La fenêtre de connexion doit donc avoir une option pour afficher un champ QR code :
sAdresse est une chaîne = « monadresse@masociete.com »
sCléGoogle est une chaîne ANSI = DoubleAuthGénèreCléTOTP(sAdresse)
CBA_QR_Autentificator = DoubleAuthGénèreLien(sCléGoogle, sAdresse, « Mon Appli »)
Le champ code-barre contiendra un QR Code à lire avec l’application Google Authenticator (clic sur le « + » en bas à droite de l’application) :
La clé obtenue, sCléGoogle dans l’exemple, devra être mémorisée dans l’application pour l’adresse donnée. Elle sera utile à chaque contrôle d’un code d’authentification.
2. Connexion à l’application avec Google Authenticator :
Une fois que l’utilisateur a l’application dans Google Authenticator pour son adresse, il peut obtenir à tout moment un code pour l’application.
Il suffit donc de créer une fenêtre de connexion qui va demander le code délivré par Google Authenticator. La fenêtre doit avoir :
- un champ de saisie à 6 chiffres que l’utilisateur va remplir avec le code obtenu pour son adresse dans Google Authentificator.
Attention, le champ doit être de type texte, car la séquence de 6 chiffres peut commencer par un zéro. Il est également courant d’avoir 6 champs pour saisir chaque chiffre, les champs sont alors en « Fin de saisie automatique » (cf. volet « Détail » de la description des champs).
-
un bouton, ou dans le code de modification du champ de saisie, pour vérifier le code Google. C’est la fonction WLangage DoubleAuthGénèreCléTOTP qui permettra le test :
sAdresse est une chaîne = « monadresse@masociete.com »
sCléGoogle est une chaîne ANSI = DoubleAuthGénèreCléTOTP(sAdresse) // Ou clé mémorisée
SI DoubleAuthVérifieCode(SAI_Code, sCléGoogle) ALORS …
Le principe est applicable :
- à l’identique avec le service d’authentification de Microsoft,
- également à une application iOS ou Android générée avec WINDEV mobile,
- ou à un site web généré avec WEBDEV.
e6ngq7