Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Federated Credential Management (FedCM) API

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die Federated Credential Management API (oder FedCM API) bietet einen standardisierten Mechanismus, mit dem Identitätsanbieter (IdPs) Identitätsfederationsdienste auf der Webplattform datenschutzfreundlich bereitstellen können, ohne dass Drittanbieter-Cookies und Weiterleitungen erforderlich sind. Dies beinhaltet eine JavaScript-API, die die Verwendung von föderierter Authentifizierung für Aktivitäten wie das Ein- oder Anmelden auf einer Website ermöglicht.

FedCM-Konzepte

Identitätsfederation ist die Delegation der Benutzerauthentifizierung von einer Website, die eine Benutzeranmeldung oder -registrierung erfordert, wie beispielsweise eine E-Commerce- oder Social-Networking-Site (auch bekannt als Reliant Party oder RP), an einen vertrauenswürdigen Identitätsanbieter (IdP) wie Google, Facebook/Meta, GitHub usw.

RPs können sich mit IdPs integrieren, sodass Benutzer sich mit den Konten anmelden können, die sie beim IdP registriert haben. Die Identitätsfederation über eine kleine Anzahl dedizierter IdPs hat die Web-Authentifizierung in Bezug auf Sicherheit, Verbrauchervertrauen und Benutzererfahrung verbessert, verglichen mit der Verwaltung von Anmeldeanforderungen durch jede Website mit separaten Benutzernamen und Passwörtern.

Das Problem ist, dass die traditionelle Identitätsfederation auf <iframe>s, Weiterleitungen und Drittanbieter-Cookies beruht, die auch für Drittverfolgung verwendet werden. Browser schränken die Nutzung dieser Funktionen ein, um die Privatsphäre der Benutzer zu schützen, aber ein Nebeneffekt ist, dass dies die Implementierung von gültigen, nicht-verfolgenden Verwendungen erschwert, zu denen auch die Identitätsfederation gehört.

Dies betrifft die föderierte Anmeldung im Allgemeinen sowie spezifischere Anwendungsfälle der Identitätsfederation:

  • OIDC-Front-Channel-Logout: Dieser Ablauf erfordert, dass der IDP mehrere RP <iframe>s einbettet, die auf RP-Cookies angewiesen sind.
  • Soziale Widgets: Um soziale Widgets bereitzustellen, muss das IdP-Drittanbieter-Cookie von der RP-Top-Level-Herkunft bereitgestellt werden.
  • Personalisierte Buttons: Die Anzeige personalisierter Anmeldeinformationen auf einem <button> in der RP-Herkunft wird als ein IdP-<iframe> implementiert, das Drittanbieter-Cookies erfordert.
  • Sitzungsaktualisierung ohne Top-Level-Navigation oder Popups.

FedCM zielt darauf ab, dieses Problem zu umgehen, indem ein dedizierter Mechanismus für föderierte Identitätsflüsse im Web bereitgestellt wird und unterstützende Browser spezielle UI-Elemente auf RPs bereitstellen, die es Benutzern ermöglichen, ein IdP-Konto zur Anmeldung auszuwählen.

Es gibt zwei Teile bei der Verwendung der FedCM-API, die in den unten verlinkten Leitfäden abgedeckt sind:

  1. IdP-Integration mit FedCM — was ein Identitätsanbieter bereitstellen muss, damit sich eine RP mit ihm integrieren kann.
  2. RP-föderierte Anmeldung — die FedCM-Funktionalität, die eine RP benötigt, um einen Benutzer mit seinem IdP-Konto anzumelden. Eine FedCM-Anmeldeanforderung wird mit der Methode navigator.credentials.get() initiiert.

Hinweis: Google Sign In ist ein Beispiel für einen IdP, der FedCM bereits unterstützt. Auf FedCM migrieren bietet Anweisungen für RPs, die bestehende Apps unter Verwendung von Google Sign In zu federierten Anmeldungen migrieren möchten.

Integration der Permissions-Policy und <iframe>-Unterstützung

Die identity-credentials-get Permissions-Policy kann verwendet werden, um die Berechtigung zur Verwendung von FedCM zu steuern. Genauer gesagt, erlaubt sie die Nutzung der folgenden Methoden:

Entwickler können einem <iframe> explizit die Erlaubnis erteilen, FedCM über das allow-Attribut zu verwenden:

html
<iframe src="3rd-party.example" allow="identity-credentials-get"></iframe>

Die Verfügbarkeit von FedCM innerhalb von <iframe>s ermöglicht eine Reihe von Anwendungsfällen:

  • Größere Websites möchten nicht, dass ein Drittanbieter-Anmeldeskript die Kontrolle über den Top-Level-Frame übernimmt; stattdessen wollen sie dieses Skript hinzufügen und FedCM aus einem <iframe> heraus aufrufen.
  • Einige <iframes> können selbst eine föderierte Authentifizierung erfordern.

Schnittstellen

IdentityCredential

Repräsentiert eine Benutzeridentitätsberechtigung, die aus einer erfolgreichen föderierten Authentifizierung resultiert. Ein erfolgreicher Aufruf von navigator.credentials.get(), der eine identity-Option beinhaltet, führt zu einer Erfüllung mit einer Instanz von IdentityCredential.

IdentityCredentialError

Repräsentiert einen Authentifizierungsfehler, der darauf hinweist, dass der User-Agent keine Identitätsbehauptung erhalten hat, nachdem der Benutzer die Authentifizierung mit einer föderierten Berechtigung angefordert hat.

IdentityProvider

Repräsentiert einen IdP und bietet Zugang zu verwandten Informationen und Funktionalitäten.

Definiert Anmeldefunktionalität für IdPs, einschließlich der Methode Navigator.login.setStatus() zur Aktualisierung des IdP-Anmeldestatus.

Erweiterungen zu anderen Schnittstellen

CredentialsContainer.get(), die identity-Option.

identity ist ein Objekt, das Details von föderierten IdPs enthält, die eine Reliant Party (RP)-Website verwenden kann, um Benutzer anzumelden. Es führt dazu, dass ein get()-Aufruf eine Anfrage initiiert, damit sich ein Benutzer mit einem IdP bei einer RP anmeldet.

Bietet Zugang zum NavigatorLogin-Objekt des Browsers.

HTTP-Header

Set-Login

Bietet einen HTTP-Mechanismus zur Aktualisierung des Anmeldestatus über HTTP.

Beispiele

Für Beispielcode, siehe:

Spezifikationen

Spezifikation
Federated Credential Management API
# browser-api-identity-credential-interface

Browser-Kompatibilität

Siehe auch