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 eine datenschutzfreundliche Identitätsföderation. Bei der Identitätsföderation verwendet ein RP (vertrauenswürdige Partei) einen IdP (Identitätsanbieter), um dem Nutzer ein Konto bereitzustellen, ohne dass ein neuer Nutzername und ein neues Passwort erforderlich sind.

Mit FedCM kann der Browser den Kontext verstehen, in dem RP- und IdP Informationen austauschen. Der Nutzer wird über die freigegebenen Informationen und Berechtigungsstufen informiert und verhindert unbeabsichtigten Missbrauch. FedCM ist in Chrome seit Version 108 verfügbar.

In Chrome 115 erhält FedCM Unterstützung für die automatische erneute Authentifizierung, wodurch die Nutzerfreundlichkeit verbessert und die erneute Authentifizierung bei RP nach der ersten Einwilligung optimiert wird.

Automatische erneute Authentifizierung

Wenn ein Nutzer ein föderiertes Konto in einem RP bei einem IdP über die FedCM API erstellt hat, muss er das nächste Mal, wenn er die Website besucht, die gleichen Schritte auf der Benutzeroberfläche ausführen. Das bedeutet, dass der Nutzer explizit und manuell noch einmal bestätigen muss, um sich noch einmal zu authentifizieren und mit dem Anmeldevorgang fortzufahren.

Während die explizite Nutzererfahrung sinnvoll ist, bevor der Nutzer das föderierte Konto erstellt hat, um das Tracking zu verhindern (eines der Hauptziele von FedCM), ist es unnötig umständlich, nachdem der Nutzer dies einmal durchlaufen hat: Nachdem der Nutzer die Berechtigung erteilt hat, Kommunikation zwischen dem RP und dem IdP zu ermöglichen, gibt es keinen Datenschutz- oder Sicherheitsvorteil, wenn bereits eine andere explizite Bestätigung durch den Nutzer bestätigt wurde. Deshalb führen wir eine optimierte UX ein, die RPs für wiederkehrende Nutzer auswählen können.

Mit der automatischen erneuten Authentifizierung von FedCM (kurz: „auto-reauthn“) können sich Nutzer automatisch neu authentifizieren, wenn sie nach der ersten Authentifizierung mit FedCM zurückkehren. „Erste Authentifizierung“ bedeutet hier, dass der Nutzer ein Konto erstellt oder sich auf der Website des RPs anmeldet, indem er zum ersten Mal in derselben Browserinstanz im Anmeldedialog von FedCM auf die Schaltfläche „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 zwar die automatische erneute Authentifizierung ein, um die Nutzerfreundlichkeit zu verbessern und um der Spezifikation gerecht zu werden. Die standardmäßige Nutzererfahrung ändert sich jedoch ohne Codeänderung. Wenn die automatische erneute Authentifizierung verfügbar ist, ändert sich sein Verhalten abhängig von der Option, die Sie in der mediation-Option auswählen, die Entwickler für 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
});

Das mediation ist eine Property in der Credential Management API. Es verhält sich genau so wie für PasswordCredential und FederatedCredential und wird teilweise auch von PublicKeyCredential unterstützt. Die -Eigenschaft akzeptiert die folgenden vier Werte:

  • 'required': Zum Fortfahren ist immer eine Vermittlung erforderlich, z. B. das Klicken auf die Schaltfläche „Weiter“ in der Benutzeroberfläche. Wählen Sie diese Option aus, wenn Ihre Nutzer jedes Mal ausdrücklich eine Berechtigung erteilen müssen, wenn sie authentifiziert werden müssen.
  • 'optional'(Standard): Wenn möglich, wird automatisch eine erneute Authentifizierung durchgeführt. Ist dies nicht der Fall, ist eine Vermittlung erforderlich. Wir empfehlen, diese Option auf der Anmeldeseite auszuwählen.
  • 'silent': Wenn möglich, schlägt die automatische Authentifizierung automatisch fehl, ohne dass eine Vermittlung erforderlich ist. Wir empfehlen, diese Option auf anderen Seiten als der speziellen Anmeldeseite auszuwählen, auf denen die Nutzer angemeldet bleiben sollen, z. B. auf einer Artikelseite auf einer Versandwebsite oder einer Artikelseite auf 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. Der Nutzer hat beispielsweise in den Einstellungen FedCM weder global noch für RP deaktiviert.
  • Der Nutzer hat nur ein Konto mit der FedCM API verwendet, um sich in diesem Browser auf der Website anzumelden.
  • Der Nutzer ist mit diesem Konto beim IdP angemeldet.
  • In den letzten 10 Minuten wurde keine automatische Authentifizierung durchgeführt.
  • Die RP hat nach der vorherigen Anmeldung navigator.credentials.preventSilentAccess() nicht aufgerufen.

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

Ein Nutzer authentifiziert sich automatisch über FedCM.

Vermittlung mit preventSilentAccess() erzwingen

Die automatische Neu-Authentifizierung von Nutzern direkt nach der Abmeldung würde nicht zu einer sehr guten Nutzererfahrung beitragen. Aus diesem Grund hat FedCM nach einer automatischen Authentifizierung einen 10-minütigen Pausierungszeitraum, um dieses Verhalten zu verhindern. Das bedeutet, dass die automatische erneute Authentifizierung maximal alle 10 Minuten erfolgt, sofern sich der Nutzer nicht innerhalb von 10 Minuten wieder anmeldet. Der RP sollte navigator.credentials.preventSilentAccess() aufrufen, um den Browser explizit aufzufordern, die automatische erneute Authentifizierung zu deaktivieren, wenn sich ein Nutzer explizit 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 Authentifizierung in den Einstellungen deaktivieren

Nutzer können die automatische Authentifizierung über das Einstellungsmenü deaktivieren:

  • Rufen Sie in der Desktopversion von Chrome chrome://password-manager/settings > Automatisch anmelden auf.
  • Öffnen Sie in Android Chrome Einstellungen > Passwortmanager > Tippen Sie rechts oben auf ein Zahnradsymbol > Automatische Anmeldung.

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

Feedback geben

Wenn Sie FedCM testen, können Sie unter der Komponente „Blink>Identity>FedCM“ unter crbug.com Feedback oder auftretende Probleme mitteilen.

Foto von Noah Samuel Franz bei Unsplash