Comment adidas a accéléré l'adoption et la fiabilité des clés d'accès avec Conditional Create et l'API Signal

Christopher Kokott
Christopher Kokott
Yu Tsuno
Yu Tsuno

Le logo Adidas noir avec les trois bandes emblématiques au-dessus de la marque Adidas en minuscules.

Les organisations et les développeurs sont confrontés à un obstacle important lorsqu'ils migrent les utilisateurs des mots de passe vers les clés d'accès. Bien que les clés d'accès offrent une amélioration vitale de la sécurité, le processus de création manuelle peut souvent entraîner des frictions. Dans un environnement e-commerce à fort volume, chaque seconde d'hésitation compte, car tout retard peut potentiellement perturber le parcours d'achat et entraîner l'abandon du panier. De plus, il est essentiel de maintenir les états des identifiants synchronisés entre le serveur et l'appareil de l'utilisateur pour éviter les erreurs de connexion et la frustration des utilisateurs.

adidas a été confronté à ces défis. Son objectif principal était de supprimer les frictions du processus de connexion et de simplifier l'expérience sur les plates-formes Web et d'application, ainsi que sur les appareils. Bien que la sécurité reste une priorité élevée, l'équipe produit s'est concentrée sur la simplification maximale des flux d'inscription et de connexion avec les clés d'accès.

Pour relever ces défis, adidas a implémenté Conditional Create pour migrer automatiquement les utilisateurs de mots de passe vers les clés d'accès et l'API Signal pour assurer la cohérence des identifiants. Ils ont également déployé des demandes d'origine associée pour permettre l'utilisation interdomaines si nécessaire.

Les résultats

La stratégie d'adidas consistant à automatiser la création de clés d'accès et à assurer l'intégrité des identifiants a donné des résultats immédiats et mesurables en termes d'adoption et de fiabilité de la connexion :

  • Taux d'adoption élevé : depuis le lancement du processus de connexion avec une clé d'accès, adidas a atteint un taux de création global de clés d'accès de 47 %. Cela inclut la création conditionnelle automatisée et les inscriptions initiées par l'utilisateur lorsqu'il y est invité lors des parcours d'inscription ou de connexion. Cette adoption était particulièrement élevée sur les appareils mobiles, qui ont enregistré un taux de conversion de 52 % (contre 34 % sur ordinateur).
  • Mises à niveau accélérées à l'aide de la création conditionnelle : au-delà des invites explicites, adidas a enregistré une augmentation de 8 % des créations de clés d'accès en mettant à niveau de manière fluide les utilisateurs de mots de passe existants en arrière-plan, sans nécessiter d'action manuelle de leur part.
  • Fiabilité de connexion quasi parfaite : les clés d'accès ont permis d'atteindre un taux de réussite supérieur à 99 % une fois la connexion lancée. Il s'agit d'une amélioration majeure de la sécurité par rapport au taux de réussite historique des mots de passe d'adidas, qui était de 70 % et qui était souvent réduit par des erreurs humaines telles que des fautes de frappe ou des identifiants oubliés.
  • Friction et erreurs réduites : en déployant l'API Signal pour synchroniser automatiquement les identifiants des appareils et des serveurs, adidas a réussi à maintenir les PASSKEY_NOT_FOUND erreurs à moins de 0,3 % des tentatives de connexion. Cela a permis d'éliminer efficacement la frustration des utilisateurs liée aux clés d'accès orphelines.

    47 %

    Taux de création de clés d'accès

    8 %

    Augmentation du nombre de clés d'accès créées à l'aide de la création conditionnelle

    >99 %

    Taux de réussite de la connexion par clé d'accès une fois la procédure lancée

    <0,3 %

    Taux d'erreur des clés d'accès orphelines

Comment adidas a résolu le problème

Voici comment adidas a relevé ces défis :

1. Accélérer l'adoption avec la création conditionnelle

Pour aider les utilisateurs à adopter facilement les clés d'accès, adidas a implémenté la création conditionnelle. Cette fonctionnalité permet à un site Web de créer automatiquement une clé d'accès lorsqu'un utilisateur se connecte avec un mot de passe stocké dans son gestionnaire de mots de passe. Pour garantir le taux de réussite le plus élevé, le système appelle l'API immédiatement après une connexion réussie afin que le système reconnaisse l'utilisation du mot de passe comme récente.

const cred = await navigator.credentials.create({
  publicKey: options,
  mediation: 'conditional' // Enables automatic passkey creation
});

