Skip to Content

Passkey / WebAuthn

Les Passkeys sont des identifiants FIDO2/WebAuthn qui permettent aux utilisateurs de s’authentifier avec la biométrie de leur appareil (Face ID, Touch ID, Windows Hello), des clés de sécurité matérielles (YubiKey) ou des authentificateurs de plateforme — sans mot de passe.

Les passkeys sont résistantes au phishing car elles sont liées au domaine de l’application et ne peuvent pas être utilisées sur des sites frauduleux. Elles ne sont jamais transmises au serveur, éliminant les risques liés au partage de secrets.


Support des Navigateurs

NavigateurVersion MinimaleAuthentificateur PlateformeClés Matérielles
Chrome108✅✅
Firefox119✅✅
Safari16.4✅✅
Edge108✅✅
Opera94✅✅
Samsung Internet22✅✅

Les passkeys sont synchronisées entre appareils via le trousseau iCloud (Apple), Google Password Manager ou Windows Hello for Business. Les utilisateurs qui configurent une passkey sur iPhone peuvent l’utiliser sur Mac et vice versa.


Configuration dans la Console

Active WebAuthn

Va dans Console → Paramètres → Authentification → Méthodes Passwordless et active Passkey / WebAuthn.

Configure l’Origine

Assure-toi que ton domaine est enregistré comme URL autorisée dans les paramètres de l’application. L’origine WebAuthn doit correspondre exactement au domaine de ton app (ex. https://votreapp.com).


Flux d’Inscription

Initie l’Inscription

Ton app demande les options d’inscription au serveur Auris.

import { startRegistration } from '@simplewebauthn/browser' const options = await fetch('/api/auth/webauthn/register/challenge', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` }, }).then(r => r.json())

Demande les Identifiants au Navigateur

const registration = await startRegistration(options)

Le navigateur affiche l’invite biométrique/passkey à l’utilisateur.

Vérifie sur le Serveur

const { verified } = await fetch('/api/auth/webauthn/register/verify', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` }, body: JSON.stringify(registration), }).then(r => r.json()) if (verified) { console.log('Passkey enregistrée !') }

Flux d’Authentification

Initie l’Authentification

import { startAuthentication } from '@simplewebauthn/browser' const options = await fetch('/api/auth/webauthn/authenticate/challenge', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: '[email protected]' }), }).then(r => r.json())

Obtiens l’Assertion du Navigateur

const assertion = await startAuthentication(options)

Vérifie et Obtiens les Tokens

const { tokens, user } = await fetch('/api/auth/webauthn/authenticate/verify', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(assertion), }).then(r => r.json())

Passkey comme Second Facteur

WebAuthn peut aussi être utilisé comme méthode MFA en plus de la connexion par mot de passe. Configure-le dans Console → Paramètres → MFA → Méthodes en activant WebAuthn/Passkey comme méthode MFA disponible.


Guides Associés