Automatische erneute Authentifizierung in FedCM unterstützen

Chrome unterstützt die automatische erneute Authentifizierung in FedCM

Die Federated Credential Management API (FedCM) ist eine Web-API für die datenschutzfreundliche Identitätsföderation. Bei der Identitätsföderierung stützt sich eine RP (Relying Party) auf einen IdP (Identity Provider), um dem Nutzer ein Konto zur Verfügung zu stellen, ohne dass ein neuer Nutzername und ein neues Passwort erforderlich sind.

FedCM ermöglicht es dem Browser, den Kontext zu verstehen, in dem RP und IdP Informationen austauschen. Sie informiert den Nutzer über die freigegebenen Informationen und Berechtigungsstufen und verhindert unbeabsichtigten Missbrauch. FedCM ist seit Chrome-Version 108 verfügbar.

In Chrome 115 wird FedCM die automatische erneute Authentifizierung unterstützt. Das verbessert die Nutzerfreundlichkeit und ermöglicht eine optimierte erneute Authentifizierung beim RP nach der ersten Einwilligung.

Automatische erneute Authentifizierung

Derzeit müssen Nutzer, die über die FedCM API ein föderiertes Konto bei einem RP mit einem Identitätsanbieter erstellt haben, beim nächsten Besuch der Website dieselben Schritte in der Benutzeroberfläche ausführen. Das bedeutet, dass der Nutzer sich explizit und manuell noch einmal bestätigen muss, um sich neu zu authentifizieren und mit dem Anmeldevorgang fortzufahren.

Die explizite Nutzererfahrung ist sinnvoll, bevor der Nutzer das föderierte Konto erstellt hat, um Tracking zu verhindern (eines der Hauptziele von FedCM). Nach der Ersteinrichtung ist sie jedoch unnötig umständlich: Nachdem der Nutzer die Berechtigung zur Kommunikation zwischen dem RP und dem IdP erteilt hat, hat es keine Vorteile in Bezug auf Datenschutz oder Sicherheit, eine weitere explizite Nutzerbestätigung für etwas zu erzwingen, das er bereits zuvor akzeptiert hat. Aus diesem Grund führen wir eine optimierte Benutzeroberfläche ein, die RPs für ihre wiederkehrenden Nutzer auswählen können.

Mit der FedCM-Funktion auto-reauthentication (kurz „auto-reauthn“) können sich Nutzer automatisch noch einmal authentifizieren, wenn sie nach der anfänglichen Authentifizierung mit FedCM wiederkommen. „Die erste Authentifizierung“ bedeutet hier, dass der Nutzer ein Konto erstellt oder sich in der Website des RP anmeldet, indem er zum ersten Mal in derselben Browserinstanz auf das FedCM-Anmeldedialogfeld Weiter als… tippt.

Ein Dialogfeld, auf das der Nutzer tippt, um ein Konto zu erstellen oder sich zu authentifizieren.
Ein Dialogfeld, auf das der Nutzer tippt, um ein Konto zu erstellen oder sich zu authentifizieren.

Option für die automatische erneute Authentifizierung auswählen

Wir führen die automatische erneute Authentifizierung ein, um die Nutzerfreundlichkeit zu verbessern und die Spezifikation einzuhalten. Die Standardnutzererfahrung ändert sich jedoch nicht, ohne dass der Code geändert wird. Wenn die automatische erneute Authentifizierung verfügbar ist, ändert der Browser sein Verhalten je nachdem, welche Option Sie in der mediation-Option auswählen, die Entwickler mit navigator.credentials.get() bereitstellen.

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

