HTTP Permissions-Policy identity-credentials-get

Typ

Die identity-credentials-get-Direktive steuert den Zugriff auf die Federated Credential Management (FedCM) API.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die föderierte Credentials abfragen dürfen.

http
Permissions-Policy: identity-credentials-get=(self)
Permissions-Policy: identity-credentials-get=(self "https://auth.idp.com")
Permissions-Policy: identity-credentials-get=()

Direktiven

Die Direktive unterstützt Standard-Allowlist-Werte für präzise Zugriffssteuerung.

self
Erlaubt FedCM-Zugriff nur für das Hauptdokument des gleichen Ursprungs. Eingebettete iFrames von anderen Ursprüngen werden blockiert.
origin-list
Liste von Ursprüngen in Anführungszeichen, z.B. "https://sso.provider.example.com", die zusätzlich zum Hauptdokument FedCM verwenden dürfen. Für SSO-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Single-Sign-On und föderierte Identity-Provider.

Web-App mit FedCM Sign-In

Eine Web-Anwendung nutzt FedCM für privacy-freundliches Google/Microsoft Sign-In.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: identity-credentials-get=(self)

<!DOCTYPE html>
<html>
<head><title>App Login</title></head>
<body>
  <button id="signin">Sign in with Google</button>
  <script>
    document.getElementById('signin').addEventListener('click', async () => {
      const credential = await navigator.credentials.get({
        identity: {
          providers: [{
            configURL: 'https://accounts.google.com/fedcm.json',
            clientId: 'abc123'
          }]
        }
      });
      // Use credential token
    });
  </script>
</body>
</html>

Enterprise-Portal mit SSO-Widget

Ein Enterprise-Portal erlaubt einem Corporate-SSO-Widget FedCM-Zugriff.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: identity-credentials-get=(self "https://sso.corp.example.com")

<!DOCTYPE html>
<html>
<head><title>Employee Portal</title></head>
<body>
  <iframe src="https://sso.corp.example.com/login-widget"
          allow="identity-credentials-get"></iframe>
</body>
</html>

Public API ohne FedCM

Ein öffentlicher API-Endpunkt deaktiviert alle Credential-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: identity-credentials-get=()

{
  "status": "success",
  "public_data": []
}

Vorteile für die Systemarchitektur

  • Ermöglicht privacy-freundliches SSO ohne Third-Party-Cookies
  • Verhindert unerwünschten FedCM-Zugriff durch Drittanbieter-iFrames
  • Unterstützt föderierte Identity-Provider-Integration ohne Tracking
  • Reduziert Abhängigkeit von klassischen OAuth-Redirects

Spezifikation

Definiert in der W3C Federated Credential Management API Spezifikation. Chromium-basierte Browser als Origin Trial. Ersetzt klassische OAuth-Flows.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header