Découvrez les indices de crédential de clé publique WebAuthn / indices User-Agent, leur disponibilité, comment les utiliser, ainsi que leurs limites et les recommandations existantes.
Vincent
Created: August 8, 2025
Updated: August 13, 2025
Passkeys Series: WebAuthn Advanced
See the original blog version in English here.
Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.
WebAuthn et les passkeys connaissent un essor considérable et sont de plus en plus adoptés. D'un point de vue technique, la norme WebAuthn évolue également rapidement. Les indices de crédential de clé publique WebAuthn (également appelés indices User-Agent) sont le dernier ajout à l'API Web Authentication, visant à améliorer la manière dont les développeurs implémentent l'authentification par passkey dans leurs applications.
Dans cet article, nous répondrons aux questions suivantes :
Commençons par examiner la motivation.
Recent Articles
📝
Comment construire un vérificateur d'identifiants numériques (Guide du développeur)
📝
Comment créer un émetteur d'identifiants numériques (Guide du développeur)
📖
Clé résidente WebAuthn : les informations d'identification détectables en tant que passkeys
🔑
Accès par badge physique et Passkeys : Guide technique
🔑
MFA obligatoire et transition vers les Passkeys : les bonnes pratiques
Aujourd'hui, il existe différents endroits où l'on peut créer et stocker un passkey :
Pour l'utilisateur, cela peut offrir de la flexibilité et une liberté de choix. Cependant, certaines applications et certains scénarios exigent de restreindre certaines de ces options, par exemple si l'on souhaite autoriser uniquement les clés de sécurité matérielles en raison d'exigences de sécurité accrues.
Pour influencer cette
création de passkey et son stockage,
nous disposions de la propriété authenticatorAttachment
.
Le paramètre authenticatorAttachment
permet aux parties de confiance de restreindre
l'endroit où le passkey peut être créé.
platform
indique un authentificateur intégré à l'appareil qui
exécute WebAuthn. WebAuthn communique avec lui en utilisant des méthodes de transport
spécifiques à cette plateforme, comme des API propres à la plateforme. Un crédential de
clé publique lié à un authentificateur de plateforme
est appelé un crédential de plateforme. Dans la liste ci-dessus, les gestionnaires de
crédentials / emplacements suivants pourraient stocker des crédentials de plateforme :
Windows 11 et Chrome :
macOS 15 (Sequoia) et Chrome :
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
macOS 15 (Sequoia) et Safari :
cross-platform
indique un authentificateur externe à
l'appareil qui exécute WebAuthn (authentificateur itinérant) car il peut être utilisé sur
plusieurs appareils. WebAuthn interagit avec lui en utilisant des protocoles de transport
multiplateformes comme Bluetooth ou NFC. Un crédential de clé publique associé à un
authentificateur itinérant est appelé un crédential itinérant. Dans la liste ci-dessus,
les gestionnaires de crédentials / emplacements suivants pourraient stocker des
crédentials multiplateformes :
Windows 11 et Chrome :
macOS 15 (Sequoia) et Chrome :
macOS 15 (Sequoia) et Safari :
Non spécifié indique qu'un authentificateur de plateforme ou un authentificateur multiplateforme peut être utilisé. Ici, l'utilisateur peut choisir où il souhaite stocker les passkeys.
Windows 11 et Chrome :
macOS 15 (Sequoia) et Chrome :
macOS 15 (Sequoia) et Safari :
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
authenticatorAttachment
a été utilisé pendant un certain temps. Cependant, il manquait
de flexibilité face aux nouvelles évolutions comme
l'authentification inter-appareils (via des codes QR et
Bluetooth). Ici, un passkey est également stocké, par exemple, dans le
Gestionnaire de mots de passe Google
(crédential de plateforme) mais déclenché avec cross-platform
par la partie de
confiance. De plus, le contrôle d'une
partie de confiance pour influencer le type de passkey
à utiliser lors d'une cérémonie de connexion (et non d'inscription) ne pouvait se faire
qu'en modifiant la valeur transports
d'un crédential.
C'est là que les indices de crédential de clé publique WebAuthn entrent en jeu.
Les indices de crédential de clé publique WebAuthn sont un nouveau paramètre introduit dans l'API Web Authentication (officiellement dans WebAuthn Level 3). Ils fournissent des indications aux navigateurs sur le type d'authentificateur qu'un utilisateur est susceptible d'utiliser pendant le processus d'authentification. Cela aide à offrir une expérience utilisateur plus fluide et intuitive en concentrant l'interface du navigateur sur les options les plus pertinentes.
Les trois types d'indices
Les indices se déclinent en trois types :
security-key
: Indique que l'utilisateur est censé utiliser une
clé de sécurité matérielle (par ex.
YubiKey).client-device
: Suggère que l'utilisateur utilisera un
authentificateur de plateforme attaché à l'appareil
client (comme Touch ID sur macOS, Face ID sur iOS
ou Windows Hello sur Windows).hybrid
: Implique que l'utilisateur pourrait utiliser un smartphone ou une
tablette pour l'authentification inter-appareils via un
code QR et Bluetooth.Ces indices ne sont pas des exigences strictes de la part de la partie de confiance, mais servent d'indications au navigateur pour améliorer l'expérience utilisateur.
Ci-dessous, vous voyez des captures d'écran pour macOS Sequoia (Edge + Chrome) et Windows
10 (Chrome) avec authenticatorAttachment
non spécifié et l'indice
User-agent WebAuthn défini sur
security-key
.
Ici, nous constatons une autre limite : l'indice security-key
n'est pas respecté sur
Windows 10, du moins pas directement. Le flux est essentiellement le même que pour
l'indice client-device
.
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
Ci-dessous, vous voyez des captures d'écran pour macOS Sequoia (Edge + Chrome) et Windows
10 (Chrome) avec authenticatorAttachment
non spécifié et l'indice
User-agent WebAuthn défini sur
client-device
.
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
En cliquant sur Annuler, la fenêtre modale suivante apparaît :
Ci-dessous, vous voyez des captures d'écran pour macOS Sequoia (Edge + Chrome) et Windows
10 (Chrome) avec authenticatorAttachment
non spécifié et l'indice
User-agent WebAuthn défini sur
hybrid
.
Avec l'introduction des indices, les développeurs peuvent désormais fournir un tableau de préférences par ordre de priorité décroissante, offrant ainsi plus de flexibilité.
L'extrait de code ci-dessous indique au navigateur que l'utilisateur est susceptible de s'authentifier à l'aide d'une clé de sécurité matérielle, adaptant ainsi l'interface utilisateur en conséquence.
Pour la compatibilité avec les anciens user-agents, lorsque cet indice est utilisé dans
PublicKeyCredentialCreationOptions,
authenticatorAttachment
doit être défini sur cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['security-key'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
L'indice security
est particulièrement utile dans les cas de haute assurance où le site
web / la partie de confiance ne veut autoriser que les
clés de sécurité matérielles
et pousse l'utilisateur dans cette direction.
Dans cet exemple, l'indice suggère que l'utilisateur pourrait utiliser l'authentificateur de plateforme intégré de l'appareil actuel.
Pour la compatibilité avec les anciens user-agents, lorsque cet indice est utilisé dans
PublicKeyCredentialCreationOptions,
authenticatorAttachment
doit être défini sur platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['client-device'], authenticatorSelection: { authenticatorAttachment: 'platform' } } });
Définir l'indice client-device
est bénéfique s'il y a plusieurs passkeys associés à un
compte utilisateur et que certains d'entre eux pourraient être disponibles sur l'appareil
qui se connecte, tandis que d'autres sont stockés sur différents appareils. Si le système
(passkey intelligence)
détecte que l'utilisateur qui tente de se connecter a une forte probabilité de disposer
d'un passkey local, alors cet indice peut être défini dans les
PublicKeyCredentialRequestOptions, évitant
à l'utilisateur un clic pour sélectionner le bon passkey.
Dans cet exemple, l'indice suggère que l'utilisateur pourrait utiliser un smartphone ou un appareil similaire pour l'authentification.
Pour la compatibilité avec les anciens user-agents, lorsque cet indice est utilisé dans
PublicKeyCredentialCreationOptions,
authenticatorAttachment
doit être défini sur cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
L'indice hybrid
peut être utile si l'utilisateur a plusieurs clés et que le système
(passkey intelligence)
détecte que sur l'appareil actuel, il n'y a probablement pas de passkey local disponible.
Pour améliorer l'UX et économiser un clic, vous pouvez définir cet indice
User-agent WebAuthn et inviter
directement l'utilisateur à une authentification inter-appareils (via
code QR et Bluetooth). De plus, si vous essayez de
construire un système de
passkey mobile-first,
alors définir cet indice est très pertinent.
Pour expérimenter vous-même avec les différentes options, nous vous recommandons de jeter un œil au Passkeys Debugger.
Il est crucial de comprendre comment les indices de crédential de clé publique WebAuthn
interagissent avec d'autres paramètres WebAuthn comme authenticatorAttachment
et
credential transports
.
Premièrement, il est important de noter que ces indices ne sont pas des exigences strictes. Ils ne lient pas le user-agent (navigateur) mais servent d'indications pour fournir la meilleure expérience en tirant parti des informations contextuelles que vous avez sur la requête. Cela signifie que les navigateurs peuvent choisir de prendre en compte les indices mais ne sont pas obligés de les suivre strictement.
Les indices sont fournis sous forme de tableau par ordre de préférence décroissante. Cet ordre détermine comment le navigateur doit les prioriser :
Exemple :
hints: ['security-key', 'hybrid', 'client-device']
Dans ce tableau :
security-key
.hybrid
.client-device
(les authentificateurs de
plateforme sur l'appareil client).Les indices peuvent contredire les informations contenues dans
authenticatorAttachment
et credential transports
. Lorsque cela se produit, les
indices ont la priorité. Cela offre plus de flexibilité par rapport à l'utilisation
stricte précédente de authenticatorAttachment
, qui limitait
l'authentificateur à platform
ou cross-platform
.
Exemple avec des paramètres contradictoires :
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'platform' // Contredit l'indice } } });
Dans ce cas :
platform
, ce qui limite normalement les
authentificateurs à l'appareil client.authenticatorAttachment
,
se concentrant sur les options hybrides.Actuellement, les indices de crédential de clé publique WebAuthn ne sont disponibles que dans Chrome (depuis la version 128). À ce jour, Edge et Safari ont indiqué leur intention d'intégrer cette fonctionnalité, tandis que Firefox n'a pas encore confirmé son calendrier de publication.
Navigateur | Chrome | Edge | Safari | Firefox |
---|---|---|---|---|
Disponibilité | ✅ depuis la version 128 | ✅ depuis la version 128 | Prévu | N/A |
Il est important de se rappeler que dans Chrome, le paramètre
authenticatorAttachment
continue d'être respecté pour le moment. Cela signifie
qu'aujourd'hui, authenticatorAttachment
est le facteur décisif, quel que soit l'indice
défini. Cependant, nous nous attendons à ce que dans les futures versions de Chrome, les
indices de crédential de clé publique deviennent l'approche préférée et unique.
Même si la dernière version de Chrome prend en charge les indices User-agent WebAuthn, ces indices ne sont pas respectés par Windows 11 et Windows Hello / Sécurité Windows. La raison sous-jacente est que l'interface utilisateur est contrôlée par le système d'exploitation (Windows Hello / Sécurité Windows) lui-même.
De plus, pour un passkey stocké dans le Gestionnaire de mots de passe Google et synchronisé avec Windows 11, les indices User-agent WebAuthn ne sont pas respectés, car l'authentification locale finale sur Windows 11 se fait avec Windows Hello / Sécurité Windows. Avec la synchronisation à venir des passkeys sur Windows 11 via les comptes Microsoft, nous nous attendons également à des améliorations pour Windows 11 et les indices User-agent WebAuthn.
Sur Windows 10, les indices User-agent WebAuthn sont cependant respectés, car
l'interface utilisateur WebAuthn est gérée par Chrome et non par
Windows Hello / Sécurité Windows. Cependant, lors de nos tests,
nous n'avons pas vu d'effet pour security-key
. Lorsque cet indice était défini, le flux
ressemblait à celui de client-device
.
Les indices de crédential de clé publique WebAuthn (indices user-agent) apportent de nombreux avantages tant aux développeurs qu'aux utilisateurs. La fonctionnalité est encore nouvelle et n'est pas encore déployée sur tous les navigateurs et systèmes d'exploitation (en octobre 2024).
Il est important d'être conscient des limites actuelles, notamment celles liées à Windows 11. Sous Windows 11, l'interface utilisateur des passkeys est gérée par Windows Hello (fenêtre modale de sécurité de Windows Hello) et cela prévaut actuellement sur le support de Chrome / Edge pour les indices User-agent WebAuthn. Cela s'applique également aux passkeys synchronisés depuis le Gestionnaire de mots de passe Google vers Windows (ici, les indices n'ont pas encore d'effet non plus).
Cela signifie que les indices de crédential de clé publique WebAuthn ne fonctionnent réellement que sur macOS et Windows 10 (parmi les principaux systèmes d'exploitation de bureau).
De plus, en octobre 2024, même si Chrome / Edge est utilisé sur ces systèmes
d'exploitation, si authenticatorAttachment
est défini, il prévaut également sur les
indices User-agent WebAuthn (comme
indiqué par Google).
Du point de vue des cas d'utilisation, nous voyons les cas d'utilisation recommandés suivants pour tirer le meilleur parti de cette nouvelle fonctionnalité.
Lors de la construction de votre backend et de votre passkey intelligence, essayez
d'inclure l'utilisation correcte des indices de crédential de clé publique pour faciliter
la connexion et éviter à l'utilisateur des clics inutiles. Par exemple, si votre système
détecte qu'un utilisateur se connecte sur un appareil où un passkey local est probablement
disponible, utilisez l'indice client-device
.
Si l'utilisateur accède au site web depuis un nouvel appareil et que votre
passkey intelligence
sait qu'un passkey pourrait être disponible sur un appareil mobile de l'utilisateur,
définissez l'indice sur hybrid
, afin que l'utilisateur puisse rapidement scanner le
code QR et utiliser le passkey hybride.
L'objectif principal ici est de fournir une expérience utilisateur plus fluide et intuitive. En guidant les navigateurs sur les authentificateurs susceptibles d'être utilisés, les développeurs peuvent réduire la confusion et la friction pour l'utilisateur pendant le processus de connexion. Au lieu que les utilisateurs soient submergés d'options d'authentification inutiles, les indices permettent aux navigateurs de se concentrer sur les choix les plus pertinents, ce qui conduit à une expérience plus rapide et plus simple.
Les entreprises à haute assurance ou les organisations gouvernementales qui ont
standardisé l'utilisation de
clés de sécurité matérielles
pour l'authentification des utilisateurs trouveront les indices de
crédential de passkey particulièrement utiles. En utilisant l'indice security-key
, elles
peuvent s'assurer que les navigateurs affichent de manière proéminente l'option de
clé de sécurité matérielle.
Ceci est particulièrement utile pour les grandes organisations où les employés ont reçu
des clés de sécurité matérielles et où d'autres méthodes d'authentification (telles que
les authentificateurs de plateforme) ne sont pas autorisées. L'indice security-key
permet aux entreprises de verrouiller leurs flux d'authentification sans limiter leur
flexibilité pour de futures améliorations.
L'indice hybrid
brille dans les scénarios où l'authentification inter-appareils et donc
une approche mobile-first est souhaitée ou lorsque les utilisateurs se déplacent
fréquemment entre les appareils ou les plateformes.
Un exemple de ce cas d'utilisation serait une application grand public qui anticipe que la
plupart de ses utilisateurs utiliseront leur smartphone pour l'authentification, que ce
soit par des méthodes biométriques ou des applications d'authentification basées sur le
web (passkeys mobile-first). En spécifiant hybrid
comme indice, les développeurs
s'assurent que l'interface utilisateur du navigateur encourage l'utilisation du
smartphone, améliorant ainsi la commodité et l'accessibilité.
Les indices de crédential de clé publique WebAuthn offrent un moyen flexible d'améliorer l'expérience utilisateur lors de l'authentification par passkey. Revenons sur les questions de l'introduction avec les connaissances que nous avons acquises :
Que sont les indices de crédential de clé publique WebAuthn ?
Ce sont des suggestions facultatives fournies par le site web / l'application pour guider les clients sur la méthode d'authentification la plus probable qu'un utilisateur utilisera – que ce soit une clé de sécurité matérielle, un authentificateur de plateforme ou une solution hybride comme l'authentification inter-appareils.
Pourquoi avons-nous besoin des indices de crédential de clé publique WebAuthn ?
Ils rationalisent le processus d'authentification en réduisant les options présentées aux utilisateurs, diminuant ainsi la friction / les clics inutiles et améliorant l'expérience globale.
Comment fonctionnent les indices de crédential de clé publique WebAuthn ?
Les développeurs spécifient des indices tels que security-key
, client-device
ou
hybrid
en fonction du contexte, permettant aux navigateurs de prioriser la méthode
d'authentification pertinente pour l'utilisateur. Bien que ces indices ne soient pas
des exigences strictes, ils aident à optimiser le flux de l'interface utilisateur
pendant l'authentification.
Quelles sont les limites et les cas d'utilisation recommandés ?
Actuellement, le support complet de ces indices est limité à Chrome et Edge, avec d'autres navigateurs et systèmes d'exploitation comme Windows 11 montrant des niveaux de compatibilité variables. Les cas d'utilisation les plus efficaces incluent l'amélioration de l'UX de connexion, l'application de l'utilisation de clés de sécurité matérielles dans des environnements à haute sécurité, et la facilitation de l'authentification inter-appareils dans les applications mobile-first.
En conclusion, les indices de crédential de clé publique WebAuthn permettent aux développeurs de créer des processus d'authentification plus intuitifs et conviviaux en guidant les navigateurs vers les options les plus appropriées pour chaque scénario utilisateur. Bien qu'encore en évolution, cette fonctionnalité peut améliorer de manière significative à la fois la sécurité et l'expérience utilisateur dans les implémentations de passkeys.
Passkeys Series: WebAuthn Advanced
Related Articles
Table of Contents