HTTP Permissions-Policy microphone

Typ

Die microphone-Direktive steuert den Zugriff auf die MediaStream Microphone API für Audio-Aufnahmen über getUserMedia.

Syntax

Die Direktive definiert eine Allowlist für Ursprünge, die Mikrofon-Zugriff erhalten dürfen.

http
Permissions-Policy: microphone=(self)
Permissions-Policy: microphone=(self "https://voice-chat.com")
Permissions-Policy: microphone=()

Direktiven

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

self
Erlaubt Mikrofon-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://conferencing.example.com", die zusätzlich zum Hauptdokument Mikrofon-Zugriff erhalten. Für Voice-Chat-Widgets.

Beispiele

Die folgenden Beispiele zeigen typische Anwendungsfälle für Voice-Chat, Podcasting und Speech-Recognition.

Voice-Chat-App mit Audio-Capture

Eine Voice-Chat-Anwendung nutzt Microphone API für Echtzeit-Audio-Kommunikation.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: microphone=(self), camera=(self)

<!DOCTYPE html>
<html>
<head><title>Voice Call</title></head>
<body>
  <button id="start">Start Call</button>
  <script>
    document.getElementById('start').addEventListener('click', async () => {
      const stream = await navigator.mediaDevices.getUserMedia({
        audio: true,
        video: false
      });
      // Send audio to peers
    });
  </script>
</body>
</html>

Podcasting-Platform mit Recording-Widget

Eine Podcasting-Plattform erlaubt einem Recording-Widget Mikrofon-Zugriff.

http
HTTP/1.1 200 OK
Content-Type: text/html
Permissions-Policy: microphone=(self "https://recorder.podcast-platform.example.com")

<!DOCTYPE html>
<html>
<head><title>Podcast Studio</title></head>
<body>
  <iframe src="https://recorder.podcast-platform.example.com/widget"
          allow="microphone"></iframe>
</body>
</html>

REST-API ohne Media-Capture

Ein API-Endpunkt deaktiviert alle Media-Capture-APIs.

http
HTTP/1.1 200 OK
Content-Type: application/json
Permissions-Policy: microphone=(), camera=()

{
  "status": "success",
  "user_id": 12345
}

Vorteile für die Systemarchitektur

  • Verhindert unautorisierten Audio-Zugriff durch eingebettete Drittanbieter
  • Schützt vor Audio-Surveillance durch unkontrollierten Mikrofon-Zugriff
  • Ermöglicht Voice-Communication für vertrauenswürdige Anwendungen
  • Reduziert Privacy-Risiken durch Policy-basierte Kontrolle

Spezifikation

Definiert in der W3C Permissions Policy und Media Capture Spezifikation. Erfordert HTTPS und explizite Nutzer-Permission per Browser-Prompt.

Weitere Spezifikationen

Permissions-Policy camera, Permissions-Policy Header