mediation ist ein Attribut in der Credential Management API. Es verhält sich genau wie PasswordCredential und FederatedCredential und wird teilweise auch von PublicKeyCredential unterstützt. Für die Property sind die folgenden vier Werte zulässig:

  • 'required': Es ist immer eine Vermittlung erforderlich, um fortzufahren, z. B. das Klicken auf die Schaltfläche „Weiter“ in der Benutzeroberfläche. Wählen Sie diese Option aus, wenn Ihre Nutzer jedes Mal, wenn sie authentifiziert werden müssen, ausdrücklich die Berechtigung erteilen sollen.
  • 'optional'(Standard): Automatische erneute Autorisierung, falls möglich, andernfalls Vermittlung erforderlich. Wir empfehlen, diese Option auf der Anmeldeseite auszuwählen.
  • 'silent': Automatische erneute Authentifizierung, falls möglich, andernfalls geräuschloses Scheitern ohne Mediation. Wir empfehlen diese Option auf Seiten auszuwählen, die nicht die Anmeldeseite sind, auf denen Nutzer aber angemeldet bleiben sollen, z. B. auf einer Artikelseite einer Versandwebsite oder auf einer Artikelseite einer Nachrichtenwebsite.
  • 'conditional': Wird für WebAuthn verwendet und ist derzeit nicht für FedCM verfügbar.

Bei diesem Aufruf erfolgt die automatische erneute Authentifizierung unter den folgenden Bedingungen:

  • FedCM ist verfügbar. Beispiel: Der Nutzer hat FedCM nicht global oder für den RP in den Einstellungen deaktiviert.
  • Der Nutzer hat sich in diesem Browser nur mit einem Konto mit der FedCM API auf der Website angemeldet.
  • Der Nutzer ist mit diesem Konto beim Identitätsanbieter angemeldet.
  • Die automatische Reaktivierung hat nicht innerhalb der letzten 10 Minuten stattgefunden.
  • Der RP hat nach der vorherigen Anmeldung nicht navigator.credentials.preventSilentAccess() aufgerufen.

Wenn die oben genannten Bedingungen erfüllt sind, wird der Nutzer automatisch neu authentifiziert, sobald die FedCM navigator.credentials.get() aufgerufen wird.

Ein Nutzer, der sich automatisch über FedCM neu authentifiziert.

Vermittlung mit preventSilentAccess() erzwingen

Die automatische erneute Authentifizierung von Nutzern unmittelbar nach der Abmeldung würde die Nutzerfreundlichkeit nicht gerade verbessern. Aus diesem Grund gibt es bei FedCM nach einer automatischen erneuten Autorisierung eine 10-minütige Ruhezeit, um dieses Verhalten zu verhindern. Das bedeutet, dass die automatische erneute Authentifizierung maximal alle 10 Minuten erfolgt, es sei denn, der Nutzer meldet sich innerhalb von 10 Minuten wieder an. Der RP sollte navigator.credentials.preventSilentAccess() aufrufen, um den Browser ausdrücklich aufzufordern, die automatische erneute Authentifizierung zu deaktivieren, wenn sich ein Nutzer ausdrücklich vom RP abmeldet, z. B. durch Klicken auf eine Abmeldeschaltfläche.

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

Nutzer können die automatische erneute Autorisierung in den Einstellungen deaktivieren.

Nutzer können die automatische erneute Autorisierung über das Menü „Einstellungen“ deaktivieren:

  • Klicken Sie in der Desktopversion von Chrome auf chrome://password-manager/settings > „Automatisch anmelden“.
  • Öffne in Chrome für Android die Einstellungen > Passwortmanager > tippe oben rechts auf das Zahnradsymbol > „Automatische Anmeldung“.

Durch Deaktivieren der Ein/Aus-Schaltfläche kann der Nutzer die automatische erneute Authentifizierung deaktivieren. Diese Einstellung wird gespeichert und geräteübergreifend synchronisiert, wenn der Nutzer in der Chrome-Instanz in einem Google-Konto angemeldet ist und die Synchronisierung aktiviert ist.

Feedback geben

Wenn Sie FedCM testen, können Sie Ihr Feedback oder Probleme, die auftreten, unter crbug.com unter der Komponente „Blink>Identity>FedCM“ teilen.

Foto von Noah Samuel Franz auf Unsplash