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.

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
Please take two minutes to fill out our short survey.

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 (IdPs), um Identitätsföderationsdienste im Web auf datenschutzfreundliche Weise verfügbar zu machen, ohne dass Drittanbieter-Cookies und Umleitungen erforderlich sind. Dazu gehört eine JavaScript-API, die es ermöglicht, föderierte Authentifizierung für Aktivitäten wie das Anmelden oder Registrieren auf einer Website zu nutzen.

FedCM-Konzepte

Identitätsföderation ist die Delegierung der Benutzer-Authentifizierung von einer Website, die eine Benutzeranmeldung oder -registrierung erfordert, wie zum Beispiel einer E-Commerce- oder sozialen Netzwerkseite (auch bekannt als reliant party oder RP), an einen vertrauenswürdigen Drittanbieter-Identitätsanbieter (IdP) wie Google, Facebook/Meta, GitHub usw.

Reliant 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 dedizierter IdPs hat die Web-Authentifizierung in Bezug auf Sicherheit, Verbrauchervertrauen und Benutzererfahrung verbessert, verglichen mit dem Fall, dass jede Website ihre eigenen Anmeldebedürfnisse mit separaten Benutzernamen und Passwörtern verwaltet.

Das Problem besteht darin, dass die traditionelle Identitätsföderation auf <iframe>s, Umleitungen und Drittanbieter-Cookies setzt, die auch für Drittanbieter-Tracking verwendet werden. Browser schränken die Nutzung dieser Funktionen ein, um die Privatsphäre der Benutzer zu wahren, was als Nebeneffekt die Umsetzung anderer, nicht-tracking-relevanter Nutzungen erschwert, wozu auch die Identitätsföderation gehört.

Dies betrifft allgemein das föderierte Anmelden 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 Drittanbieter-Cookie des IdP vom RP-Top-Level-Ursprung bereitgestellt werden.
  • Personalisierte Schaltflächen: Die Anzeige von personalisierten Anmeldeinformationen auf einer <button> im RP-Ursprung wird als IdP-<iframe> implementiert, das Drittanbieter-Cookies benötigt.
  • Sitzungsaktualisierung ohne Top-Level-Navigation oder Pop-ups.

FedCM zielt darauf ab, dieses Problem zu umgehen, indem es einen dedizierten Mechanismus für Föderationsabläufe auf dem Web zur Verfügung stellt und unterstützende Browser ermöglicht, spezielle UI-Elemente auf RPs bereitzustellen, die es Benutzern erlauben, ein IdP-Konto für die Anmeldung auszuwählen.

Es gibt zwei Teile zur Verwendung der FedCM API, die in den unten verlinkten Leitfäden behandelt werden:

  1. IdP-Integration mit FedCM — was ein Identitätsanbieter bereitstellen muss, damit ein RP sich mit ihm integrieren kann.
  2. 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.

Hinweis: Google Sign In ist ein Beispiel für einen IdP, der bereits FedCM unterstützt. Zu FedCM migrieren bietet Anleitungen 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 Berechtigungsrichtlinie kann verwendet werden, um die Erlaubnis für die Nutzung von FedCM zu steuern, insbesondere die Nutzung der Methode get().

Entwickler können explizit die Erlaubnis für ein <iframe> 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 einige Anwendungsfälle:

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

Schnittstellen

IdentityCredential

Repräsentiert ein Benutzeridentitätszeugnis, das aus einer erfolgreichen föderierten Authentifizierung resultiert. Ein erfolgreicher navigator.credentials.get()-Aufruf, der eine identity-Option enthält, wird mit einer IdentityCredential-Instanz erfüllt.

IdentityProvider

Repräsentiert einen IdP und bietet Zugriff auf verwandte Informationen und Funktionalitäten.

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

Erweiterungen zu anderen Schnittstellen

CredentialsContainer.get(), die identity-Option.

identity ist ein Objekt mit Details über föderierte IdPs, die eine reliant party (RP)-Website verwenden kann, um Benutzer anzumelden. Es veranlasst einen get()-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, um den Anmeldestatus zu aktualisieren über HTTP.

Beispiele

Spezifikationen

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

Browser-Kompatibilität

Siehe auch