FedCM-Updates: Ursprungstest für automatische erneute Authentifizierung

Es wurden einige Updates für FedCM eingeführt, u. a. ein neuer Ursprungstest für die automatische erneute Authentifizierung.

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.

FedCM ist eine speziell entwickelte API, die es dem Browser ermöglicht, den Kontext zu verstehen, in dem RP und IdP Informationen austauschen, den Nutzer über die freigegebenen Informationen und Berechtigungsebenen zu informieren und einen unbeabsichtigten Missbrauch zu verhindern.

Updates

Für die FedCM-Implementierung in Chrome gibt es einige Aktualisierungen:

Alle früheren Updates der API finden Sie unter Updates für die Federated Credential Management API.

Die neueste Version von FedCM beinhaltet eine neue Funktion zur automatischen erneuten Authentifizierung, mit der Nutzer automatisch noch einmal authentifiziert werden können, wenn sie nach der ersten Authentifizierung mit FedCM zurückkehren. Die automatische erneute Authentifizierung ist ab Chrome 112 als Ursprungstest verfügbar.

Automatische erneute Authentifizierung

Nachdem ein Nutzer über den FedCM ein föderiertes Konto in einem RP bei einem IdP erstellt hat, muss er beim nächsten Besuch der Website die gleichen Schritte auf der Benutzeroberfläche ausführen, wenn er das nächste Mal die Website besucht. Das heißt, sie müssen sich explizit bestätigen und noch einmal authentifizieren, um mit der Anmeldung fortfahren zu können. Eines der Hauptziele von FedCM ist es, verdecktes Tracking zu verhindern. Diese User Experience (UX) ist sinnvoll, bevor der Nutzer das föderierte Konto erstellt hat, wird aber nach dem ersten Mal unnötig und umständlich. Nachdem der Nutzer die Berechtigung erteilt hat, die Kommunikation zwischen dem RP und dem IdP zu ermöglichen, ergibt sich kein Datenschutz- oder Sicherheitsvorteil durch das Erzwingen einer weiteren expliziten Nutzerbestätigung für etwas, das er bereits bestätigt hat. Aus diesem Grund führt Chrome eine optimierte UX ein, die RPs für wiederkehrende Nutzer auswählen können.

Bei der automatischen erneuten Authentifizierung von FedCM (kurz: „automatische erneute Authentifizierung“) werden Nutzer automatisch neu authentifiziert (wenn RPs zustimmen), 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.

Die RP kann durch Aufrufen von navigator.credentials.get() mit autoReauthn: true eine automatische erneute Authentifizierung anfordern.

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
  },
});

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

  • FedCM ist verfügbar. Der Nutzer hat beispielsweise FedCM nicht global oder für das RP deaktiviert.
  • Der Nutzer hat sich in diesem Browser nur mit einem einzigen FedCM-Konto auf der Website angemeldet.
  • Der Nutzer ist mit diesem Konto beim IdP angemeldet.
  • In den letzten 10 Minuten wurde keine automatische Authentifizierung durchgeführt.

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

Ein Nutzer authentifiziert sich mithilfe von FedCM automatisch bei einem RP

Ausprobieren

Sie können die automatische Neuauthentifizierung von FedCM lokal testen. Aktivieren Sie dazu ab Chrome 112 das Chrome-Flag chrome://flags#fedcm-auto-re-authn.

Zu Testzwecken können Sie den 10-minütigen Pausierungszeitraum zurücksetzen, indem Sie Browserdaten entfernen.

  1. Rufen Sie chrome://history auf.
  2. Geben Sie im Feld für den Suchverlauf den Ursprung der RP ein.
  3. Klicken Sie auf das Dreipunkt-Menü ⋮ und wählen Sie Aus Verlauf entfernen aus.
  4. Starten Sie Chrome neu.

Am Ursprungstest teilnehmen

Du kannst die Funktion auch auf deiner Website aktivieren, indem du am Ursprungstest eines Drittanbieters teilnimmst, das von Chrome 112 bis Chrome 114 verfügbar ist.

Mit Ursprungstests können Sie neue Funktionen ausprobieren und der Webstandard-Community Feedback zu ihrer Nutzerfreundlichkeit, Praktikumsbarkeit und Effektivität geben. Weitere Informationen finden Sie im Leitfaden zu Ursprungstests für Webentwickler. Wenn Sie sich für diesen oder einen anderen Ursprungstest registrieren möchten, rufen Sie die Registrierungsseite auf.

So registrieren Sie sich für den Drittanbieter-Ursprungstest und aktivieren das Feature für Drittanbieter:

  1. Gehen Sie zur Registrierungsseite für Ursprungstests.
  2. Klicken Sie auf die Schaltfläche Registrieren und füllen Sie das Formular aus, um ein Token anzufordern.
  3. Geben Sie den Bereitstellungsursprung als Webursprung ein.
  4. Klicken Sie das Kästchen Drittanbieterabgleich an, um das Token mit JavaScript an anderen Quellen einzuschleusen.
  5. Klicken Sie auf Senden.
  6. Betten Sie das ausgestellte Token bei einem Drittanbieter ein.

Wenn Sie das Token in einen Drittanbieter einbetten möchten, fügen Sie den folgenden Code in Ihre JavaScript-Bibliothek oder das SDK ein, das vom Ursprung der registrierten Website bereitgestellt wird.

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

Ersetzen Sie TOKEN_GOES_HERE durch Ihr eigenes Token.

Reagieren und Feedback geben

Wenn du Feedback hast oder während des Tests Probleme auftreten, kannst du sie unter crbug.com in der Komponente Blink>Identity>FedCM teilen.

Foto von Alex Perz auf Unsplash