HTTP Permissions-Policy publickey-credentials-get

Typ

Die publickey-credentials-get-Direktive steuert die Verwendung existierender WebAuthn-Credentials für Passkey-Login.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die WebAuthn-Credentials für Authentifizierung verwenden dürfen.

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

Direktiven

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

self
Erlaubt Credential-Verwendung 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://auth-service.example.com", die zusätzlich zum Hauptdokument Credentials verwenden dürfen. Für Auth-Provider-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Passkey-Login und FIDO2-Authentifizierung.

Passkey-Login für Web-App

Eine Login-Seite nutzt WebAuthn für passwortlose Authentifizierung mit Passkeys.

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

<!DOCTYPE html>
<html>
<head><title>Sign In</title></head>
<body>
  <button id="login">Sign in with Passkey</button>
  <script>
    document.getElementById('login').addEventListener('click', async () => {
      const credential = await navigator.credentials.get({
        publicKey: {
          challenge: new Uint8Array(32),
          rpId: 'example.com',
          userVerification: 'preferred'
        }
      });
      // Send assertion to server
    });
  </script>
</body>
</html>

SaaS-Platform mit Identity-Provider-Widget

Eine SaaS-Plattform erlaubt einem Identity-Provider WebAuthn-Authentifizierung.

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

<!DOCTYPE html>
<html>
<head><title>Admin Dashboard</title></head>
<body>
  <iframe src="https://identity.auth-provider.example.com/login"
          allow="publickey-credentials-get"></iframe>
</body>
</html>

Public API ohne WebAuthn

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

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

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

Vorteile für die Systemarchitektur

  • Ermöglicht passwortlose Authentifizierung mit FIDO2-Passkeys
  • Verhindert unerwünschte Credential-Verwendung durch Drittanbieter
  • Unterstützt Hardware-Token-Login (YubiKey, TPM, etc.)
  • Reduziert Phishing-Risiken durch domaingebundene Credentials

Spezifikation

Definiert in der W3C Web Authentication (WebAuthn) API Spezifikation. Erfordert HTTPS. Unterstützt Platform- und Cross-Platform-Authenticators mit User-Verification.

Weitere Spezifikationen

Permissions-Policy Header, Content-Security-Policy Header