API Web pour la fédération d'identité protégeant la confidentialité
Qu'est-ce que FedCM ?
La gestion fédérée des identifiants (FedCM) est une approche respectueuse de la confidentialité des services d'identité fédérée (comme "Se connecter avec…") qui ne repose pas sur des cookies tiers ni sur des redirections de navigation.
État de l'implémentation
- État de la plate-forme Chrome
- FedCM est disponible dans Chrome 108.
- La proposition FedCM est ouverte à une discussion publique.
- FedCM n'est pas encore compatible avec d'autres navigateurs.
- Mozilla implémente un prototype pour Firefox. Apple a exprimé son intérêt général pour une collaboration sur la proposition FedCM.
À l'avenir, nous prévoyons d'introduire un certain nombre de nouvelles fonctionnalités en fonction des commentaires que nous avons reçus des fournisseurs d'identité (IdP), des parties de confiance (RP) et des fournisseurs de navigateurs. Nous espérons que les fournisseurs d'identité adopteront FedCM, mais sachez qu'il s'agit toujours d'une API en cours de développement.
Pour réduire les difficultés liées au déploiement de modifications non rétrocompatibles, nous avons deux recommandations à l'attention des fournisseurs d'identité:
- Abonnez-vous à notre newsletter pour recevoir des informations à mesure que l'API évolue.
- Nous encourageons les IdP à distribuer l'API FedCM à l'aide de SDK JavaScript pendant que l'API mûrit, et à dissuader les RP d'héberger eux-mêmes des SDK. Cela garantit que les IdP peuvent apporter des modifications à mesure que l'API évolue, sans avoir à demander à toutes leurs parties de confiance de redéployer.
Pourquoi avons-nous besoin de FedCM ?
Au cours de la dernière décennie, la fédération d'identités a joué un rôle central dans l'amélioration des critères d'authentification sur le Web en termes de fiabilité, de facilité d'utilisation (par exemple, l'authentification unique sans mot de passe) et de sécurité (par exemple, une meilleure résistance aux attaques de phishing et de forçage d'identifiants) par rapport aux noms d'utilisateur et mots de passe par site.
Avec la fédération d'identités, une partie de confiance (RP) s'appuie sur un fournisseur d'identité (IdP) pour fournir un compte à l'utilisateur sans qu'il ait besoin de créer un nouveau nom d'utilisateur et de mot de passe.
Malheureusement, les mécanismes sur lesquels la fédération d'identité s'appuie (iframes, redirections et cookies) sont activement utilisés à mauvais escient pour suivre les utilisateurs sur le Web. Étant donné que l'agent utilisateur ne peut pas faire la distinction entre la fédération des identités et le suivi, les mesures d'atténuation des différents types d'abus rendent le déploiement de la fédération des identités plus difficile.
L'API Federated Credential Management (FedCM) fournit une abstraction spécifique au cas d'utilisation pour les flux d'identité fédérée sur le Web, en exposant une boîte de dialogue gérée par le navigateur qui permet aux utilisateurs de choisir des comptes auprès d'IDP pour se connecter à des sites Web.
La gestion fédérée des identités sur le Web est un processus en plusieurs étapes visant à améliorer l'identité sur le Web. Dans un premier temps, nous nous concentrons sur la réduction de l'impact des restrictions liées aux cookies tiers sur l'identité fédérée (pour en savoir plus, consultez la section "Feuille de route").
Quels sont les éléments concernés ?
Grâce aux efforts de la communauté et à nos recherches, nous avons appris que certaines intégrations liées à la fédération d'identité sont affectées par les restrictions liées aux cookies tiers:
- Déconnexion OpenID Connect sur le canal avant
- Gestion des sessions OpenID Connect
- Renouvellement du jeton en arrière-plan basé sur une iFrame
- Widgets de connexion basés sur iFrame
L'objectif principal de FedCM est de réduire l'impact des restrictions liées aux cookies tiers sur la fédération d'identité. Voici les domaines qui devraient être concernés. Si d'autres cas d'utilisation ne sont pas listés, vous pouvez interagir et partager vos commentaires.
FedCM en tant que signal de confiance pour d'autres API
En plus de gérer l'identité fédérée, FedCM sert également de signal de confiance pour les autres API Privacy Sandbox.
À partir de Chrome 131, l'API Storage Access (SAA) utilise FedCM comme signal de confiance. Cette intégration est utile pour les sites Web qui s'appuient à la fois sur FedCM pour l'authentification et sur le SAA pour permettre aux iFrames inter-origines d'accéder au stockage nécessaire.
Lorsqu'un utilisateur s'authentifie avec FedCM, avec l'acceptation de la RP, le contenu du fournisseur d'identité intégré sur le site Web de la RP peut appeler la méthode requestStorageAccess()
pour obtenir automatiquement un accès au stockage à ses propres cookies de niveau supérieur sans qu'une invite utilisateur supplémentaire ne soit nécessaire. L'autorisation n'est accordée automatiquement que tant que l'utilisateur est connecté avec FedCM et que l'état de connexion FedCM est actif. Pour en savoir plus, consultez la documentation de l'API Storage Access.
À qui s'adresse FedCM ?
FedCM ne vous sera utile que si toutes les conditions suivantes sont remplies:
- Vous êtes un fournisseur d'identité (IdP).
- Vous êtes concerné par les restrictions liées aux cookies tiers.
- Vos RP sont des sites tiers. Si vos RP sont des sites associés, les ensembles de sites Web associés peuvent être plus adaptés.
Vous êtes un IdP
FedCM nécessite l'assistance d'un fournisseur d'identité. Un tiers de confiance ne peut pas utiliser le FedCM de manière indépendante. Si vous êtes un RP, vous pouvez demander à votre IdP de vous fournir des instructions.
Vous êtes concerné par les restrictions liées aux cookies tiers
N'utilisez FedCM que si votre intégration actuelle est affectée par les restrictions liées aux cookies tiers.
Si vous ne savez pas si votre fédération d'identité continuera de fonctionner lorsque les cookies tiers ne seront plus disponibles, vous pouvez tester l'impact sur un site Web en bloquant les cookies tiers dans Chrome.
Si aucun impact détectable n'est constaté sur votre fédération d'identité sans cookies tiers, vous pouvez continuer à utiliser votre intégration actuelle sans FedCM.
Si vous ne savez pas quoi vérifier, découvrez les fonctionnalités connues qui devraient être affectées par les restrictions liées aux cookies tiers.
Vos RP sont tierces
Si vous êtes un fournisseur d'identité dont les RP ont une relation first party avec l'IDP, les ensembles de sites Web associés peuvent être une meilleure option. Les ensembles de sites Web associés permettent à une organisation de déclarer des relations entre des sites afin que les navigateurs autorisent un accès limité des cookies tiers à des fins spécifiques. Cela permet aux cookies tiers de fonctionner entre des ensembles de sites associés, même si les cookies tiers sont autrement restreints.
Comment les utilisateurs interagiront-ils avec FedCM ?
L'objectif principal de la FedCM est d'atténuer l'impact des restrictions liées aux cookies tiers. Les utilisateurs peuvent activer ou désactiver FedCM dans les paramètres utilisateur de Chrome.
FedCM est conçu pour être indépendant du protocole et offre les fonctionnalités d'authentification suivantes.
Découvrez notre démonstration pour comprendre son fonctionnement.
Se connecter à un tiers de confiance
FedCM propose deux modes d'interface utilisateur:
Mode passif Le mode passif ne nécessite pas d'interaction de l'utilisateur pour que l'invite FedCM s'affiche. Lorsque l'utilisateur accède au site Web de la partie de confiance (RP), une boîte de dialogue de connexion FedCM peut s'afficher lorsque navigator.credentials.get()
est appelé et que l'utilisateur est connecté au fournisseur d'identité.
Mode actif En mode actif, une interaction de l'utilisateur (par exemple, un clic sur un bouton) est requise pour déclencher une invite FedCM.
Si l'utilisateur ne dispose pas d'un compte sur la RP avec l'IDP, une boîte de dialogue de connexion s'affiche avec un texte d'information supplémentaire, tel que les conditions d'utilisation et les règles de confidentialité de la RP, le cas échéant.
L'utilisateur peut terminer la connexion en appuyant sur Continuer en tant que. Si l'opération réussit, le navigateur stocke le fait que l'utilisateur a créé un compte fédéré sur le RP avec l'IDP.
Les RP doivent fonctionner sur les navigateurs qui ne sont pas compatibles avec FedCM. Les utilisateurs doivent pouvoir utiliser un processus de connexion existant, autre que FedCM, sur ces navigateurs. Découvrez comment fonctionne la connexion dans FedCM.
Paramètres permettant d'activer ou de désactiver FedCM
Les utilisateurs peuvent activer ou désactiver FedCM en mode passif. Cela n'a aucune incidence sur le mode actif, car la requête de connexion est lancée par un geste de l'utilisateur, et le navigateur doit aider les utilisateurs à effectuer le parcours de connexion.
Ordinateur
Les utilisateurs peuvent activer ou désactiver FedCM pour Chrome sur ordinateur de bureau à l'adresse chrome://settings/content/federatedIdentityApi
.
Android
Pour activer ou désactiver FedCM dans Chrome sur Android, les utilisateurs peuvent accéder aux Paramètres de Chrome > Paramètres du site > Connexion tierce, puis modifier l'option.
Période d'attente de l'invite
Si l'utilisateur ferme manuellement l'interface utilisateur, une entrée est temporairement ajoutée à l'interface utilisateur des paramètres et l'interface utilisateur ne s'affiche pas sur le même site Web pendant un certain temps. L'UI sera réactivée après cette période, mais la durée sera étendue de manière exponentielle en cas de fermetures consécutives. Par exemple, dans Chrome:
Nombre de fois consécutives où l'établissement a été fermé | Période pendant laquelle l'invite FedCM est supprimée |
---|---|
1 | Deux heures |
2 | Un jour |
3 | Une semaine |
4+ | Quatre semaines |
D'autres navigateurs peuvent définir leurs propres périodes de temps de pause.
Les utilisateurs peuvent réactiver manuellement FedCM sur le RP en accédant à la page des paramètres ou en cliquant sur l'UI PageInfo (une icône en forme de cadenas à côté de la barre d'URL) et en réinitialisant l'autorisation.
Feuille de route
Nous travaillons actuellement sur un certain nombre de modifications apportées à FedCM. Pour en savoir plus, consultez la section Mises à jour.
- Journal des modifications: mises à jour de l'API Federated Credential Management.
Nous savons que certaines choses doivent encore être faites, y compris les problèmes que nous avons entendus de la part des IdP, des RP et des fournisseurs de navigateurs. Nous pensons savoir comment résoudre ces problèmes:
- Compatibilité avec les iFrame inter-origines: les IdP peuvent appeler FedCM à partir d'une iFrame inter-origine (mise à jour).
- Bouton personnalisé: les fournisseurs d'identité peuvent afficher l'identité d'un utilisateur connu sur le bouton de connexion à partir d'un iframe inter-origine appartenant à un fournisseur d'identité (mise à jour).
- Point de terminaison des métriques: fournit des métriques de performances aux IdP.
De plus, nous étudions activement des problèmes non résolus, y compris des propositions spécifiques que nous évaluons ou prototypons:
- CORS: nous discutons avec Apple et Mozilla pour nous assurer d'améliorer les spécifications des récupérations FedCM.
- API multi-IDP: nous étudions comment permettre à plusieurs IdP de coexister de manière coopérative dans le sélecteur de compte FedCM.
- API d'état de connexion de l'IDP: Mozilla a identifié un problème d'attaque par cassage de chiffrement. Nous étudions comment un IdP peut notifier de manière proactive au navigateur l'état de connexion de l'utilisateur pour atténuer le problème. (mise à jour)
- Se connecter à l'API de l'IDP: pour prendre en charge divers scénarios, lorsqu'un utilisateur n'est pas connecté à l'IDP, le navigateur fournit une UI permettant à l'utilisateur de se connecter sans quitter le RP.
Enfin, nous pensons qu'il reste des choses à faire, d'après les commentaires de Mozilla, Apple et des examinateurs TAG. Nous évaluons les meilleures solutions pour ces questions ouvertes:
- Améliorer la compréhension des utilisateurs et la correspondance de l'intention: comme l'a souligné Mozilla, nous souhaitons continuer à explorer différentes formulations et surfaces d'UX, ainsi que des critères de déclenchement.
- Attributs d'identité et divulgation sélective: comme l'ont indiqué nos examinateurs TAG, nous souhaitons fournir un mécanisme permettant de partager de manière sélective plus ou moins d'attributs d'identité (adresses e-mail, tranches d'âge, numéros de téléphone, etc.).
- Amélioration des propriétés de confidentialité: comme Mozilla l'a suggéré dans sa position sur les normes, nous souhaitons continuer à explorer des mécanismes permettant d'offrir de meilleures garanties de confidentialité, tels que la cécité des IdP et les identifiants dirigés.
- Relation avec WebAuthn: comme suggéré par Apple, nous sommes ravis de voir les progrès réalisés sur les clés d'accès et de travailler à fournir une expérience cohérente et cohérente entre FedCM, les mots de passe, WebAuthn et WebOTP.
- État de connexion: comme Apple l'a suggéré avec l'API Login Status du CG sur la confidentialité, nous partageons l'intuition que l'état de connexion de l'utilisateur est une information utile qui peut aider les navigateurs à prendre des décisions éclairées. Nous sommes impatients de voir quelles opportunités en découlent. (mise à jour)
- Entreprises et éducation: comme le montre clairement le groupe de travail FedID, de nombreux cas d'utilisation ne sont pas bien gérés par FedCM. Nous aimerions travailler sur ces cas, comme la déconnexion sur le canal avant (capacité d'un IdP à envoyer un signal aux RP pour se déconnecter) et la prise en charge de SAML.
- Relation avec les mDL/VC/etc: continuez à comprendre comment ces éléments s'intègrent à FedCM, par exemple avec l'API Mobile Document Request.
Utiliser l'API FedCM
Pour utiliser FedCM, vous avez besoin d'un contexte sécurisé (HTTPS ou localhost) à la fois sur l'IDP et la RP dans Chrome.
Pour intégrer FedCM, vous devez créer un fichier connu, un fichier de configuration et des points de terminaison pour la liste des comptes, l'émission d'assertions et (facultatif) les métadonnées client. FedCM expose ensuite des API JavaScript que les RP peuvent utiliser pour se connecter avec l'IDP.
Pour savoir comment utiliser l'API FedCM, consultez le guide du développeur FedCM.
Interagir et envoyer des commentaires
- GitHub: lisez la présentation, signalez des problèmes et suivez la discussion.
- Assistance pour les développeurs: posez des questions et participez aux discussions sur le dépôt d'assistance pour les développeurs de la Privacy Sandbox.
Respect des lois sur la confidentialité en ligne
L'utilisation de la FedCM, en tant qu'IDP ou RP, implique le stockage d'informations sur l'équipement terminal d'un utilisateur ou l'accès à des informations déjà stockées dans celui-ci. Il s'agit donc d'une activité soumise aux lois sur la confidentialité électronique dans l'Espace économique européen (EEE) et au Royaume-Uni, qui nécessite généralement le consentement de l'utilisateur. Il est de votre responsabilité de déterminer si votre utilisation de FedCM est strictement nécessaire pour fournir un service en ligne explicitement demandé par l'utilisateur et est donc exemptée de l'obligation de consentement. Pour en savoir plus, nous vous invitons à consulter les questions fréquentes sur la conformité liées à la confidentialité de la Privacy Sandbox.