Mises à jour FedCM: phase d'évaluation pour la réauthentification automatique

Nous apportons quelques modifications à FedCM, y compris un nouveau test d'origine pour la réauthentification automatique.

L'API Federated Credential Management (FedCM) est une API Web permettant de fédérer des identités tout en protégeant la confidentialité. Avec la fédération d'identité, une partie de confiance (RP) s'appuie sur un fournisseur d'identité (IdP) pour fournir à l'utilisateur un compte sans qu'il ait besoin de créer un nouveau nom d'utilisateur et de mot de passe.

FedCM est une API conçue pour permettre au navigateur de comprendre le contexte dans lequel l'RP et l'IdP échangent des informations, d'informer l'utilisateur des informations et des niveaux d'autorisation partagés, et d'éviter tout usage abusif involontaire.

Mises à jour

Voici quelques informations sur l'implémentation de FedCM dans Chrome:

Pour toutes les mises à jour précédentes de l'API, consultez les mises à jour de l'API Federated Credential Management.

La dernière version de FedCM inclut une nouvelle fonctionnalité de réauthentification automatique, qui permet de réauthentifier automatiquement les utilisateurs lorsqu'ils reviennent après leur authentification initiale à l'aide de FedCM. La réauthentification automatique est disponible en phase d'évaluation pour les origines à partir de Chrome 112.

Réauthentification automatique

Actuellement, lorsqu'un utilisateur a créé un compte fédéré sur un RP avec un IdP via FedCM, la prochaine fois qu'il accède au site Web, il doit suivre les mêmes étapes dans l'interface utilisateur. Autrement dit, ils doivent confirmer explicitement et réauthentifier leur identité pour poursuivre le parcours de connexion. Étant donné que l'un des principaux objectifs de la gestion des consentements fédérés est d'empêcher le suivi masqué, cette expérience utilisateur (UX) a du sens avant que l'utilisateur n'ait créé le compte fédéré, mais elle devient inutile et fastidieuse une fois que l'utilisateur l'a effectuée. Une fois que l'utilisateur a autorisé la communication entre le RP et l'IdP,  il n'y a aucun avantage en termes de confidentialité ni de sécurité à appliquer une autre confirmation explicite de l'utilisateur pour quelque chose qu'il a déjà accepté. C'est pourquoi Chrome lance une expérience utilisateur plus fluide que les RP peuvent choisir pour leurs utilisateurs réguliers.

La réauthentification automatique FedCM (ou "réauthentification automatique") réauthentifie automatiquement les utilisateurs (lorsque les RP l'activent) lorsqu'ils reviennent après leur authentification initiale à l'aide de FedCM. "Authentification initiale" signifie ici que l'utilisateur crée un compte ou se connecte au site Web de l'RP en appuyant sur le bouton Continuer en tant que… dans la boîte de dialogue de connexion de FedCM pour la première fois sur la même instance de navigateur.

Boîte de dialogue sur laquelle l'utilisateur appuie pour créer un compte ou s'authentifier.
Boîte de dialogue sur laquelle l'utilisateur appuie pour créer un compte ou s'authentifier.

Le RP peut demander une réauthentification automatique en appelant navigator.credentials.get() avec autoReauthn: true.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

Avec cet appel, la réauthentification automatique se produit dans les conditions suivantes:

  • FedCM est disponible. Par exemple, l'utilisateur n'a pas désactivé FedCM ni globalement ni pour le RP.
  • L'utilisateur n'a utilisé qu'un seul compte FedCM pour se connecter au site Web dans ce navigateur.
  • L'utilisateur est connecté au fournisseur d'identité avec ce compte.
  • La réautorisation automatique n'a pas eu lieu au cours des 10 dernières minutes.

Lorsque les conditions ci-dessus sont remplies, une tentative de réauthentification automatique de l'utilisateur commence dès que le navigator.credentials.get() FedCM est appelé.

Un utilisateur se réauthentifie automatiquement auprès d'une RP à l'aide de FedCM

Essayer

Vous pouvez tester la réauthentification automatique FedCM en local en activant un indicateur Chrome chrome://flags#fedcm-auto-re-authn dans Chrome 112 ou version ultérieure.

À des fins de test, vous pouvez réinitialiser la période de silence de 10 minutes en supprimant les données du navigateur.

  1. Accédez à chrome://history.
  2. Dans le champ "Historique de recherche", saisissez l'origine de la RP.
  3. Cliquez sur l'icône à trois points ⋮, puis sélectionnez Supprimer de l'historique.
  4. Redémarrez Chrome.

Participer à l'essai de l'origine

Vous pouvez également activer cette fonctionnalité sur votre site Web en participant au test de l'origine tierce disponible de Chrome 112 à Chrome 114.

Les phases d'évaluation vous permettent d'essayer de nouvelles fonctionnalités et de donner votre avis sur leur facilité d'utilisation, leur praticité et leur efficacité à la communauté des standards Web. Pour en savoir plus, consultez le guide sur les phases d'évaluation pour les développeurs Web. Pour vous inscrire à cette phase d'évaluation ou à une autre, accédez à la page d'inscription.

Pour enregistrer l'origine tierce d'essai et d'activer la fonctionnalité sur les tiers:

  1. Accédez à la page d'inscription aux essais Origin Trial.
  2. Cliquez sur le bouton Register (S'inscrire) et remplissez le formulaire pour demander un jeton.
  3. Saisissez Web Origin (Origine Web) pour l'origine de diffusion.
  4. Cochez la case Correspondance tierce pour injecter le jeton avec JavaScript sur d'autres origines.
  5. Cliquez sur Envoyer.
  6. Intégrez le jeton émis à un tiers.

Pour intégrer le jeton à un tiers, ajoutez le code suivant à votre code JavaScript bibliothèque ou SDK diffusé à partir de l'origine du site Web enregistré.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Remplacez TOKEN_GOES_HERE par votre propre jeton.

Interagir et envoyer des commentaires

Si vous avez des commentaires ou rencontrez des problèmes pendant les tests, vous pouvez les partager sur crbug.com, sous le composant Blink>Identity>FedCM.

Photo par Alex Perz sur Unsplash