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 8, 2025
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
📖
WebAuthn pubKeyCredParams & credentialPublicKey : CBOR & COSE
🔑
Passkeys & WebAuthn PRF pour le chiffrement de bout en bout (2025)
📖
Protocole d'échange d'identifiants (CXP) et Format d'échange d'identifiants (CXF) de WebAuthn
📖
Indices de crédential de clé publique WebAuthn / Indices User-Agent
🔑
Méthodes de connexion et d'authentification par QR Code
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.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents