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ätsföderationsdienste auf datenschutzfreundliche Weise im Web bereitzustellen, ohne auf Drittanbieter-Cookies und Umleitungen angewiesen zu sein. Dies umfasst eine JavaScript-API, die die Nutzung von föderierter Authentifizierung für Aktivitäten wie das Einloggen oder Registrieren auf einer Website ermöglicht.
FedCM-Konzepte
Identitätsföderation ist die Delegierung der Benutzeranmeldung von einer Website, die eine Benutzeranmeldung benötigt, wie z.B. eine E-Commerce- oder soziale Netzwerkseite (auch bekannt als Relying Party oder RP), an einen vertrauenswürdigen Drittanbieter für Identitäten (IdP) wie Google, Facebook/Meta, GitHub usw.
Relying Parties (RPs) können sich mit IdPs integrieren, sodass Benutzer sich mit den Konten anmelden können, die sie beim IdP registriert haben. Die Identitätsföderation über eine kleine Anzahl von dedizierten IdPs hat die Web-Authentifizierung in Bezug auf Sicherheit, Verbrauchervertrauen und Benutzererfahrung verbessert, im Vergleich dazu, dass jede Seite ihre eigenen Anmeldeanforderungen mit separaten Benutzernamen und Passwörtern verwaltet.
Das Problem ist, dass die traditionelle Identitätsföderation auf <iframe>
s, Umleitungen und Drittanbieter-Cookies angewiesen ist, die auch für Drittanbieter-Tracking verwendet werden. Browser schränken die Verwendung dieser Funktionen ein, um die Privatsphäre der Benutzer zu wahren, und ein Nebeneffekt ist, dass dies die Umsetzung legitimer, nicht-trackingbezogener Anwendungen erschwert, was die Identitätsföderation einschließt.
Dies betrifft die föderierte Anmeldung im Allgemeinen sowie spezifischere Anwendungsfälle der Identitätsföderation:
- OIDC Front-Channel-Abmeldung: Dieser Ablauf erfordert, dass der IDP mehrere RP
<iframe>
s einbettet, die sich auf RP-Cookies verlassen. - Soziale Widgets: Um soziale Widgets bereitzustellen, muss das IdP-Drittanbieter-Cookie aus dem RP-Top-Level-Ursprung bereitgestellt werden.
- Personalisierte Schaltflächen: Die Anzeige personalisierter Anmeldeinformationen auf einem
<button>
im RP-Ursprung wird als IdP-<iframe>
implementiert, das Drittanbieter-Cookies benötigt. - Session-Aktualisierung 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 ermöglicht es unterstützenden Browsern, spezielle UI-Elemente auf RPs bereitzustellen, die es Benutzern ermöglichen, ein IdP-Konto zur Anmeldung auszuwählen.
Es gibt zwei Teile bei der Nutzung 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 integrieren kann.
- RP föderierte Anmeldung — die FedCM-Funktionalität, die ein RP nutzen muss, um einen Benutzer mit seinem IdP-Konto anzumelden. Eine FedCM-Anmeldeanforderung wird mit der Methode
navigator.credentials.get()
initiiert.
Note: 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, die Google Sign In verwenden, auf föderierte Anmeldung migrieren möchten.
Integration der Berechtigungsrichtlinie und <iframe>
-Unterstützung
Die identity-credentials-get
Berechtigungsrichtlinie kann verwendet werden, um die Berechtigung zur Nutzung von FedCM zu steuern, insbesondere die Nutzung der Methode get()
.
Entwickler können explizit die Berechtigung erteilen, dass ein <iframe>
FedCM über das allow
-Attribut nutzen darf:
<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 Sites möchten nicht, dass ein Drittanbieter-Skript die Kontrolle über den Top-Level-Frame erhält; stattdessen möchten sie dieses Skript hinzufügen und FedCM aus einem
<iframe>
heraus aufrufen. - Einige
<iframes>
könnten selbst eine föderierte Authentifizierung erfordern.
Schnittstellen
IdentityCredential
-
Repräsentiert ein Benutzeridentitätsnachweis, das aus einer erfolgreichen föderierten Authentifizierung resultiert. Ein erfolgreicher Aufruf von
navigator.credentials.get()
mit eineridentity
-Option erfüllt sich mit einer Instanz vonIdentityCredential
. IdentityProvider
-
Repräsentiert einen IdP und bietet Zugang zu verwandten Informationen und Funktionen.
-
Definiert Anmeldefunktionalität für IdPs, einschließlich der Methode
Navigator.login.setStatus()
für Aktualisierung des IdP-Anmeldestatus.
Erweiterungen zu anderen Schnittstellen
CredentialsContainer.get()
, dieidentity
-Option.-
identity
ist ein Objekt, das Details zu föderierten IdPs enthält, die eine Relying Party (RP) Website zur Anmeldung von Benutzern verwenden kann. Es verursacht, dass einget()
-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 zum Aktualisieren des Anmeldestatus über HTTP.
Beispiele
Spezifikationen
Specification |
---|
Federated Credential Management API # browser-api-identity-credential-interface |
Browser-Kompatibilität
BCD tables only load in the browser