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 Identitätsanbieter (IdP), um Identitätsföderierungsdienste im Web in einer datenschutzfreundlichen Weise verfügbar zu machen, ohne auf Drittanbieter-Cookies und Umleitungen angewiesen zu sein. Dazu gehört eine JavaScript-API, die die Nutzung föderierter Authentifizierung für Aktivitäten wie Anmelden oder Registrieren auf einer Website ermöglicht.
FedCM-Konzepte
Identitätsföderation ist die Delegierung der Benutzer-Authentifizierung von einer Website, die eine Benutzeranmeldung oder -registrierung erfordert, wie z.B. eine E-Commerce- oder Social-Networking-Seite (auch bekannt als relying party oder RP), an einen vertrauenswürdigen Drittanbieter-Identitätsanbieter (IdP) wie Google, Facebook/Meta, GitHub, etc.
Relying Parties (RPs) können sich mit IdPs integrieren, was es Benutzern ermöglicht, sich mit den Konten anzumelden, die sie bei dem IdP registriert haben. Die Identitätsföderation über eine kleine Anzahl dedizierter 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 besteht darin, dass die traditionelle Identitätsföderation auf <iframe>
s, Umleitungen und Drittanbieter-Cookies beruht, die auch für Drittanbieter-Tracking genutzt 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 gültiger, nicht-tracking-bezogener Anwendungen, einschließlich der Identitätsföderation, erschwert.
Dies betrifft das föderierte Anmelden im Allgemeinen sowie spezifischere Anwendungsfälle der Identitätsföderation:
- 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 aus der RP-Top-Level-Herkunft bereitgestellt werden.
- Personalisierte Schaltflächen: Die Anzeige personalisierter Anmeldeinformationen auf einem
<button>
in der RP-Herkunft wird als IdP-<iframe>
implementiert, das Drittanbieter-Cookies erfordert. - Sitzungsaktualisierung ohne Top-Level-Navigation oder Pop-ups.
FedCM soll dieses Problem umgehen, indem es einen dedizierten Mechanismus für föderierte Identitätsabläufe im Web bereitstellt und unterstützende Browser spezielle UI-Elemente auf RPs bereitstellen, damit Benutzer ein IdP-Konto für die Anmeldung auswählen können.
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 mit ihm integrieren kann.
- RP föderierte Anmeldung — die FedCM-Funktionalität, die ein RP benötigt, um einen Benutzer mit ihrem IdP-Konto anzumelden. Eine FedCM-Anmeldeanfrage wird mit der Methode
navigator.credentials.get()
initiiert.
Hinweis:>Google Sign In 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 Sign In verwenden, auf föderierte Anmeldung umstellen möchten.
Integration der Berechtigungsrichtlinie und <iframe>
-Unterstützung
Die identity-credentials-get
Permissions-Policy kann verwendet werden, um die Berechtigung zur Nutzung von FedCM zu steuern, genauer gesagt die Nutzung der Methode get()
.
Entwickler können explizit die Berechtigung für ein <iframe>
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 Top-Level-Frame erhält; stattdessen möchten sie dieses Skript hinzufügen und FedCM von innerhalb eines
<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 hervorgeht. Ein erfolgreicher Aufruf von
navigator.credentials.get()
, der eineidentity
-Option umfasst, erfüllt sich mit einer Instanz vonIdentityCredential
. IdentityProvider
-
Repräsentiert einen IdP und bietet Zugriff auf damit verbundene Informationen und Funktionen.
-
Definiert die 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 föderierter IdPs enthält, die eine relying party (RP) Website verwenden kann, um Benutzer anzumelden. Es bewirkt, dass einget()
-Aufruf eine Anfrage für einen Benutzerinitiiert, sich bei einem RP mit einem IdP anzumelden. -
Bietet Zugriff auf das Browserobjekt
NavigatorLogin
.
HTTP-Header
Set-Login
-
Bietet einen HTTP-Mechanismus zur Aktualisierung des Anmeldestatus über HTTP.
Beispiele
Spezifikationen
Specification |
---|
Federated Credential Management API # browser-api-identity-credential-interface |