Zum Hauptinhalt springen

Content Security Policy

Kaleidrs SDK läuft in der Kundenseite. Das bedeutet, dass die Content Security Policy der Kundenseite die Ressourcen erlauben muss, die jedes Produkt lädt. Diese Seite enthält die Konfiguration.

Nach Produkt

Tile und Viewer (iframe-Produkte)

Tile und Viewer laden die eigentliche Karte innerhalb von map-embed.kaleidr.com unter Kaleidrs CSP. Die Parent-Seite muss nur das iframe selbst und den SDK-Loader erlauben:

default-src 'self';
script-src 'self' https://cdn.kaleidr.com;
frame-src https://map-embed.kaleidr.com;
connect-src 'self' https://api.kaleidr.com;

Du musst Mapbox-/MapTiler-/OSM-/Vendor-Bild-Hosts in der Parent-Seite nicht erlauben, wenn du nur Tile oder Viewer einbettest — diese befinden sich im Kaleidr-iframe.

Chat und Editor (In-Page-Attach)

Chat und Editor mounten MapLibre im Parent-Dokument. Die CSP der Parent-Seite muss jeden Host erlauben, den MapLibre und das SDK tatsächlich laden:

default-src 'self';
script-src 'self' 'wasm-unsafe-eval' https://cdn.kaleidr.com;
style-src 'self' 'unsafe-inline' https://cdn.kaleidr.com;
connect-src 'self'
https://api.kaleidr.com
https://api.mapbox.com https://events.mapbox.com
https://api.maptiler.com
https://*.tiles.mapbox.com;
img-src 'self' data: blob:
https://api.mapbox.com https://*.tiles.mapbox.com
https://api.maptiler.com
https://*.tile.openstreetmap.org;
worker-src 'self' blob:;
font-src 'self' data:;

'wasm-unsafe-eval' ist erforderlich — MapLibre kompiliert WebAssembly zur Laufzeit und schlägt ohne diese Direktive fehl. Wenn deine CSP 'wasm-unsafe-eval' verbietet, kannst du Chat oder Editor derzeit nicht in der Seite mounten.

Was zuerst ausfällt

SymptomWahrscheinlich fehlende Direktive
SDK-Loader liefert 404 oder wird blockiertscript-src https://cdn.kaleidr.com
MapLibre-Initialisierung schlägt fehl (Chat/Editor)'wasm-unsafe-eval' in script-src
Tiles erscheinen leer / grauconnect-src und/oder img-src für den Vendor-Host
Iframe rendert nie (Tile / Viewer)frame-src https://map-embed.kaleidr.com
Session-Austausch liefert 4xx in der KonsoleNicht CSP — siehe Auth & scopes Origin-Allowlist

Nonces und Hashes

'unsafe-inline' ist oben in style-src enthalten, weil MapLibre inline <style>-Blöcke erzeugt. Wenn deine CSP 'unsafe-inline' derzeit verbietet, verwende einen Nonce und gib die Styles unter diesem Nonce erneut aus — das SDK erstellt derzeit keinen Nonce pro Ladevorgang; wenn du einen benötigst, öffne ein Issue gegen kaleidr-sdk.

Report-Only-Rollout

Die sichere Methode zur Einführung dieser Richtlinie ist:

  1. Setze den obigen Block eine Woche lang als Content-Security-Policy-Report-Only mit einer eigenen report-uri.
  2. Füge Hosts, die in Verletzungsberichten erscheinen, der richtigen Direktive hinzu.
  3. Stelle den Header auf Content-Security-Policy um, sobald die Berichte ruhig bleiben.