Paramètres des URL pour l'intégration Web

Modifié par jhurst le 2022/04/28 16:42


Prérequis : Les propositions d'intégration d'objets DigDash (tableaux de bord, pages, flux, etc.) dans des iframe nécessitent de mettre en place ces balises iframe au sein de pages HTML, elles-mêmes distribuées par un serveur Web. 

Dans ce document, nous présentons des URLs fonctionnant dans le contexte suivant :

  • Nom du serveur: ddsrv
  • Port: 8080
  • Domaine DigDash : ddenterpriseapi
  • Domaine tableau de bord DigDash: digdash_dashboard

Tableau de bord

Vous pouvez intégrer une ou plusieurs pages de tableau de bord dans une iframe.

URL : http://ddsrv:8080/digdash_dashboard/index.html

Paramètres disponibles :

  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur
  • domain=<domainname> Nom du domaine DigDash Enterprise (Exemple : ddenterpriseapi)
  • server=<server URL> URL du domaine DigDash Enterprise (Exemple : http://localhost:8080)
  • hideBanner=<true|false> Cache (true) ou montre (false) la barre de titre
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeurVariable> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe V ci-dessous

Exemple : 

http://ddsrv:8080/digdash_dashboard/index.html?server=http://localhost:8080&domain=ddenterpriseapi&user=user1&pass=pass1&hideBanner=true&hideFilters=true&var=1

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls

Pages de tableaux de bord

Vous pouvez intégrer une page ou toutes les pages d’un tableau de bord d’un rôle ou d’un utilisateur dans une iframe.

URL : http://ddsrv:8080/digdash_dashboard/index.html?page=<user|role>[.<pagename>]

Si vous souhaitez afficher une page, spécifiez le nom de la page, sinon, l’URL affiche toutes les pages de l’utilisateur ou rôle.

Paramètres disponibles :

  • page=<user|role>[.<pagename>] Nom de la page préfixée par le rôle ou le user
  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur non authentifié
  • server=<server URL> URL du domaine DigDash Enterprise (Exemple : http://localhost:8080)
  • domain=<domainname> Nom du domaine DigDash Enterprise (Exemple : ddenterpriseapi)
  • hideBanner=<true|false> Cache (true) ou montre (false) la barre de titre
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeurVariable> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe V ci-dessous

Exemple : 

http://ddsrv:8080/digdash_dashboard/index.html?page=user1.page1&server=http://localhost:8080&domain=ddenterpriseapi&user=user1&pass=pass1&hideBanner=true&hideFilters=true&var=1

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls

Flux d’information

Vous pouvez intégrer un flux d’information (composant graphique) de votre portefeuille d’informations dans une iframe.

URL : http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=<flowid>

Vous pouvez facilement obtenir l’URL d’un flux d’information depuis la console d’administration. Pour cela, sélectionnez le flux, faites un clic droit et choisissez Copier l’URL du flux

Paramètres disponibles :

  • flowId=<flow> Identifiant du flux à afficher
  • user=<user> Utilisateur à authentifier
  • pass=<password> Mot de passe pour l’utilisateur
  • hideFilters=<true|false> Cache (true) ou montre (false) la barre de filtres
  • <nomVariable>=<valeur> Spécifie la valeur de la variable nomVariable
  • <filterselection> Voir le paragraphe V ci-dessous

Exemple : 

http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=2340fd0&user=user1&pass=pass1&hideFilters=true

Note : Vous pouvez aussi utiliser un mécanisme d'authentification server-side pour éviter les paramètres user/pass dans l'URL. Consulter le document Anonymisation des Urls

Filtres

Vous pouvez définir des filtres spécifiques sur des dimensions qui seront pris en compte lors de l’intégration des URLs dans vos iframes.

Pour cela, renseignez les paramètres supplémentaires suivants :

  • NomDimension=ValeurFiltre

Si la dimension contient une hiérarchie ou plus, vous pouvez sélectionnez la hiérarchie et le niveau souhaités en ajoutant :

  • H<DimensionName>=NomHierarchie
  • L<DimensionName>=NiveauHierarchie

Exemple : 

http://ddsrv:8080/ddenterpriseapi/viewflow?flowId=2340fd0&user=user1&pass=pass1&Geo=France&HGeo=Geography&LGeo=Country

Contraintes de sécurité

Certains navigateurs, par exemple Chrome à partir de sa version 80, peuvent refuser de transmettre des cookies provenant d'une page intégrée par une iframe, si cette iframe n'a pas le même domaine que la page l'incluant. Une erreur apparait alors dans la console du navigateur, à propos d'un attribute SameSite qui n'est pas défini.

La solution est de définir l'attribut SameSite=None sur le cookie. Cet attribut doit être défini par le conteneur de l'application (Tomcat), ou par le serveur HTTP qui sert la page. (ex. Apache httpd). Il y a de nombreux documents en ligne pour expliquer comment configurer cet attribut de cookie. Pour Tomcat : https://tomcat.apache.org/tomcat-9.0-doc/config/cookie-processor.html. Pour Apache httpd, l'utilisation du module mod_headers peut-être nécessaire.

Par contre, l'attribut SameSite ne peut pas être défini sur un cookie non sécurisé. Donc le cookie doit aussi avoir un attribut Secure pour permettre de définir SameSite=None. Et l'attribut Secure ne peut être défini que si la connexion est en HTTPS.

Donc, en conséquence, intégrer une page de tableaux de bord, ou une page viewflow, en tant qu'iframe, si l'iframe et la page l'incluant ont des domaines différents, nécessite d'utiliser une connexion HTTPS, et de configurer les cookies.

Le document Mozilla suivant explique cette contrainte : https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Set-Cookie/SameSite