Cette page a été traduite automatiquement. Consultez la version originale en anglais ici.
| Approche | Adoption | Création de clés d'accès | Utilisation de clés d'accès | Gestion des clés d'accès | Complexité technique | Support OAuth |
|---|---|---|---|---|---|---|
| Implémentation Native | 🟢🟢🟢 | Forte adoption, meilleure UX, biométrie fluide | Authentification instantanée et silencieuse | Contrôle natif total | Moyenne à Élevée | Nécessite un flux séparé |
| System WebView | 🟢🟢 | Bonne adoption, expérience de type navigateur | UX de navigateur standard, trousseau partagé | Gestion basée sur le navigateur | Faible | Excellent |
| Embedded WebView | 🟢 | Adoption plus faible, configuration requise | Support natif iOS & Android (WebKit 1.12.1+), pas de Conditional UI | Contrôle limité | Moyenne à Élevée | N/A |
Remarque : System WebView et Embedded WebView sont souvent combinés, System WebView gérant la connexion (avec partage automatique des identifiants), puis Embedded WebView affichant la gestion des clés d'accès dans les paramètres.
Facteurs de décision clés :
Les plateformes mobiles modernes offrent trois approches distinctes pour intégrer les clés d'accès dans votre application native, chacune présentant des compromis différents en matière d'expérience utilisateur, de complexité technique et de compatibilité OAuth :
Implémentation Native : Intégrez les flux de clés d'accès directement dans votre application à l'aide des API de la plateforme (iOS AuthenticationServices, Android Credential Manager). Offre la meilleure expérience utilisateur avec une authentification biométrique fluide, mais nécessite un effort technique d'implémentation moyen à élevé.
System WebView : Utilisez le composant navigateur de la plateforme (iOS ASWebAuthenticationSession / SFSafariViewController, Android Chrome Custom Tabs) pour gérer l'authentification. Excellent pour les flux de connexion basés sur OAuth et partage les identifiants avec le navigateur du système.
Embedded WebView : Intégrez une vue web personnalisable (iOS WKWebView, Android WebView) au sein de votre application pour réutiliser l'authentification web avec un squelette d'application natif. Offre une apparence native sans barre d'URL et un contrôle total sur l'interface utilisateur de la vue web. Nécessite une configuration supplémentaire comprenant des autorisations et des droits (iOS), et une configuration WebView avec AndroidX WebKit 1.12.1+ (Android) pour activer la fonctionnalité des clés d'accès.
Le bon choix dépend de l'architecture d'authentification de votre application, si vous utilisez des fournisseurs OAuth, du niveau de contrôle dont vous avez besoin sur l'interface utilisateur et si vous construisez une application prioritairement native ou si vous réutilisez des composants web.
Livre blanc Passkey entreprise. Conseils pratiques, modèles de déploiement et KPIs pour les programmes passkeys.
Articles récents
♟️
Pourquoi vous avez besoin de l'observabilité de l'authentification pour la CIAM
🔑
Les Device Bound Session Credentials (DBSC) expliqués
📖
WebAuthn Relying Party ID (rpID) et clés d'accès : Domaines et applications natives
♟️
Stratégie des clés d'accès : Pourquoi votre mise en œuvre échouera
🔑
Pourquoi la gestion sécurisée des documents est-elle essentielle pour les entreprises modernes ?
Une implémentation native des clés d'accès offre l'expérience utilisateur optimale, avec des flux d'authentification intégrés directement dans l'interface de votre application à l'aide des API spécifiques à la plateforme. Les utilisateurs bénéficient de boîtes de dialogue natives, d'une vérification biométrique fluide et des temps de connexion les plus rapides possibles.
Quand choisir l'implémentation Native :
preferImmediatelyAvailableCredentials pour
afficher automatiquement une superposition de clés d'accès
lorsque les clés d'accès sont disponibles, offrant l'expérience de connexion la plus
rapide sans exiger la saisie d'un identifiantAvantage clé : preferImmediatelyAvailableCredentials()
Les implémentations natives peuvent exploiter preferImmediatelyAvailableCredentials()
pour créer une
superposition automatique de clés d'accès
qui apparaît immédiatement au démarrage de l'application lorsque les clés d'accès sont
disponibles. Ce flux sans nom d'utilisateur offre l'expérience de connexion la plus rapide
possible : les utilisateurs voient leurs clés d'accès instantanément sans saisir
d'identifiant au préalable. Cette fonctionnalité est exclusive aux implémentations
natives et n'est pas disponible dans les variantes WebView.
Le diagramme ci-dessous illustre comment l'authentification native offre un parcours utilisateur plus rapide par rapport à l'approche Conditional UI de WebView :
La superposition automatique native offre une UX supérieure avec des taux d'utilisation de clés d'accès plus élevés, car l'authentification commence immédiatement au lancement de l'application, tandis que les implémentations WebView exigent que les utilisateurs interagissent d'abord avec les champs de saisie.
Aperçu des exigences techniques :
L'intégration native des clés d'accès nécessite une confiance cryptographique entre votre application et le domaine web. Sans elle, le système d'exploitation rejettera toutes les opérations WebAuthn. Exigences clés :
/.well-known/L'avantage majeur : les clés d'accès créées sur votre site web fonctionnent de manière transparente dans votre application et vice versa.
L'implémentation native des clés d'accès sur iOS implique le framework AuthenticationServices d'Apple, qui fournit une API pour les opérations WebAuthn :
Composants clés :
ASAuthorizationController : Gère le flux d'authentificationASAuthorizationPlatformPublicKeyCredentialProvider : Crée les requêtes de clés d'accèsConseils de développement
?mode=developer à votre URL AASA
pour forcer des récupérations actualiséesL'implémentation native des clés d'accès sur Android utilise l'API Credential Manager (ou l'ancienne API FIDO2 pour la rétrocompatibilité) :
Composants clés :
CredentialManager : API centrale pour toutes les opérations sur les identifiantsCreatePublicKeyCredentialRequest : Pour l'enregistrement des clés d'accèsGetCredentialRequest : Pour l'authentification par
clé d'accèsRemarque : Android ne dispose pas actuellement des suggestions clavier de l'interface conditionnelle d'iOS dans les applications natives (bien que le Conditional UI fonctionne dans les applications web)
L'implémentation native des clés d'accès présente des défis importants et des leçons apprises : l'intégration au niveau du système d'exploitation peut faire remonter des problèmes sur différents appareils et versions d'OS.
Bien que vous puissiez implémenter les clés d'accès en utilisant les API brutes de la plateforme, les SDK spécialisés accélèrent considérablement le développement en gérant la complexité de WebAuthn, les cas particuliers et en fournissant une télémétrie intégrée. Les SDK offrent également des interfaces simulables pour les tests unitaires (crucial car vous ne pouvez pas tester la biométrie dans des simulateurs).
Recommandation : Pour les implémentations natives, nous recommandons d'utiliser les SDK Corbado (iOS Swift Passkey SDK, Android Kotlin Passkey SDK) qui gèrent les nombreux cas particuliers découverts lors de déploiements en production, fournissent une télémétrie supplémentaire et facilitent les tests.
Igor Gjorgjioski
Head of Digital Channels & Platform Enablement, VicRoads
We hit 80% mobile passkey activation across 5M+ users without replacing our IDP.
See how VicRoads scaled passkeys to 5M+ users — alongside their existing IDP.
Read the case studyLes System WebViews utilisent le composant navigateur natif de la plateforme pour gérer l'authentification au sein de votre application. Contrairement aux implémentations entièrement natives, les System WebViews affichent le contenu web en utilisant le véritable navigateur du système (Safari sur iOS, Chrome sur Android), en conservant les cookies partagés, les identifiants enregistrés et les indicateurs de sécurité habituels du navigateur.
Quand choisir System WebView :
Avantages clés :
Composants de la plateforme :
ASWebAuthenticationSession (recommandé pour les flux d'authentification) ou
SFSafariViewController (navigation générale)De grandes entreprises comme Google et GitHub ont adopté cette approche pour ajouter la connexion par clé d'accès à leurs applications mobiles via des superpositions WebView sur des pages d'authentification web existantes. Cela fonctionne bien lorsque les refontes d'authentification entièrement natives ne sont pas immédiatement réalisables.
iOS propose deux composants principaux de System WebView pour l'authentification :
ASWebAuthenticationSession (Recommandé pour l'Authentification) :
SFSafariViewController (Navigation Générale) :
| Fonctionnalité | ASWebAuthenticationSession | SFSafariViewController |
|---|---|---|
| Cas d'utilisation principal | Flux d'authentification | Navigation web générale |
| OAuth/OIDC | Excellent | Bon |
| Support Clés d'accès | Oui | Oui |
| Personnalisation | Limitée | Minimale |
Si votre application utilise une connexion basée sur OAuth,
ASWebAuthenticationSession est le choix recommandé car il est spécifiquement conçu pour
les scénarios d'authentification et offre le meilleur équilibre entre sécurité et
expérience utilisateur.
Les Chrome Custom Tabs (CCT) offrent une expérience d'authentification propulsée par Chrome au sein de votre application :
Fonctionnalités clés :
Intégration OAuth : Les Chrome Custom Tabs sont l'équivalent Android de l'ASWebAuthenticationSession d'iOS, offrant un excellent support OAuth tout en conservant l'accès aux clés d'accès stockées.
Testez les passkeys dans une démo en direct.
Les Embedded WebViews (vues web intégrées) offrent un contrôle total sur le rendu du contenu web dans votre application, permettant une manipulation directe des cookies, des sessions et de la navigation sans barre d'URL. Cependant, ce contrôle s'accompagne d'exigences techniques supplémentaires pour activer la fonctionnalité des clés d'accès.
Quand choisir Embedded WebView :
Contexte important :
De nombreuses applications utilisent une approche hybride : System WebView gère l'authentification OAuth initiale (où les clés d'accès fonctionnent parfaitement), puis bascule vers Embedded WebView pour post-authentification afin de gérer les clés d'accès dans les paramètres. Le défi survient lors de la tentative d'utilisation des clés d'accès directement dans les Embedded WebViews.
Exigences techniques :
Les Embedded WebViews nécessitent une configuration supplémentaire par rapport aux System WebViews :
Composants de la plateforme :
WKWebViewandroid.webkit.WebViewCompromis :
Lors de l'implémentation de clés d'accès via WebViews, il est crucial de comprendre la distinction entre System WebViews et Embedded WebViews. Les trois approches décrites ci-dessus (Implémentation Native, System WebView et Embedded WebView) répondent chacune à des cas d'utilisation différents.
Sur iOS, vous disposez de plusieurs options pour afficher du contenu web dans l'application :
Sur Android, les choix principaux sont :
android.webkit.WebView), qui est
essentiellement un mini-navigateur pouvant être intégré dans vos activités. Il est
hautement personnalisable mais s'exécute dans le processus de votre application.Dans les sections suivantes, nous examinerons plus en détail ces types de WebView pour iOS et Android, et discuterons de celui qui convient le mieux aux flux d'authentification par clés d'accès.
Abonnez-vous à notre Substack passkeys pour les dernières actualités.
La plateforme d'Apple fournit les trois options WebView énumérées ci-dessus. Votre choix affectera la fluidité avec laquelle les clés d'accès peuvent être utilisées dans l'application :
Pour tester le comportement des différents WebViews dans iOS, nous recommandons l'application WebView - WKWebView and UIWebView rendering.
WKWebView est un composant WebView polyvalent pour iOS. Les développeurs peuvent intégrer un WKWebView pour rendre du contenu web avec un haut degré de contrôle sur l'interface utilisateur et le comportement. WKWebView utilise le même moteur de rendu que Safari, il est donc très performant et prend en charge les fonctionnalités web modernes. En théorie, WKWebView peut gérer WebAuthn (et donc les clés d'accès) s'il est configuré correctement, mais notez que certaines fonctionnalités avancées du navigateur peuvent être restreintes pour des raisons de sécurité. Une chose à surveiller est que WKWebView, par défaut, ne partage pas les cookies ou les données du trousseau avec Mobile Safari. Les utilisateurs devront peut-être se connecter à nouveau car leur session WebView est isolée de la session de Safari. De plus, parce que le contenu de WKWebView peut être entièrement personnalisé par l'application, l'utilisateur ne voit pas de barre d'adresse ni d'interface Safari – ce qui est idéal pour l'image de marque, mais cela signifie que l'utilisateur a moins de repères pour vérifier la légitimité de la page (une préoccupation pour la lutte contre le phishing). Certaines applications ont même abusé de WKWebView pour injecter des scripts ou modifier du contenu (ex : TikTok a été remarqué pour l'injection de JS de suivi via son navigateur intégré), il faut donc veiller à utiliser WKWebView de manière sûre et digne de confiance pour l'utilisateur.
SFSafariViewController offre une expérience Safari intégrée à l'application. Lorsque vous ouvrez une URL avec SFSafariViewController, c'est presque comme l'ouvrir dans le véritable navigateur Safari, sauf que l'utilisateur reste dans l'interface de votre application. L'avantage pour les clés d'accès est significatif : parce que c'est essentiellement Safari, le trousseau iCloud de l'utilisateur et les clés d'accès enregistrées sont accessibles. Notez que les cookies ne sont pas partagés sur iOS 11+. Cela signifie que si l'utilisateur possède déjà une clé d'accès pour votre site, Safari peut la trouver et même afficher la saisie automatique de l'interface conditionnelle pour une connexion facile. SFSafariViewController est moins personnalisable (vous ne pouvez pas beaucoup modifier sa barre d'outils), mais il gère automatiquement un grand nombre de fonctionnalités de sécurité et de confidentialité. La barre d'URL est affichée, avec l'icône de cadenas pour HTTPS, ce qui donne aux utilisateurs l'assurance qu'ils se trouvent sur le bon domaine. En général, SFSafariViewController est considéré comme plus sécurisé qu'un WKWebView brut et est plus simple à implémenter (Apple le fournit prêt à l'emploi). Le principal compromis est que vous sacrifiez une partie du contrôle sur l'apparence. Pour un flux d'authentification, c'est généralement acceptable. La priorité ici est la sécurité et la facilité de connexion, ce dans quoi SFSafariViewController excelle en utilisant le contexte de Safari.
| WKWebView | SFSafariViewController | |
|---|---|---|
| Expérience utilisateur | - Sensation native : Les utilisateurs peuvent avoir l'impression que le contenu web fait partie intégrante de l'application car les développeurs peuvent personnaliser l'apparence pour qu'elle corresponde au design de l'application. - Remplissage automatique : Le remplissage automatique avec les données de Safari est possible | - Fluide : Expérience utilisateur fluide en utilisant les paramètres Safari de l'utilisateur assurant une navigation web cohérente entre l'application native et le navigateur. |
| Expérience développeur | - Hautement personnalisable : Vastes possibilités de personnalisation et de configuration disponibles - Flexible : De nombreuses API pour interagir avec le contenu web | - Moyennement personnalisable : Options de personnalisation limitées, surtout par rapport à WKWebView, - Simple : Plus simple à implémenter par rapport à WKWebView |
| Performance | - Plutôt lent : Selon l'implémentation et le contenu web, les vitesses de chargement peuvent être optimisées, mais pourraient rester plus lentes que SFSafariViewController en raison du traitement supplémentaire des fonctionnalités personnalisées et des interactions. | - Plutôt rapide : Offre généralement de meilleures performances car il exploite le moteur Safari, optimisé pour la vitesse et l'efficacité, offrant des temps de chargement rapides pour les pages web. |
| Confiance et reconnaissance | - Affichage de l'URL non requis : WKWebView n'affiche souvent pas l'URL, rendant plus difficile pour les utilisateurs de vérifier la page web. Potentiel pour les applications malveillantes d'imiter ce comportement et d'hameçonner les identifiants. | - Expérience type navigateur : Rendu des pages web en utilisant Safari, offrant une expérience "type navigateur". Les utilisateurs peuvent voir l'URL et accéder aux fonctionnalités de remplissage automatique de Safari, instaurant potentiellement plus de confiance grâce à l'interface familière. |
| Isolation | - Séparé : Les cookies et les sessions sont séparés de Safari ; les utilisateurs ne seront pas automatiquement connectés dans un WKWebView. | - Séparé : Les cookies et les sessions sont séparés de Safari ; les utilisateurs ne seront pas non plus automatiquement connectés à SFSafariViewController. |
| Vulnérabilités | - Sécurisé : Intrinsèquement sécurisé grâce au sandboxing de l'application par Apple, mais le comportement et la sécurité dépendent de l'implémentation de l'application. Vulnérabilités potentielles si non implémenté correctement. | - Plus sécurisé : Bénéficie des fonctionnalités de sécurité intégrées à Safari, incluant les avertissements anti-phishing et contre les sites web malveillants. Généralement considéré comme plus sûr pour afficher du contenu web que WKWebView grâce à ces fonctionnalités et à la familiarité de l'utilisateur avec Safari. |
| Autre | - Fonctionnalités non disponibles : Certaines fonctionnalités du navigateur (ex : WebAuthn) peuvent ne pas être totalement accessibles en raison de préoccupations de sécurité et du fait que WKWebView s'exécute dans le contexte de l'application. - Injection JavaScript : Certaines applications (ex : TikTok) injectent du JavaScript de suivi, ou restreignent le contrôle utilisateur (ex : Facebook) - Problèmes de confidentialité : Plus de retours de la communauté concernant la confidentialité | - Pas d'injection JavaScript : N'autorise pas l'exécution de JavaScript depuis l'application, renforçant la sécurité et la confidentialité. Il ne prend pas non plus en charge les alertes ou confirmations JavaScript, ce qui peut affecter l'expérience utilisateur sur certaines pages web. - Mode Lecteur : Fournit un mode lecteur pour une version épurée et facile à lire des articles. |
SFAuthenticationSession / ASWebAuthenticationSession – Ces classes (la dernière étant le nouveau nom adapté à Swift) sont conçues spécifiquement pour les flux de connexion comme OAuth ou OpenID Connect. Lorsque vous devez authentifier un utilisateur via une page web (peut-être auprès d'un IdP externe), ces sessions sont le choix recommandé sur iOS. Elles sont très similaires à SFSafariViewController dans la mesure où elles utilisent le navigateur Safari en arrière-plan et partagent les cookies/le stockage avec Safari. La principale différence est que SFAuthenticationSession avertira toujours l'utilisateur que l'application souhaite s'authentifier à l'aide d'une page web (pour le sensibiliser) et utilisera automatiquement la session Safari existante de l'utilisateur si elle est disponible.
L'avantage est une expérience SSO transparente : si l'utilisateur est déjà connecté au fournisseur dans Safari, cette session peut utiliser ce cookie pour éviter une autre connexion. Pour les clés d'accès, c'est important car cela signifie que toute clé d'accès stockée dans Safari/le trousseau iCloud peut également être utilisée ici. La recommandation officielle d'Apple est d'utiliser ASWebAuthenticationSession pour tout ce qui ressemble à un flux de connexion. Les avantages sont une confidentialité renforcée (votre application ne voit jamais les identifiants ou les cookies, Safari s'en occupe) et un support SSO intégré. L'inconvénient est que c'est limité aux flux d'authentification (vous ne l'utiliseriez pas pour afficher un contenu web arbitraire dans votre application). En résumé, si vous choisissez une approche WebView sur iOS, ASWebAuthenticationSession est généralement le meilleur choix pour implémenter des clés d'accès car c'est sécurisé, cela partage l'état avec Safari et c'est conçu pour l'authentification.
Découvrez combien de personnes utilisent réellement les passkeys.
Sur Android, le choix de WebView se fait entre le WebView classique et Chrome Custom Tabs :
Pour tester le comportement des différents WebViews sous Android, nous recommandons l'application WebView vs Chrome Custom Tabs.
Android WebView (android.webkit.WebView) est un composant qui vous permet d'intégrer des pages web dans la présentation de votre activité. C'est similaire à WKWebView dans la mesure où il vous donne un contrôle total : vous pouvez intercepter la navigation, injecter du JavaScript, personnaliser l'interface utilisateur, etc. Il s'exécute également dans le processus de votre application. Utiliser un WebView pour les clés d'accès signifie que votre application charge votre page de connexion web, et cette page peut initier une cérémonie WebAuthn. Les Android WebView modernes prennent en charge WebAuthn (à condition que l'implémentation WebView de l'appareil soit à jour via Android System WebView ou le composant Chrome). Une considération majeure : par défaut, un Android WebView ne partage pas les cookies ni les identifiants enregistrés avec le navigateur Chrome de l'utilisateur. Ainsi, toute clé d'accès créée ou utilisée dans le WebView pourrait ne pas être connue de Chrome, et vice versa. Cette isolation peut être une bonne chose pour la sécurité (votre application ne peut pas lire les cookies du navigateur), mais elle peut forcer les utilisateurs à se reconnecter s'ils se sont déjà authentifiés dans Chrome. Un autre problème est la confiance. Un WebView basique n'affiche pas l'URL ni l'icône de cadenas SSL, les utilisateurs doivent donc faire entièrement confiance à votre application pour ne pas les hameçonner. Google a même interdit l'utilisation de WebView pour les connexions Google OAuth en raison de risques potentiels de phishing. En termes de performances, les WebViews sont corrects, mais ils peuvent être plus lents ou plus gourmands en mémoire que l'utilisation du navigateur par défaut de l'utilisateur, en particulier lors du chargement de pages lourdes.
Les Chrome Custom Tabs (CCT) sont une approche hybride. Ils permettent à votre application d'ouvrir une page rendue par Chrome qui semble faire partie de votre application. Vous pouvez personnaliser la couleur de la barre d'outils, ajouter le logo de l'application, etc., mais le contenu est rendu par Chrome dans un processus séparé. Pour les clés d'accès, les CCT présentent plusieurs avantages : ils partagent les cookies et les identifiants de l'utilisateur avec le navigateur Chrome, ce qui signifie que si l'utilisateur a enregistré une clé d'accès via Chrome (Google Password Manager), le Custom Tab peut y accéder. L'utilisateur verra également l'URL réelle et les indicateurs de sécurité, ce qui renforce la confiance. Les performances sont souvent meilleures : Chrome peut être "préchauffé" en arrière-plan pour un chargement plus rapide. Et surtout, la sécurité est forte : parce que c'est essentiellement l'application Chrome, des éléments comme Google Safe Browsing protègent la session, et votre application ne peut pas injecter de scripts arbitraires dans la page (prévenant certaines attaques).
L'inconvénient est que cela nécessite que l'utilisateur ait Chrome (ou un navigateur compatible) installé et à jour. La plupart des utilisateurs d'Android l'ont, mais sur certains appareils dans certaines régions, cela pourrait poser problème. Dans l'ensemble, si vous optez pour une approche web intégrée sur Android, les Chrome Custom Tabs sont recommandés pour les flux de clés d'accès, car ils offrent un bon équilibre entre intégration et sécurité. En fait, ils sont analogues à SFSafariViewController/ASWebAuthSession d'iOS à bien des égards : ils s'appuient sur le navigateur par défaut pour l'authentification.
(Aparté : WKWebView vs SFSafariViewController d'Apple et WebView vs CCT d'Android ont de nombreux parallèles. SFSafariViewController et Chrome Tabs partagent l'état du navigateur et offrent une meilleure sécurité, tandis que WKWebView/Android WebView donnent plus de contrôle mais isolent le contenu web. Pour les clés d'accès, partager l'état (cookies, magasins d'identifiants) est généralement souhaitable pour que la clé d'accès puisse être accessible et créée de manière fluide.)
| Fonctionnalité | WebView | Chrome Custom Tab |
|---|---|---|
| Expérience utilisateur | - Flexibilité : Fournit un riche ensemble d'API pour interagir avec le contenu web et gérer les interactions de l'utilisateur, y compris la gestion des boîtes de dialogue JavaScript et des demandes d'autorisation. - Cohérence : Maintenir une UX cohérente, surtout avec des contenus web variés, peut être un défi. | - Fonctionnalités du navigateur : Partage des fonctionnalités telles que l'économiseur de données et la saisie automatique synchronisée sur tous les appareils. - Bouton de retour : Permet aux utilisateurs de revenir facilement à l'application avec un bouton de retour intégré. - Dépendance : Repose sur l'application Chrome, qui peut ne pas être disponible ou mise à jour sur tous les appareils des utilisateurs. - Redirection vers le navigateur : Certaines fonctionnalités peuvent rediriger les utilisateurs vers l'application Chrome, perturbant potentiellement l'expérience utilisateur. - Custom Tabs Partiels : Seule une portion de l'écran peut être utilisée pour le Chrome Custom Tab tandis que le reste montre l'application native. |
| Expérience développeur | - Hautement personnalisable : Offre de vastes options/besoins de personnalisation. - Interactivité : Fournit de nombreuses API pour interagir avec le contenu web et gérer les interactions utilisateur. | - Personnalisable : Permet la personnalisation de la couleur de la barre d'outils, du bouton d'action, de la barre d'outils inférieure, des éléments de menu personnalisés et des animations d'entrée/sortie. - Rappel (Callback) : Délivre un rappel à l'application lors d'une navigation externe. - Fonctionnalités de sécurité : Fournit des fonctionnalités prêtes à l'emploi, éliminant le besoin de gérer les demandes, l'octroi d'autorisations ou les magasins de cookies. |
| Performance | - Performance médiocre : Peut ne pas offrir le même niveau de performance que les Chrome Custom Tabs (CCT). | - Préchauffage : Inclut le préchauffage du navigateur en arrière-plan et le chargement spéculatif des URL pour améliorer le temps de chargement des pages. - Priorité : Empêche les applications lançant un Custom Tab d'être évincées pendant son utilisation en élevant son importance au niveau "premier plan". |
| Confiance et reconnaissance | - URL & SSL non visibles : Les informations URL et SSL ne sont pas visiblement inhérentes à un WebView. À moins que le développeur de l'application n'implémente ces fonctionnalités, les utilisateurs ne sauront pas s'ils sont sur le bon site web ou sur un site de phishing. | - URL & SSL visibles : Utilise le véritable navigateur Chrome pour rendre les pages. Les utilisateurs peuvent voir l'URL et le certificat SSL (indiquant si la connexion est sécurisée). Cela peut donner aux utilisateurs l'assurance qu'ils ne sont pas sur un site de phishing. |
| Isolation | - S'exécute dans le processus de l'application : Si une application présente une vulnérabilité permettant l'exécution de code malveillant, il y a un risque que le WebView puisse être compromis. Cependant, WebView reçoit également des mises à jour, mais son comportement et sa sécurité peuvent être plus dépendants de l'application qui l'utilise. - Pas de partage de cookies / session : Ne partage pas les cookies ou les sessions avec le navigateur principal de l'appareil, offrant une isolation mais obligeant potentiellement les utilisateurs à se reconnecter. | - S'exécute dans le processus de Chrome : Faisant partie de Chrome, les Custom Tabs s'exécutent dans le même processus et bénéficient des mêmes mises à jour et fonctionnalités de sécurité que Chrome. - Magasin de cookies partagé et modèle de permissions : Assure que les utilisateurs n'ont pas à se reconnecter aux sites ou à ré-accorder des autorisations. - Paramètres & Préférences Chrome : Utilise les paramètres et les préférences de Chrome. |
| Vulnérabilités | - Rappels pour voler des identifiants : Les vulnérabilités potentielles incluent le fait que parfois le JavaScript est requis, ce qui ouvre la porte à d'autres applications pour exécuter du code malveillant, tel que l'enregistrement de rappels essayant d'intercepter les noms d'utilisateur et les mots de passe. - Phishing : De plus, une application malveillante pourrait ouvrir une autre page web imitant le flux de lien lors d'une tentative de phishing. | - Google Safe Browsing : Emploie la navigation sécurisée de Google pour protéger à la fois l'utilisateur et l'appareil des sites dangereux. - Décoration de navigateur sécurisée : S'assure que l'utilisateur voit toujours l'URL exacte avec laquelle il interagit et peut consulter les informations du certificat du site web, réduisant ainsi le risque de phishing. De plus, les Custom Tabs n'autorisent pas l'injection de JavaScript. |
| Autre | - Google a banni les WebViews pour la connexion des utilisateurs aux comptes Google. |
Quelle que soit l'approche d'implémentation que vous choisissez, certaines exigences techniques doivent être respectées pour activer la fonctionnalité des clés d'accès. Cette section fournit des conseils complets sur la configuration des fichiers d'association well-known, des droits iOS et de la configuration WebView d'Android.
Remarque sur les appareils gérés : Le comportement des clés d'accès change considérablement sur les appareils gérés où les stratégies de gestion des appareils mobiles (MDM) contrôlent le stockage des identifiants. Pour tester les clés d'accès sur des appareils gérés, voir Clés d'accès sur les appareils iOS et Android gérés.
Les flux Native et Embedded WebView requièrent des fichiers d'association pour établir une confiance cryptographique entre votre application et le domaine web. System WebView (ASWebAuthenticationSession) et Chrome Custom Tabs ne nécessitent pas d'association entre l'application et le site.
Le fichier AASA établit la connexion entre votre application iOS et votre domaine web, permettant aux clés d'accès de fonctionner sur les deux plateformes.
Emplacement du fichier :
https://votredomaine.com/.well-known/apple-app-site-association
Exigences de configuration :
/.well-known/apple-app-site-association sur votre domaineapplication/json.well-knownExemple de fichier AASA :
{ "webcredentials": { "apps": ["TEAMID123.com.example.app"] } }
Mise en cache AASA et tests :
Apple met agressivement en cache les fichiers AASA (jusqu'à 24-48 heures) à l'aide d'un CDN, ce qui peut frustrer le développement et les tests. Pour contourner la mise en cache pendant le développement :
?mode=developer à votre domaine associé dans Xcode⚠️ Important : N'utilisez PAS ?mode=developer dans les versions de production. Ce
paramètre est destiné uniquement au développement : son utilisation en production
empêchera iOS de détecter correctement votre fichier AASA, ce qui cassera la
fonctionnalité des clés d'accès.
Validation : Utilisez le Validateur AASA d'Apple pour vérifier votre configuration.
Android utilise Digital Asset Links pour vérifier la relation entre votre application et votre site web.
Emplacement du fichier : https://votredomaine.com/.well-known/assetlinks.json
Exigences de configuration :
/.well-known/assetlinks.json sur votre domaineapplication/jsonExemple de fichier assetlinks.json :
[ { "relation": [ "delegate_permission/common.handle_all_urls", "delegate_permission/common.get_login_creds" ], "target": { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": [ "AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99" ] } } ]
Validation : Utilisez le Générateur de Digital Asset Links de Google pour créer et vérifier votre configuration.
Les applications iOS nécessitent des droits appropriés pour accéder aux fonctionnalités des clés d'accès. Les exigences diffèrent légèrement selon votre approche d'implémentation.
Le fichier des droits (souvent nommé Runner.entitlements dans les applications
Flutter ou VotreApp.entitlements dans les projets iOS
natifs) définit les autorisations spéciales et les capacités accordées par le système
d'Apple. Pour les clés d'accès, ce fichier configure les
domaines associés (Associated
Domains).
Emplacement du fichier : Généralement dans votre projet Xcode sous
ios/Runner/Runner.entitlements
L'implémentation Native et Embedded WebView nécessitent la capacité Associated Domains pour lier votre application à votre domaine web. System WebView (ASWebAuthenticationSession) n'en a pas besoin car il s'exécute dans le contexte de Safari.
Configuration dans Xcode :
webcredentials:Exemple de configuration :
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.associated-domains</key> <array> <string>webcredentials:votredomaine.com</string> <string>webcredentials:sousdomaine.votredomaine.com</string> </array> </dict> </plist>
| Approche | Domaines associés requis | Configuration supplémentaire |
|---|---|---|
| Implémentation Native | Oui | Implémentation dédiée |
| System WebView | Non requis | La configuration web par défaut fonctionne |
| Embedded WebView | Oui | Nécessite la configuration AndroidX WebKit 1.12.1+ |
Domaines multiples : Si votre application doit fonctionner avec plusieurs domaines, vous pourriez avoir besoin des requêtes d'origines liées (Related Origin Requests, ROR).
Les Embedded WebViews Android prennent en charge les clés d'accès via deux approches distinctes : la nouvelle approche basée sur WebKit (Section 5.3.1) et l'ancienne approche par pont JavaScript (Section 5.3.2). System WebView (Chrome Custom Tabs) ne nécessite aucune configuration : les identifiants fonctionnent automatiquement.
Android fournit des exemples officiels de WebView pour les clés d'accès illustrant les deux approches d'implémentation.
Intégration WebKit moderne avec gestion native des clés d'accès. Cette approche offre un support WebAuthn natif sans nécessiter de code de pont personnalisé.
Exemple officiel : Webkit WebView MainActivity
Exigences :
Implémentation :
import androidx.webkit.WebSettingsCompat import androidx.webkit.WebViewFeature // Check if Web Authentication is supported if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) { // Enable Web Authentication WebSettingsCompat.setWebAuthenticationSupport( webView.settings, WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP ) // Enable JavaScript webView.settings.javaScriptEnabled = true }
Points clés :
WebViewFeature.WEB_AUTHENTICATION au moment de l'exécutionmediation:"conditional" (remplissage
automatique de la clé d'accès dans les champs de saisie) ne fonctionne pas dans Embedded
WebViewNotes sur les versions :
Avant AndroidX WebKit 1.12.0, le support WebAuthn natif n'existait pas dans Embedded WebView. Cette ancienne approche utilise un pont Web-vers-Natif pour gérer les clés d'accès pour les appareils ne disposant pas du support WebAuthn natif de WebView.
Exemples officiels :
Quand l'utiliser : Pour prendre en charge les anciennes versions d'Android ou les appareils dotés d'anciennes implémentations de WebView.
Les équipes devaient soit :
Pour une implémentation détaillée, consultez le guide d'intégration du gestionnaire d'identifiants WebView d'Android. Cependant, nous recommandons fortement d'utiliser l'approche native WebKit 1.12.1+ pour les applications modernes.
Recommandation : Utilisez le support WebAuthn natif avec AndroidX WebKit 1.12.1+. S'il n'est pas disponible à l'exécution, repliez-vous sur les Chrome Custom Tabs qui offrent un excellent support des clés d'accès avec des identifiants partagés.
Lors de l'implémentation des clés d'accès dans des applications natives, vous devez établir la confiance entre votre application et votre/vos domaine(s) web. Cette section explique comment gérer des domaines uniques, des domaines liés multiples (ROR) et comment vérifier que vos fichiers d'association well-known sont correctement configurés.
Pour les applications utilisant un seul domaine (ex : kayak.com), vous avez besoin de :
webcredentials:kayak.comLes origines liées (Related
Origins, ROR) sont une
fonctionnalité WebAuthn qui permet à un seul ensemble de clés d'accès de fonctionner sur
plusieurs domaines liés (ex : kayak.com, kayak.de, kayak.co.uk).
ROR utilise le point de
terminaison /.well-known/webauthn sur chaque site pour définir les
origines liées, et NON les
fichiers AASA ou assetlinks.
Points clés :
/.well-known/webauthn avec la liste des
origines liéesExemple de configuration :
Si votre application fonctionne avec kayak.com et kayak.de, les deux domaines doivent
:
Avant de passer en production, vérifiez que vos fichiers well-known sont correctement configurés et accessibles. Apple et Google fournissent des URL de test basées sur leur CDN pour vérifier la disponibilité des fichiers :
| Domaine | Vérification AASA d'Apple | Vérification Digital Asset Links de Google |
|---|---|---|
| kayak.com | Tester le fichier AASA Vérifier si le CDN d'Apple peut récupérer votre fichier | Tester assetlinks.json Vérifier que Google peut accéder à vos asset links |
| kayak.de | Tester le fichier AASA Vérifier si le CDN d'Apple peut récupérer votre fichier | Tester assetlinks.json Vérifier que Google peut accéder à vos asset links |
Utilisation de ces URL de test :
?nocache=1 d'Apple force une nouvelle récupération, en contournant le
cache CDNkayak.com ou kayak.de par votre/vos propre(s) domaine(s) dans les modèles
d'URL ci-dessusPiège de test : Assurez-vous que tous les domaines ont des fichiers well-known correctement configurés. Un fichier manquant ou mal configuré sur n'importe quel domaine peut casser la fonctionnalité de clé d'accès pour ce domaine.
Plus d'informations : Identifiant WebAuthn Relying Party dans les applications natives
Le choix de la bonne approche d'implémentation dépend de l'architecture d'authentification de votre application, de ses besoins en OAuth et du besoin de contrôle de session. Utilisez cet arbre de décision pour déterminer la meilleure voie à suivre.
L'organigramme suivant vous guide dans le choix de la bonne approche d'implémentation en fonction des besoins de votre application :
Référence rapide pour chaque voie :
Voici comment chaque approche se comporte selon des dimensions clés :
| Approche | Créer des clés d'accès | Utiliser des clés d'accès | Gérer des clés d'accès | Complexité technique | Support OAuth | Temps d'installation |
|---|---|---|---|---|---|---|
| Implémentation Native | Forte adoption Biométrie fluide, meilleure UX | Instantané, silencieuxpreferImmediatelyAvailableCredentials active la superposition automatique au démarrage | Contrôle natif total Intégration aux paramètres | Moyenne-Élevée API spécifiques à la plateforme | Nécessite l'implémentation d'un flux OAuth séparé | Des semaines à des mois |
| System WebView | Bonne adoption Expérience navigateur familière | UX de navigateur standard Conditional UI dans les champs de saisie, trousseau partagé | Basé sur le navigateur Gestion via navigateur | Faible Code natif minimal | Excellent Conçu pour OAuth | Quelques jours à des semaines |
| Embedded WebView | Adoption plus faible Nécessite une configuration | Support WebAuthn natif WebKit 1.12.1+, pas de Conditional UI | Contrôle limité Pas d'intégration native | Moyenne-Élevée Config WebView + droits | Nécessite une configuration | 1-2 semaines |
Explications des dimensions :
Recommandé : System WebView
Si votre application s'authentifie via des fournisseurs OAuth2, OIDC ou de connexion sociale (Google, GitHub, Microsoft, etc.), System WebView est le choix optimal :
ASWebAuthenticationSession est conçu spécifiquement pour les flux OAuthExemple : Les applications de Voyage comme kayak.com et kayak.de utilisent OAuth pour l'authentification. System WebView leur permet de conserver leur infrastructure OAuth existante tout en ajoutant le support des clés d'accès via leurs pages d'authentification web.
Recommandé : Approche hybride
Utilisez System WebView pour l'authentification OAuth initiale, puis Embedded WebView pour les sessions post-authentification :
Quand l'utiliser : Applications s'authentifiant via OAuth mais devant ensuite afficher un contenu web authentifié où une manipulation directe de la session est requise.
Recommandé : Implémentation Native
Vous créez à partir de zéro ou vous avez des écrans natifs ? Passez en tout natif :
preferImmediatelyAvailableCredentials pour afficher la
superposition automatique de clés d'accès au démarrage de l'application -
exclusive aux implémentations natives et offrant les taux de conversion les plus élevésPour les nouvelles applications : Fortement recommandé de construire une connexion native dès le premier jour. Cela vous prépare pour une UX optimale et évite de futures migrations de WebView vers natif.
Recommandé : Migration par phases
Le diagramme suivant montre le chemin de migration incrémentiel :
Chaque phase s'appuie sur la précédente, permettant des améliorations incrémentielles sans perturber les utilisateurs existants.
| Exigence | Native | System WebView | Embedded WebView |
|---|---|---|---|
| Fichiers well-known (AASA/assetlinks) | Requis | Non requis | Requis |
| Domaines associés iOS | Requis | Non requis | Requis |
| Bibliothèque Android WebKit | Sans objet | Non requis | Requis (1.12.1+) |
| Identifiant (RP ID) | Doit correspondre au domaine | Doit correspondre au domaine | Doit correspondre au domaine |
Voir la Section 5 pour des instructions de configuration détaillées.
Le test des clés d'accès dans les applications natives nécessite une approche structurée à plusieurs niveaux. Suivez la pyramide des tests : tests unitaires (logique isolée), tests d'intégration (cérémonie WebAuthn sur simulateurs/émulateurs) et tests système (de bout en bout sur des appareils physiques).
Catégories de tests essentielles :
Pour des conseils complets sur les tests, y compris les stratégies d'automatisation, les pièges spécifiques aux plateformes et une liste de contrôle pré-vol complète, consultez notre guide dédié : Tester les flux de clés d'accès dans les applications natives iOS et Android.
Envisagez d'inviter les utilisateurs à créer des clés d'accès après une connexion traditionnelle réussie (mot de passe, OAuth). Cette approche de conversion graduelle :
Exemple : Après la connexion OAuth via System WebView, affichez une invite native : "Activer une connexion plus rapide avec Face ID ?" Si accepté, créez la clé d'accès via la page web chargée dans System WebView.
Décider comment implémenter les clés d'accès - via l'Implémentation Native, System WebView ou Embedded WebView - est un choix de conception crucial qui a un impact sur la sécurité, l'expérience utilisateur et la complexité du développement. Il n'y a pas de réponse unique.
Pour les applications basées sur OAuth : System WebView (ASWebAuthenticationSession, Chrome Custom Tabs) est le point de départ recommandé. Il offre un excellent support OAuth, un effort d'implémentation minimal et un partage automatique des identifiants.
Pour les applications d'abord natives : Passez au natif le plus tôt possible. Une
connexion native par clé d'accès offre l'UX la plus fluide avec des capacités exclusives
telles que preferImmediatelyAvailableCredentials, qui permet la
superposition automatique des clés d'accès au démarrage de l'application -
chose que les implémentations WebView ne peuvent pas fournir. Avec iOS et Android
fournissant désormais un support de première classe pour les clés d'accès, les succès
réels démontrent une forte adoption. L'outillage (y compris les SDK open-source et les
bibliothèques de plateformes) a mûri pour rendre l'intégration native réalisable dans des
délais raisonnables. Bien que vous deviez garder à l'esprit les stratégies de gestion des
appareils, la synchronisation multi-appareils et les fournisseurs tiers, ces défis peuvent
être gérés avec une ingénierie et des tests minutieux. Le résultat est une connexion
d'application qui ravit les utilisateurs par sa facilité et sa rapidité tout en améliorant
considérablement la sécurité.
Pour les besoins de cadres Embedded WebView : Embedded WebView est couramment utilisé dans deux scénarios réels. Premièrement, les applications basées sur OAuth utilisent souvent System WebView pour le flux de connexion initial, puis basculent vers Embedded WebView pour afficher les options de gestion des clés d'accès dans les écrans de paramètres où un contrôle de session est nécessaire - bien que certaines applications simplifient cela en conservant System WebView pour les deux flux. Deuxièmement, les applications qui intégraient déjà leur flux d'authentification dans des cadres WebView avant d'adopter les clés d'accès continuent ce modèle par souci de cohérence. Embedded WebView avec le support natif de WebAuthn (AndroidX WebKit 1.12.1+) nécessite une configuration (autorisations, droits, paramètres WebView) mais n'a plus besoin de code de pont JavaScript personnalisé. Notez que l'interface conditionnelle (Conditional UI) n'est pas prise en charge dans Embedded WebView. Choisissez cette approche lors de la maintenance de modèles d'authentification intégrés existants ou lorsque vous avez besoin d'un contrôle de session/cookies pour les écrans post-authentification.
En fin de compte, les clés d'accès dans les applications natives représentent un bond en avant considérable en matière de confort pour l'utilisateur et de sécurité. Qu'elles soient implémentées via Native, System WebView ou Embedded WebView, elles éliminent les risques de phishing et les fardeaux de gestion des mots de passe pour vos utilisateurs. Les implémentations du monde réel, comme l'intégration native des clés d'accès par VicRoads, démontrent que les approches d'abord natives offrent la plus forte adoption et satisfaction des utilisateurs lorsqu'elles sont correctement exécutées avec des fonctionnalités comme les superpositions automatiques de clés d'accès. En suivant les meilleures pratiques pour une authentification conviviale et en choisissant l'approche d'implémentation qui correspond à l'architecture de votre application - native pour les nouvelles applications, System WebView pour les flux OAuth, ou Embedded WebView pour les modèles intégrés existants - vous pouvez offrir des connexions biométriques sans mot de passe qui concrétisent véritablement la vision des clés d'accès : une authentification simple, sûre et agréable pour tous.
Si les clés d'accès ne fonctionnent pas dans votre application native, vérifiez ces problèmes courants par approche d'implémentation :
application/json.well-knownhttps://votredomaine.com (pas app://)webcredentials:votredomaine.comASWebAuthenticationSession (recommandé) ou
SFSafariViewController?mode=developer pendant le développement (retirer pour la
production)WebViewFeature.WEB_AUTHENTICATIONsetWebAuthenticationSupport() appelé avec
WEB_AUTHENTICATION_SUPPORT_FOR_APP"NotAllowedError: The request is not allowed by the user agent or the platform in the current context"
setWebAuthenticationSupport()Aucune invite de clé d'accès n'apparaît
?mode=developer sur iOS pour
tester, vérifier le type de WebViewPour un débogage détaillé, consultez notre article sur les Relying Party IDs dans les applications natives.
Un piège courant : les environnements de staging avec un accès restreint (liste blanche d'adresses IP, VPN uniquement) échoueront car les CDN d'Apple et de Google doivent pouvoir récupérer vos fichiers d'association.
https://app-site-association.cdn-apple.com/a/v1/votredomaine-staging.com?nocache=1https://digitalassetlinks.googleapis.com/v1/statements:list/?source.web.site=https://votredomaine-staging.com&relation=delegate_permission/common.handle_all_urlsSous-domaine de staging avec un rpID de production :
Si votre environnement de staging (ex : stg.login.example.com) utilise le domaine de
production comme rpID (ex : example.com), la recherche AASA se produit sur le domaine
rpID, pas sur votre sous-domaine de staging. Cela signifie que :
Exemple (plusieurs environnements partageant un seul AASA) :
{ "webcredentials": { "apps": [ "TEAMID123.com.example.app", "TEAMID123.com.example.app.dev", "TEAMID123.com.example.app.stg", "TEAMID123.com.example.app.pre" ] } }
Recommandation : Utilisez un rpID de staging distinct correspondant à votre domaine de staging pour éviter le chevauchement d'identifiants entre les environnements. Cela nécessite des fichiers AASA publiquement accessibles sur le domaine de staging.
Clarification sur ?mode=developer :
Le paramètre ?mode=developer dans les Domaines associés contourne le cache CDN d'Apple
mais ne contourne pas l'exigence d'accessibilité. Votre fichier AASA doit toujours
être accessible depuis l'appareil (pas par le biais du CDN d'Apple, mais directement).
Cela aide pendant le développement lors des itérations sur les modifications AASA, mais
n'aidera pas si votre serveur de staging est sur liste blanche IP.
SDK Natifs Corbado :
Documentation des plateformes :
Outils de validation :
Corbado est la Passkey Intelligence Platform pour les équipes CIAM qui gèrent l'authentification client à grande échelle. Nous vous montrons ce que les logs IDP et les outils d'analytics génériques ne voient pas : quels appareils, versions d'OS, navigateurs et gestionnaires de credentials prennent en charge les passkeys, pourquoi les enrôlements ne deviennent pas des connexions, où le flux WebAuthn échoue et quand une mise à jour OS ou navigateur casse silencieusement la connexion — le tout sans remplacer Okta, Auth0, Ping, Cognito ni votre IDP interne. Deux produits : Corbado Observe ajoute l'observabilité pour les passkeys et toute autre méthode de connexion. Corbado Connect apporte des passkeys managés avec analytics intégrés (aux côtés de votre IDP). VicRoads gère les passkeys pour plus de 5M d'utilisateurs avec Corbado (+80 % d'activation passkey). Parler à un expert Passkey →
Le choix dépend de votre architecture d'authentification. Si votre application utilise OAuth2 ou OIDC, System WebView (ASWebAuthenticationSession sur iOS ou Chrome Custom Tabs sur Android) nécessite le moins d'efforts d'implémentation et aucune configuration de fichier d'association. Pour les nouvelles applications d'abord natives, l'implémentation Native offre une expérience utilisateur supérieure, tandis qu'Embedded WebView convient aux applications qui intègrent déjà l'authentification dans un cadre WebView et qui ont besoin de contrôler la session ou les cookies après la connexion.
SFSafariViewController exploite le moteur de Safari, affiche la barre d'URL avec des indicateurs SSL et offre une protection contre le phishing, ce qui le rend plus fiable pour les flux d'authentification. WKWebView offre plus de personnalisation de l'interface utilisateur, mais dispose d'un magasin de cookies isolé distinct de Safari, requiert des droits de Domaines associés et un fichier AASA pour activer les clés d'accès, et n'affiche pas la barre d'URL, ce qui réduit les signaux de confiance des utilisateurs.
Les Chrome Custom Tabs partagent les cookies et les identifiants enregistrés avec le navigateur Chrome de l'utilisateur, ce qui signifie que les clés d'accès enregistrées dans Google Password Manager sont accessibles pendant l'authentification. Le WebView Android standard dispose d'un magasin de cookies isolé, n'affiche pas l'URL ni les indicateurs SSL, et Google l'a explicitement interdit pour les connexions aux comptes Google en raison de risques de phishing.
Si un utilisateur a un gestionnaire d'identifiants tiers tel que 1Password défini comme fournisseur actif, il interceptera souvent la création et le stockage des clés d'accès, prenant la priorité sur le gestionnaire d'identifiants natif de la plateforme (Trousseau iCloud ou Google Password Manager). Cela signifie que les clés d'accès peuvent être stockées dans l'application tierce plutôt que dans le trousseau de la plateforme, ce qui affecte la synchronisation multi-appareils et le comportement de gestion des clés d'accès.
Lorsque les stratégies MDM désactivent la synchronisation des identifiants, les clés d'accès deviennent liées à l'appareil et ne peuvent pas être transférées vers un appareil de remplacement, contrairement aux scénarios grand public typiques. Les applications ciblant les environnements d'entreprise doivent prévoir des mécanismes d'authentification de secours tels que le mot de passe ou la connexion par lien magique pour gérer les cas où un utilisateur reçoit un nouvel appareil géré.
Découvrez comment Corbado s’intègre à votre déploiement de passkeys et à votre stack d’authentification existante.
Explorer la Console
Articles associés
Table des matières