RFC Webauthn
Ce sujet vise à documenter les objectifs du projet Discourse concernant l’authentification FIDO2 / Webauthn.
Pourquoi ?
L’ajout de la prise en charge de Webauthn à Discourse augmentera la sécurité des comptes utilisateurs, permettant des comptes sans mot de passe facilement accessibles grâce aux fonctionnalités sécurisées de leurs appareils, comme un lecteur d’empreintes digitales sur smartphone.
Méthodes d’authentification
- Webauthn comme authentificateur à deux facteurs (fonctionne comme une alternative à Google Authenticator)
- Webauthn comme authentificateur à un facteur (fonctionne comme une alternative à la connexion sociale)
- Webauthn comme authentificateur multifactoriel (connexion sans nom d’utilisateur)
Webauthn comme authentificateur à deux facteurs
Cela permettra à un utilisateur Discourse, qui possède déjà un compte actif, d’utiliser Webauthn comme 2FA, là où nous ne prenons actuellement en charge que le TOTP.
N’importe quelle méthode Webauthn peut fonctionner ici, qu’il s’agisse de biométrie de l’appareil (capteur d’empreintes digitales sous Android, Windows Hello sur ordinateur portable), d’une puce sécurisée de l’appareil (TPM, enclave sécurisée) ou d’une clé matérielle (comme une Yubikey).
Cela serait disponible pour tout utilisateur naviguant avec :
- Microsoft Edge sur Windows, utilisant Windows Hello (avec reconnaissance faciale, lecteur d’empreintes digitales ou code PIN)
- Chrome sur macOS, utilisant Touch ID
- Téléphone Android
- Ordinateur portable/ordinateur de bureau/téléphone + Clé physique (Yubikey, Google Titan)
Webauthn comme authentificateur à un facteur (comptes sans mot de passe)
Permet à un utilisateur de se connecter à son compte Discourse en utilisant l’authentification Webauthn comme alternative à un mot de passe. Si un authentificateur à un facteur est configuré, l’utilisateur sera invité à utiliser l’authentificateur au lieu d’un mot de passe.
Les mêmes méthodes d’authentification pour l’authentification à deux facteurs fonctionneront pour l’authentification à un facteur : biométrie, puce sécurisée ou clé matérielle.
Flux d’enregistrement
Aucun champ de mot de passe
Flux de connexion
Webauthn comme authentificateur multifactoriel (connexions sans nom d’utilisateur)
Exposera une méthode de connexion alternative qui ne demande que des entrées Webauthn. La clé de sécurité enregistrée transmettra également des informations sur l’ID utilisateur au serveur Discourse.
Cette méthode d’authentification nécessite actuellement une clé d’authentification moderne (par exemple une Yubikey 5) ainsi que Google Chrome 76+, car elle repose sur une fonctionnalité appelée « Clés résidentes ». Comme cela stocke des données sur l’authentificateur, il peut y avoir des limites ; par exemple, une Yubikey 5C ne peut stocker que jusqu’à 25 de ces clés.
Flux d’enregistrement
Ces flux sont une évolution de celui pour les connexions sans mot de passe, et non un flux de connexion séparé. Cela permet une mise en œuvre itérative.
Aucun champ de mot de passe, ajoute une case à cocher supplémentaire pour l’utilisation des clés résidentes
Flux de connexion
Si le nom d’utilisateur est laissé vide, nous essaierons de récupérer un
user_id depuis l’authentificateur
Références
Démos
https://webauthndemo.appspot.com/
Ressources
https://medium.com/@herrjemand/introduction-to-webauthn-api-5fd1fb46c285


























