Prise en charge de la réauthentification automatique dans FedCM

Chrome prend en charge la réauthentification automatique dans FedCM

L'API Federated Credential Management (FedCM) est une API Web permettant la fédération d'identité protégeant la confidentialité. Avec la fédération d'identité, une RP (partie de confiance) s'appuie sur un IdP (fournisseur d'identité) pour fournir un compte à l'utilisateur sans exiger de nouveaux nom d'utilisateur et mot de passe.

FedCM permet au navigateur de comprendre le contexte dans lequel le RP et le fournisseur d'identité échangent des informations. Elle informe l'utilisateur sur les informations et les niveaux de droits partagés, et empêche les abus involontaires. 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 simplifiée auprès du tiers assujetti à des restrictions après le consentement initial.

Réauthentification automatique

Actuellement, après qu'un utilisateur a créé un compte fédéré sur un tiers assujetti à des restrictions avec un IdP via l'API FedCM, la prochaine fois qu'il consultera le site Web, il devra suivre la même procédure dans l'interface utilisateur. Cela signifie que l'utilisateur devra reconfirmer explicitement et manuellement sa configuration pour s'authentifier à nouveau et poursuivre le flux de connexion.

Bien que l'expérience utilisateur explicite soit logique avant que l'utilisateur ait créé le compte fédéré pour empêcher le suivi (l'un des principaux objectifs de FedCM), elle est inutilement fastidieuse une fois que l'utilisateur l'a parcourue une fois: une fois que l'utilisateur a autorisé la communication entre le tiers assujetti à des restrictions et l'IdP, il n'y a aucun avantage en termes de confidentialité ou de sécurité pour l'application d'une autre confirmation explicite de l'utilisateur pour un élément qu'il a déjà confirmé précédemment. C'est pourquoi nous lançons une expérience utilisateur simplifiée que les tiers assujettis à des restrictions peuvent choisir pour leurs utilisateurs connus.

FedCM La réauthentification automatique ("réauthentification automatique") permet aux utilisateurs de se réauthentifier automatiquement lorsqu'ils reviennent après leur authentification initiale à l'aide de FedCM. "L'authentification initiale" signifie que l'utilisateur crée un compte ou se connecte au site Web du tiers assujetti à des restrictions en appuyant pour la première fois sur le bouton Continuer en tant que de la boîte de dialogue de connexion de FedCM dans 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.

Sélectionner une option de réauthentification automatique

Bien que nous introduisions la réauthentification automatique pour offrir une meilleure expérience utilisateur et pour s'aligner sur la spécification, l'expérience utilisateur par défaut sera différente sans aucun changement de code. Lorsque la fonctionnalité de réauthentification automatique est disponible, le comportement du navigateur change en fonction de l'option que vous sélectionnez dans l'option mediation fournie par les développeurs 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 Credential Management. Elle se comporte de la même manière que pour PasswordCredential et FederatedCredential. Elle est également partiellement compatible avec PublicKeyCredential. La propriété accepte les quatre valeurs suivantes:

  • 'required': une médiation est toujours nécessaire pour poursuivre, par exemple en cliquant sur le bouton "Continuer" dans l'interface utilisateur. Choisissez cette option si vos utilisateurs doivent accorder explicitement une autorisation à chaque authentification.
  • 'optional'(par défaut): si possible, se réauthentifier automatiquement. Dans le cas contraire, une médiation est nécessaire. Nous vous recommandons de choisir cette option sur la page de connexion.
  • 'silent': si possible, la réauthentification automatique échoue sans nécessiter de médiation. 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, la page d'un article sur un site Web de livraison ou la page d'un article sur un site Web d'actualités).
  • 'conditional': utilisé pour WebAuthn et non disponible pour FedCM pour le moment.

Avec cet appel, la procédure d'authentification automatique se produit dans les conditions suivantes:

  • FedCM peut être utilisé. Par exemple, l'utilisateur n'a pas désactivé FedCM de manière globale ou pour le tiers assujetti à des restrictions dans les paramètres.
  • L'utilisateur n'a utilisé qu'un seul compte avec l'API FedCM pour se connecter au site Web sur ce navigateur.
  • L'utilisateur est connecté au fournisseur d'identité avec ce compte.
  • La reauthentification automatique ne s'est pas produite au cours des 10 dernières minutes.
  • Le tiers assujetti à des restrictions 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 démarre dès que le navigator.credentials.get() FedCM est appelé.

Réauthentification automatique d'un utilisateur via FedCM.

Appliquez la médiation avec preventSilentAccess()

Réauthentifier automatiquement les utilisateurs immédiatement après leur déconnexion n'améliorerait pas l'expérience utilisateur. C'est pourquoi FedCM bénéficie d'une période silencieuse de 10 minutes après une nouvelle authentification automatique pour éviter ce comportement. Cela signifie que la réauthentification automatique se produit au maximum une fois toutes les 10 minutes, sauf si l'utilisateur se reconnecte dans les 10 minutes. Le RP doit appeler navigateurator.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éauthentification automatique dans le menu des paramètres:

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

En désactivant l'option, l'utilisateur peut désactiver la 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 si la synchronisation est activée.

Envoyer des commentaires

Si vous testez FedCM, vous pouvez envoyer vos commentaires ou tout problème que vous rencontrez sur crbug.com sous un composant "Blink>Identity>FedCM".

Photo de Noah Samuel Franz sur Unsplash