adidas a intégré cette fonctionnalité à une logique personnalisée qui valide d'abord l'environnement de l'utilisateur. Plus précisément, le système vérifie si la fonctionnalité de création conditionnelle est prise en charge par le navigateur. Le système respecte également les préférences des utilisateurs en supprimant l'invite si l'utilisateur a déjà ignoré la création d'une clé d'accès trois fois au cours des six derniers mois.

Si l'environnement est compatible, le système tente de créer la clé d'accès en arrière-plan, immédiatement après l'authentification de l'utilisateur. Ce timing spécifique augmente la probabilité que les conditions préalables soient remplies. Il est important de noter que l'implémentation gère les exceptions WebAuthn avec une philosophie "fail-open" pour toujours donner la priorité à l'accès des utilisateurs. Si le navigateur signale un InvalidStateError, indiquant qu'une clé d'accès existe probablement déjà, le système arrête la création en arrière-plan et connecte immédiatement l'utilisateur. À l'inverse, si un NotAllowedError se produit, ce qui signifie que les conditions spécifiques à la création automatique n'ont pas été remplies, le système détecte cet état et redirige l'utilisateur vers un écran Collecteur de clés d'accès pour le guider dans un processus de configuration manuelle. En distinguant ces contraintes techniques des comportements des utilisateurs, adidas s'assure que la mise à niveau vers les clés d'accès améliore l'expérience de connexion au lieu de l'interrompre.

Invite &quot;Se connecter avec une clé d&#39;accès la prochaine fois&quot; sur le site Web d&#39;Adidas, encourageant les utilisateurs à créer une clé d&#39;accès pour se connecter plus rapidement et de manière plus sécurisée à l&#39;aide de données biométriques ou d&#39;un code secret.
Écran "Collecteur de clés d'accès".

2. Assurer la fiabilité avec l'API Signal

Des incohérences peuvent apparaître lorsque les utilisateurs gèrent leurs identifiants sur plusieurs appareils. Par exemple, une clé d'accès peut être supprimée du serveur, mais rester sur l'appareil de l'utilisateur. Pour éviter les échecs de connexion causés par ces identifiants "fantômes", adidas a implémenté l'API Signal. Cette API permet au serveur de signaler l'état des identifiants au fournisseur de clés d'accès.

Pour assurer cette cohérence, adidas utilise les trois méthodes d'API Signal disponibles. Plutôt que de deviner quelles identifiants supprimer, adidas mappe des événements spécifiques du cycle de vie des utilisateurs à l'appel d'API approprié :

  • Échecs d'enregistrement : lorsqu'une clé d'accès est créée sur le client, mais ne parvient pas à s'enregistrer sur le backend, adidas utilise signalUnknownCredential pour supprimer immédiatement l'identifiant orphelin.
  • Connexions non valides : si un utilisateur tente de se connecter avec une clé d'accès révoquée ou obsolète, signalUnknownCredential signale au fournisseur de la masquer.
  • Gestion des utilisateurs : lorsqu'un utilisateur supprime explicitement une clé d'accès dans les paramètres de son compte, signalAllAcceptedCredentials synchronise la liste d'autorisation. Cela permet de s'assurer que la clé d'accès supprimée n'est plus proposée.
  • Mises à jour du compte : lorsqu'un utilisateur modifie son adresse e-mail ou son nom d'utilisateur, signalCurrentUserDetails met à jour les métadonnées sur l'appareil pour qu'elles correspondent à celles du serveur.
// Detect authentication failure due to lack of the credential

if (result.status === 404) {
  if (PublicKeyCredential.signalUnknownCredential) {
    await PublicKeyCredential.signalUnknownCredential({
      rpId: "adidas.com",
      credentialId: "..." // base64url encoded credential ID
    });
  }
}
Modal de confirmation dans les paramètres du compte adidas permettant à un utilisateur de supprimer une clé d&#39;accès spécifique, avec un avertissement indiquant qu&#39;elle ne sera plus disponible pour la connexion.
Boîte de dialogue de confirmation pour supprimer une clé d'accès.
Notification du Gestionnaire de mots de passe de Google indiquant qu&#39;une clé d&#39;accès supprimée ne fonctionne plus, montrant comment l&#39;API Signal maintient la synchronisation de l&#39;appareil de l&#39;utilisateur avec le serveur.
Signaler une notification API pour une clé d'accès supprimée.

Pour mieux prendre en charge son architecture multimarché, adidas a implémenté les demandes d'origine associée. Alors que la plupart des utilisateurs s'en tiennent à leur marché local (par exemple, adidas.nl), cette configuration permet aux utilisateurs qui naviguent entre les régions de réutiliser les clés d'accès sur les domaines autorisés en ciblant un seul ID de relying party (adidas.com).

