Prise en charge de la réauthentification automatique dans FedCM

Chrome est compatible avec la réauthentification automatique dans FedCM

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 permet au navigateur de comprendre le contexte dans lequel l'RP et l'IdP échangent des informations. Il informe l'utilisateur des informations et des niveaux d'autorisation partagés, et empêche tout usage abusif involontaire. FedCM est disponible dans Chrome depuis la version 108.

Dans Chrome 115, FedCM prend en charge la réauthentification automatique, ce qui améliore l'expérience utilisateur et permet une réauthentification plus simple auprès de l'RP après le consentement initial.

Réauthentification automatique

Actuellement, une fois qu'un utilisateur a créé un compte fédéré sur un RP avec un IdP via l'API FedCM, la prochaine fois qu'il accède au site Web, il doit suivre les mêmes étapes dans l'interface utilisateur. Cela signifie que l'utilisateur devra confirmer explicitement et manuellement la réauthentification et poursuivre le parcours de connexion.

Bien que l'expérience utilisateur explicite soit logique avant que l'utilisateur n'ait créé le compte fédéré pour empêcher le suivi (ce qui est l'un des principaux objectifs de FedCM), elle est inutilement lourde après que l'utilisateur l'a déjà effectuée une fois: une fois que l'utilisateur a accordé l'autorisation pour autoriser 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é auparavant. C'est pourquoi nous lançons une expérience utilisateur plus fluide que les RP peuvent choisir pour leurs utilisateurs réguliers.

La réauthentification automatique FedCM (en abrégé "auto-reauthn") permet aux utilisateurs de se réauthentifier automatiquement 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.

Choisir une option pour la réauthentification automatique

Bien que nous introduisions la réauthentification automatique pour améliorer l'expérience utilisateur et nous conformer aux spécifications, l'expérience utilisateur par défaut sera différente sans aucun changement de code. Lorsque la réautorisation automatique est disponible, le navigateur modifie son comportement en fonction de l'option que vous sélectionnez dans l'option mediation que les développeurs fournissent avec navigator.credentials.get().

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

mediation est une propriété de l'API de gestion des identifiants. Elle se comporte de la même manière que pour PasswordCredential et FederatedCredential. Elle est également partiellement prise en charge par PublicKeyCredential. La propriété accepte les quatre valeurs suivantes:

  • 'required': nécessite toujours une médiation pour continuer, par exemple, en cliquant sur le bouton "Continuer" dans l'UI. Sélectionnez cette option si vos utilisateurs doivent accorder une autorisation explicite chaque fois qu'ils doivent être authentifiés.
  • 'optional'(par défaut): réautorisation automatique si possible, nécessite une médiation si ce n'est pas le cas. Nous vous recommandons de choisir cette option sur la page de connexion.
  • 'silent': réauthentification automatique si possible, échec silencieux sans médiation si ce n'est pas le cas. Nous vous recommandons de choisir cette option sur les pages autres que la page de connexion dédiée, mais sur lesquelles vous souhaitez que les utilisateurs restent connectés (par exemple, une page d'article sur un site d'actualités ou une page d'article sur un site d'actualités).
  • 'conditional': utilisé pour WebAuthn et actuellement non disponible pour FedCM.

Avec cet appel, la réautorisation automatique se produit si les conditions suivantes sont remplies:

  • FedCM est disponible. Par exemple, l'utilisateur n'a pas désactivé FedCM globalement ni pour le RP dans les paramètres.
  • L'utilisateur n'a utilisé qu'un seul compte avec l'API 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.
  • Le RP n'a pas appelé navigator.credentials.preventSilentAccess() après la connexion précédente.

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

Un utilisateur se réauthentifie automatiquement via FedCM.

Appliquer la médiation avec preventSilentAccess()

La réauthentification automatique des utilisateurs immédiatement après leur déconnexion ne serait pas une bonne expérience utilisateur. C'est pourquoi FedCM dispose d'un délai de 10 minutes après une réautorisation automatique pour éviter ce comportement. Cela signifie que la réauthentification automatique a lieu au maximum une fois toutes les 10 minutes, sauf si l'utilisateur se reconnecte dans ce délai. Le RP doit appeler navigator.credentials.preventSilentAccess() pour demander explicitement au navigateur de désactiver la réauthentification automatique lorsqu'un utilisateur se déconnecte explicitement du RP, par exemple en cliquant sur un bouton de déconnexion.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Les utilisateurs peuvent désactiver la réauthentification automatique dans les paramètres

Les utilisateurs peuvent désactiver la réautorisation automatique dans le menu des paramètres:

  • Dans Chrome pour ordinateur, accédez à chrome://password-manager/settings > Se connecter automatiquement.
  • Dans Chrome sur Android, ouvrez Paramètres > Gestionnaire de mots de passe > appuyez sur la roue dentée en haut à droite > Connexion automatique.

En désactivant le bouton d'activation/de désactivation, l'utilisateur peut désactiver complètement le comportement de réauthentification automatique. Ce paramètre est stocké et synchronisé sur tous les appareils si l'utilisateur est connecté à un compte Google sur l'instance Chrome et que la synchronisation est activée.

Envoyer des commentaires

Si vous testez FedCM, vous pouvez partager vos commentaires ou les problèmes que vous rencontrez sur crbug.com, sous le composant "Blink>Identity>FedCM".

Photo de Noah Samuel Franz sur Unsplash