Aller au contenu principal

Content Security Policy

Le SDK de Kaleidr s’exécute dans la page du client. Cela signifie que la Content Security Policy de la page cliente doit autoriser les ressources chargées par chaque produit. Cette page fournit la configuration.

Produit par produit

Tile et Viewer (produits iframe)

Tile et Viewer chargent la carte réelle dans map-embed.kaleidr.com, sous la CSP de Kaleidr. La page parente doit uniquement autoriser l’iframe lui-même et le loader du SDK :

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

Vous n’avez pas besoin d’autoriser les hôtes d’images Mapbox / MapTiler / OSM / vendor dans la page parente lorsque vous intégrez uniquement Tile ou Viewer — ils se trouvent dans l’iframe Kaleidr.

Chat et Editor (attach dans la page)

Chat et Editor montent MapLibre dans le document parent. La CSP de la page parente doit autoriser tous les hôtes réellement chargés par MapLibre et le SDK :

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' est requis — MapLibre compile WebAssembly à l’exécution et échoue sans cela. Si votre CSP interdit 'wasm-unsafe-eval', vous ne pouvez pas actuellement monter Chat ou Editor dans la page.

Ce qui casse en premier

SymptômeDirective probablement manquante
Le loader du SDK renvoie 404 ou est bloquéscript-src https://cdn.kaleidr.com
L’initialisation de MapLibre échoue (Chat/Editor)'wasm-unsafe-eval' dans script-src
Les tuiles apparaissent vides / grisesconnect-src et/ou img-src pour l’hôte vendor
L’iframe ne s’affiche jamais (Tile / Viewer)frame-src https://map-embed.kaleidr.com
Le session exchange renvoie 4xx dans la consoleCe n’est pas la CSP — consultez l’origin allowlist dans Auth & scopes

Nonces et hashes

'unsafe-inline' est inclus dans style-src ci-dessus car MapLibre génère des blocs <style> inline. Si votre CSP interdit actuellement 'unsafe-inline', utilisez un nonce et réémettez les styles sous ce nonce — le SDK n’émet actuellement aucun nonce par chargement ; si vous en avez besoin, ouvrez une issue dans kaleidr-sdk.

Déploiement report-only

La manière sûre d’adopter cette politique est :

  1. Définissez le bloc ci-dessus en Content-Security-Policy-Report-Only avec une report-uri que vous contrôlez pendant une semaine.
  2. Ajoutez les hôtes apparaissant dans les rapports de violation à la bonne directive.
  3. Passez le header à Content-Security-Policy lorsque les rapports deviennent silencieux.