Pour ce faire, adidas héberge un fichier de configuration webauthn sur son domaine d'ID de partie de confiance (RP ID) principal. Ce fichier contient une liste d'autorisation explicite des origines autorisées à utiliser adidas.com pour l'enregistrement et l'authentification des clés d'accès. En définissant ces relations, le navigateur peut vérifier qu'une clé d'accès créée sur un site régional est valide pour une utilisation sur un autre site, ce qui offre une expérience fluide aux utilisateurs du monde entier.

// https://www.adidas.com/.well-known/webauthn

{
  "origins": [
    "https://www.adidas.fi",
    "https://www.adidas.nl",
    // ... abridged (the full file lists 50+ regional domains)
  ]
}

Plus important encore, adidas a également fourni une prise en charge transparente des clés d'accès dans ses applications mobiles Android à l'aide des liens Digital Asset Links. Comme les applications utilisent un composant WebView hébergé sur idp.adidas.com pour l'authentification, des Digital Asset Links étaient nécessaires pour établir une relation de confiance entre l'application Android et l'ID de partie de confiance (adidas.com). Cette validation permet à l'application d'accéder aux mêmes clés d'accès que celles utilisées sur le Web, ce qui crée une expérience de connexion fluide et unifiée sur toutes les plates-formes.

Pour ce faire, adidas héberge un fichier Digital Asset Links (assetlinks.json) sur ses domaines Web respectifs. Ce fichier déclare publiquement l'association cryptographique avec leurs applications Android. De même, pour prendre en charge son écosystème iOS, adidas utilise Associated Domains. En hébergeant un fichier apple-app-site-association, ils établissent une connexion sécurisée qui permet à leur application iOS d'utiliser des clés d'accès dans une vue Web de manière sécurisée.

// https://www.adidas.fi/.well-known/assetlinks.json

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.adidas.app",
      "sha256_cert_fingerprints": [
        "B2:55:43:78:89:F6:F6:FD:BB:16:5C:43:EE:66:14:18:D4:E8:33:6D:3A:1F:68:86:C3:A8:7C:89:2B:51:45:96",
        "..."
      ]
    }
  },
  // ... abridged
]
Diagramme de séquence technique illustrant les relations de confiance établies via les demandes d&#39;origine associée (ROR) et les liens vers les ressources numériques (DAL) entre un appareil client et le serveur cible.
Diagramme de séquence des demandes d'origine associée
Invite au niveau du système sur un appareil Android demandant à l&#39;utilisateur d&#39;utiliser sa clé d&#39;accès enregistrée pour se connecter au fournisseur d&#39;identité adidas.
Connexion conditionnelle
Écran de connexion de l&#39;application mobile adidas avec un bouton &quot;Continuer avec une clé d&#39;accès&quot; dédié pour une expérience d&#39;authentification simplifiée.
Identifiant en premier

Quelles sont les prochaines étapes pour adidas ?

Grâce à une base solide de mises à niveau automatiques et d'identifiants synchronisés sur adidas.fi et adidas.nl, adidas déploiera cette configuration fluide sur tous les autres marchés mondiaux d'ici la fin avril 2026. adidas explore également des expériences de connexion encore plus fluides en testant l'origin trial de médiation immédiate. À l'avenir, nous prévoyons de permettre aux utilisateurs de créer des comptes directement avec des clés d'accès. Cela supprime l'obligation actuelle de s'inscrire d'abord avec une autre méthode. L'équipe étudie également le "déclenchement intelligent" pour appeler directement la boîte de dialogue de la clé d'accès système lors de la deuxième étape de la connexion. Cela élimine la nécessité d'un clic supplémentaire lorsqu'il est très probable que l'utilisateur dispose d'une clé d'accès sur son appareil actuel.

Pourquoi est-ce important pour vous ?

La transition vers l'authentification sans mot de passe est réussie lorsque l'expérience utilisateur reste fluide. En implémentant la création conditionnelle, vous pouvez migrer facilement les utilisateurs des mots de passe sans perturber leurs habitudes. En utilisant les demandes d'origine associée, vous pouvez partager ces clés d'accès sur vos domaines, ce qui permet aux utilisateurs d'accéder facilement à l'ensemble de votre écosystème avec une seule clé d'accès. Enfin, en associant cela à l'API Signal, vous vous assurez que votre expérience unifiée et sans mot de passe reste fiable et sans erreur.

En savoir plus