Passer au contenu principal

WebAuthn

Vue d'ensemble

Nous sommes ravis d'informer les clients de Casdoor que Casdoor prend désormais en charge la connexion avec WebAuthn. Cela signifie que vous pouvez vous connecter en utilisant vos identifications biologiques telles que les empreintes digitales ou la reconnaissance faciale, ou même des clés U-disks, à condition que votre appareil prenne en charge ces méthodes d'autorisation cool et WebAuthn.

Qu'est-ce que WebAuthn ?

WebAuthn est l'API d'authentification Web, une spécification écrite par le W3C et FIDO en collaboration avec Google, Mozilla, Microsoft, Yubico et d'autres. Cette API permet aux serveurs d'enregistrer et d'authentifier les utilisateurs en utilisant la cryptographie à clé publique au lieu d'un mot de passe. Elle permet aux serveurs de s'intégrer avec des authentificateurs forts intégrés dans les appareils, tels que Windows Hello ou Touch ID d'Apple.

Pour le dire simplement, WebAuthn exige des utilisateurs de générer une paire de clés publique-privée et de fournir la clé publique au site web. Lorsqu'un utilisateur souhaite se connecter à un site web, le web génère un nombre aléatoire et demande à l'utilisateur de le chiffrer avec sa clé privée et de renvoyer le résultat. Après réception du résultat, le site web utilise la clé publique pour le déchiffrer. Si le nombre déchiffré correspond au nombre aléatoire généré plus tôt, l'utilisateur est considéré comme un utilisateur légitime et se voit accorder l'accès pour se connecter. La combinaison de la clé publique et des informations nécessaires, comme le nom d'utilisateur ou des informations sur l'autorisateur de l'utilisateur, est appelée la Credential WebAuthn, qui est stockée par le site web.

La paire de clés publique-privée est exclusivement et uniquement associée à trois informations : le nom d'utilisateur de l'utilisateur, l'autorisateur de l'utilisateur et l'URL du site web. Cela signifie que si la combinaison (nom d'utilisateur de l'utilisateur, autorisateur de l'utilisateur et URL du site web) est la même, la paire de clés devrait être identique, et vice versa.

Pour plus d'informations détaillées sur la technologie WebAuthn, vous pouvez visiter https://webauthn.guide/.

Comment utiliser WebAuthn dans Casdoor ?

Sur la page de connexion, vous avez peut-être déjà remarqué l'option de se connecter en utilisant WebAuthn. Cependant, si vous n'avez pas encore de Credential WebAuthn (qui peut être comparé à un mot de passe WebAuth), ce tutoriel vous montrera comment créer et gérer une Credential et ensuite vous connecter en utilisant celle-ci.

Étape 0 : Modifier les configurations et activer l'authentification WebAuthn

Dans le fichier conf/app.conf, vous pouvez trouver la configuration suivante :

origin = "http://localhost:8000"

Veuillez vous assurer que cette configuration correspond exactement à l'URL de votre site web.

Note : Seul HTTPS est pris en charge pour WebAuthn, sauf si vous utilisez localhost.

Ensuite, connectez-vous en tant qu'administrateur et allez à la page d'édition de votre application. Activez l'interrupteur "Enable WebAuthn signin". Par défaut, cette fonctionnalité n'est pas activée.

Étape 1 : Aller à la page "Mon Compte"

Naviguez vers la page du compte. Sur cette page, vous devriez voir le bouton "Ajouter Credential WebAuthn" et une liste affichant toutes les Credentials WebAuthn que vous avez précédemment enregistrées.

WebAuthn1

Cliquez sur le bouton et suivez les instructions de votre appareil pour enregistrer une nouvelle Credential dans Casdoor. Vous pouvez supprimer n'importe quelle Credential en utilisant le bouton "delete" dans la liste.

Étape 2 : Se connecter en utilisant WebAuthn

Avant de commencer cette étape, assurez-vous de vous être déconnecté de Casdoor.

Allez à la page de connexion, sélectionnez la méthode de connexion WebAuthn, entrez votre nom d'utilisateur et cliquez sur le bouton de connexion. Suivez les instructions de votre appareil.

(Par exemple, si vous utilisez l'empreinte digitale et Windows Hello, vous devriez voir quelque chose comme ceci)

WebAuthn2

Vous serez alors connecté avec succès.