Wiki source code of Configuration de l'intégration multi-domaines
Version 1.1 by Aurelie Bertrand on 2026/04/13 16:58
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | Lorsqu'un dashboard DigDash est intégré dans une page web hébergée sur un serveur différent, le navigateur bloque les requêtes par mesure de sécurité. | ||
| 4 | |||
| 5 | Afin d'autoriser l'affichage de portlets ou de tableaux de bord sur un domaine tiers, il ets nécessaire d'effectuer les configuration suivantes. | ||
| 6 | |||
| 7 | == Configuration du Serveur Web (Nginx) == | ||
| 8 | |||
| 9 | Cette étape permet au navigateur d'accepter les réponses provenant du serveur DigDash distant. | ||
| 10 | |||
| 11 | === Définition des domaines autorisés === | ||
| 12 | |||
| 13 | Dans votre configuration Nginx, utilisez un bloc map pour lister les origines de confiance. | ||
| 14 | |||
| 15 | {{code language="nginx"}} | ||
| 16 | # À placer dans le bloc 'http' ou avant le bloc 'server' | ||
| 17 | map $http_origin $cors_origin { | ||
| 18 | default ""; | ||
| 19 | "https://mywebsite.com" $http_origin; | ||
| 20 | "https://qa05.digdash.com" $http_origin; | ||
| 21 | } | ||
| 22 | {{/code}} | ||
| 23 | |||
| 24 | |||
| 25 | # À placer dans le bloc 'http' ou avant le bloc 'server' map $http_origin $cors_origin { default ""; "https:~/~/mywebsite.com" $http_origin; "https:~/~/qa05.digdash.com" $http_origin; } | ||
| 26 | |||
| 27 | === B. Ajout des Headers de sécurité === | ||
| 28 | |||
| 29 | Dans le bloc server {} de votre site, ajoutez les instructions suivantes : | ||
| 30 | |||
| 31 | Nginx | ||
| 32 | |||
| 33 | |||
| 34 | # 1. Autorisation de l'origine dynamique add_header Access-Control-Allow-Origin $cors_origin always; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS" always; add_header Access-Control-Allow-Headers "Content-Type, Authorization, x-gwt-module-base, x-gwt-permutation, x-requested-with" always; add_header Access-Control-Allow-Credentials "true" always; # 2. Gestion des cookies en mode embarqué location / { proxy_cookie_path / "/; Secure; SameSite=None;"; } | ||
| 35 | |||
| 36 | >**Note :** Le paramètre SameSite=None est indispensable pour que les sessions persistent dans une iframe. Le site doit impérativement être en **HTTPS**. | ||
| 37 | |||
| 38 | ---- | ||
| 39 | |||
| 40 | == 4. Configuration applicative (DigDash) == | ||
| 41 | |||
| 42 | Une fois le réseau configuré, il faut autoriser les domaines au niveau de la protection anti-CSRF de DigDash. | ||
| 43 | |||
| 44 | 1. Éditez le fichier : /etc/digdash/digdash.properties | ||
| 45 | 1. ((( | ||
| 46 | Modifiez ou ajoutez la propriété suivante : | ||
| 47 | |||
| 48 | Properties | ||
| 49 | |||
| 50 | # Liste des domaines séparés par une virgule digdash_dashboard.PROP_CSRF_TARGET_ORIGIN=https:~/~/mywebsite.com,https:~/~/qa05.digdash.com | ||
| 51 | |||
| 52 | //Alternative (non recommandé en production) ~:// digdash_dashboard.PROP_CSRF_CHECK=false | ||
| 53 | |||
| 54 | |||
| 55 | ))) | ||
| 56 | |||
| 57 | ---- | ||
| 58 | |||
| 59 | == 5. Validation de la configuration == | ||
| 60 | |||
| 61 | 1. Redémarrez Nginx : sudo nginx -s reload | ||
| 62 | 1. Redémarrez le service DigDash (Tomcat). | ||
| 63 | 1. **Test :** Ouvrez la page hôte, videz le cache du navigateur et vérifiez dans l'onglet **Réseau (Network)** des outils de développement que les requêtes vers le serveur distant affichent un statut 200 OK avec les headers Access-Control-Allow-Origin présents. | ||
| 64 | |||
| 65 | ---- | ||
| 66 | |||
| 67 | === Résumé des flux de communication === | ||
| 68 | |||
| 69 | >**Attention :** Si vous ajoutez un nouveau site client à l'avenir, n'oubliez pas de le déclarer à la fois dans le map Nginx **ET** dans le fichier digdash.properties. |