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 standardisierten Mechanismus für Identity Provider (IdPs), um Identitätsfederationsdienste auf dem Web in einer datenschutzfreundlichen Weise bereitzustellen, ohne die Notwendigkeit von Drittanbieter-Cookies und Redirects. Dies umfasst eine JavaScript-API, die die Nutzung von föderierter Authentifizierung für Aktivitäten wie Anmelden oder Registrieren auf einer Website ermöglicht.
FedCM-Konzepte
Identitätsfederation ist die Delegation der Benutzer-Authentifizierung von einer Website, die Benutzerregistrierung oder -anmeldung erfordert, wie z.B. eine E-Commerce- oder Social-Networking-Seite (auch bekannt als relying party oder RP), an einen vertrauenswürdigen Drittanbieter-Identity-Provider (IdP) wie Google, Facebook/Meta, GitHub usw.
RPs können sich mit IdPs integrieren, was Benutzern ermöglicht, sich mit den Konten anzumelden, die sie beim IdP registriert haben. Die Identitätsfederation über eine kleine Anzahl spezieller IdPs hat die Web-Authentifizierung in Bezug auf Sicherheit, Vertrauen der Konsumenten und Benutzererfahrung verbessert, im Vergleich dazu, dass jede Website ihre eigenen Anmeldedaten mit separaten Benutzernamen und Passwörtern verwaltet.
Das Problem besteht jedoch darin, dass die traditionelle Identitätsfederation auf <iframe>s, Redirects und Drittanbieter-Cookies basiert, die auch für das Drittanbieter-Tracking genutzt werden. Browser beschränken die Nutzung dieser Funktionen, um die Privatsphäre der Benutzer zu schützen, was jedoch als Nebeneffekt die Implementierung von legitimen, nicht-trackenden Anwendungen, einschließlich der Identitätsfederation, erschwert.
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-Quelle bereitgestellt werden.
- Personalisierte Schaltflächen: Die Anzeige personalisierter Anmeldeinformationen auf einem
<button>in der RP-Quelle wird als IdP-<iframe>implementiert, das Drittanbieter-Cookies erfordert. - Sitzungsaktualisierung ohne Top-Level-Navigation 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 und ermöglicht es unterstützenden Browsern, spezielle UI-Elemente auf RPs bereitzustellen, die Benutzern die Wahl eines IdP-Kontos zur Anmeldung ermöglichen.
Es gibt zwei Teile zur Nutzung der FedCM API, die in den unten verlinkten Leitfäden behandelt werden:
- IdP-Integration mit FedCM — was ein Identity Provider bereitstellen muss, damit eine RP sich integrieren kann.
- RP föderierte Anmeldung — die FedCM-Funktionalität, die eine RP nutzen muss, um einen Benutzer mit seinem IdP-Konto anzumelden. Eine FedCM-Anmeldeanfrage wird mit der Methode
navigator.credentials.get()gestartet.
Hinweis: Google Anmelden ist ein Beispiel für einen IdP, der FedCM bereits unterstützt. Migration zu FedCM bietet Anweisungen für RPs, die bestehende Apps, die Google Anmelden verwenden, zu föderierter Anmeldung migrieren möchten.
Integration der Permissions Policy und <iframe>-Unterstützung
Die identity-credentials-get Permissions-Policy kann verwendet werden, um die Berechtigung zur Nutzung von FedCM zu steuern.
Genauer gesagt erlaubt sie die Nutzung der folgenden Methoden:
Entwickler können die Berechtigung für ein <iframe> explizit über das allow-Attribut erteilen:
<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 Top-Level-Frame erhält; stattdessen möchten sie dieses Skript hinzufügen und FedCM aus einem
<iframe>aufrufen. - Einige
<iframes>können selbst föderierte Authentifizierung erfordern.
Schnittstellen
IdentityCredential-
Repräsentiert ein Benutzeridentitätsnachweis, das aus einer erfolgreichen föderierten Authentifizierung entsteht. Ein erfolgreicher Aufruf von
navigator.credentials.get(), der eineidentity-Option enthält, erfüllt sich mit einerIdentityCredential-Instanz. IdentityCredentialError-
Repräsentiert einen Authentifizierungsfehler, der darauf hinweist, dass die Benutzeragent nicht nach der Anforderung einer Authentizitätsbestätigung durch den Benutzer eine Identitätserklärung empfangen hat.
IdentityProvider-
Repräsentiert einen IdP und bietet Zugriff auf zugehörige Informationen und Funktionalitäten.
-
Definiert Anmeldefunktionalität für IdPs, einschließlich der Methode
Navigator.login.setStatus()zum Aktualisieren des IdP-Anmeldestatus.
Erweiterungen für andere Schnittstellen
CredentialsContainer.get(), dieidentity-Option.-
identityist ein Objekt, das Details zu föderierten IdPs enthält, die eine relying party (RP) Website verwenden kann, um Benutzer anzumelden. Es bewirkt, dass einget()-Aufruf eine Anfrage einleitet, damit ein Benutzer sich bei einer RP mit einem IdP anmeldet. -
Bietet Zugriff auf das Navigator-Login-Objekt des Browsers.
HTTP-Header
Set-Login-
Bietet einen HTTP-Mechanismus zum Aktualisieren des Anmeldestatus über HTTP.
Beispiele
Für Beispielcode siehe:
- Implementieren einer Identitätslösung mit FedCM auf der Seite des Identity Providers auf developer.chrome.com (2025)
- Implementieren einer Identitätslösung mit FedCM auf der Seite der Relying Party auf developer.chrome.com (2025)
Spezifikationen
| Specification |
|---|
| Federated Credential Management API> # browser-api-identity-credential-interface> |
Browser-Kompatibilität
Loading…