Federated Credential Management (FedCM) API
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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 Standardmechanismus für Identitätsanbieter (IdPs), um Identitätsfederationsdienste auf datenschutzfreundliche Weise im Web bereitzustellen, ohne dass Drittanbieter-Cookies und Weiterleitungen erforderlich sind. Dazu gehört eine JavaScript-API, die die Verwendung von föderierter Authentifizierung für Aktivitäten wie Anmeldung oder Registrierung auf einer Website ermöglicht.
FedCM-Konzepte
Identitätsfederation ist die Delegation der Benutzer-Authentifizierung von einer Website, die eine Benutzerregistrierung oder -anmeldung erfordert, wie z. B. eine E-Commerce- oder Social-Networking-Site (auch als verlassende Partei oder RP bekannt), an einen vertrauenswürdigen Drittanbieter-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 dem Fall, dass jede Site ihre eigenen Anmeldeanforderungen mit separaten Benutzernamen und Passwörtern verwalten müsste.
Das Problem besteht darin, dass die traditionelle Identitätsfederation auf <iframe>
s, Weiterleitungen und Drittanbieter-Cookies beruht, die auch für die Nachverfolgung Dritter genutzt werden. Browser beschränken die Nutzung dieser Funktionen, um die Privatsphäre der Nutzer zu wahren, mit der Folge, dass dadurch die Implementierung legitimer, nicht auf Nachverfolgung basierender Anwendungen erschwert wird, einschließlich der Identitätsfederation.
Dies betrifft im Allgemeinen die föderierte Anmeldung sowie spezifischere Anwendungsfälle der Identitätsfederation:
- OIDC-Front-Channel-Abmeldung: 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 Drittanbieter-Cookie des IdP aus dem RP-Oberflächenursprung bereitgestellt werden.
- Personalisierte Schaltflächen: Die Anzeige personalisierter Anmeldeinformationen auf einer
<button>
im RP-Ursprung wird als IdP-<iframe>
implementiert, das Drittanbieter-Cookies erfordert. - Sitzungsaktualisierung ohne Navigieren auf oberster Ebene oder Pop-ups.
FedCM zielt darauf ab, dieses Problem zu umgehen und bietet einen speziellen Mechanismus für föderierte Identitätsabläufe im Web. Unterstützende Browser können spezielle UI-Elemente auf RPs bereitstellen, die Benutzern die Auswahl eines IdP-Kontos zur Anmeldung ermöglichen.
Es gibt zwei Teile zur Verwendung der FedCM API, die in den unten verlinkten Leitfäden behandelt werden:
- IdP-Integration mit FedCM — was ein Identitätsanbieter bereitstellen muss, damit ein RP sich mit ihm integrieren kann.
- RP-föderierte Anmeldung — die FedCM-Funktionalität, die ein RP benötigt, um einen Benutzer mit seinem IdP-Konto anzumelden. Eine FedCM-Anmeldeanforderung wird mit der
navigator.credentials.get()
Methode initiiert.
Hinweis: Google Sign In ist ein Beispiel für einen IdP, der bereits FedCM unterstützt. Migration zu FedCM bietet Anweisungen für RPs, die bestehende Apps, die Google Sign In verwenden, auf föderierte Anmeldung umstellen 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.
Insbesondere erlaubt sie die Nutzung der folgenden Methoden:
Entwickler können einem <iframe>
explizit die Erlaubnis erteilen, FedCM über das allow
-Attribut zu verwenden:
<iframe src="3rd-party.example" allow="identity-credentials-get"></iframe>
Die Verfügbarkeit von FedCM innerhalb von <iframe>
s ermöglicht einige Anwendungsfälle:
- Größere Seiten möchten nicht, dass ein Drittanbieter-Anmeldeskript die Kontrolle über den Hauptframe übernimmt; stattdessen möchten sie das Skript hinzufügen und FedCM innerhalb eines
<iframe>
aufrufen. - Einige
<iframes>
können selbst eine föderierte Authentifizierung erfordern.
Schnittstellen
IdentityCredential
-
Repräsentiert ein Benutzeridentitäts-Credential, das aus einer erfolgreichen föderierten Authentifizierung resultiert. Ein erfolgreicher Aufruf von
navigator.credentials.get()
, der eineidentity
-Option enthält, erfüllt mit einerIdentityCredential
-Instanz. IdentityCredentialError
-
Repräsentiert einen Authentifizierungsfehler, der darauf hinweist, dass der Benutzeragent nach der vom Benutzer angeforderten Authentifizierung mit einem föderierten Credential keine Identitätsbehauptung erhalten hat.
IdentityProvider
-
Repräsentiert einen IdP und bietet Zugriff auf verwandte Informationen und Funktionalitäten.
-
Definiert Login-Funktionalität für IdPs, einschließlich der Methode
Navigator.login.setStatus()
zum Aktualisieren von IdP-Anmeldestatus.
Erweiterungen zu anderen Schnittstellen
CredentialsContainer.get()
, dieidentity
-Option.-
identity
ist ein Objekt, das Details von föderierten IdPs enthält, die eine relying party (RP)-Website verwenden kann, um Benutzer anzumelden. Es veranlasst einenget()
-Aufruf, eine Anfrage zu initiieren, damit sich ein Benutzer bei einem RP mit einem IdP anmeldet. -
Bietet Zugriff auf das
NavigatorLogin
-Objekt des Browsers.
HTTP-Header
Set-Login
-
Bietet einen HTTP-Mechanismus zum Aktualisieren des Anmeldestatus via HTTP.
Beispiele
Für Beispielcode siehe:
- Implementieren einer Identitätslösung mit FedCM auf der Seite des Identitätsanbieters auf privacysandbox.google.com (2025).
- Implementieren einer Identitätslösung mit FedCM auf der Seite der Verlassenden Partei auf privacysandbox.google.com (2025).
Spezifikationen
Specification |
---|
Federated Credential Management API> # browser-api-identity-credential-interface> |
Browser-Kompatibilität
Loading…