L’objectif de ce wiki est de présenter une méthode d’authentification transparente, permettant à un utilisateur navigant sur l’interface SalesForce d’accéder à des informations qui lui sont accessibles sur Qlik Sense (graphiques, données…), et ce sans qu’il ait besoin de se connecter.
Les méthodes d'authentification dans Qlik Sense
Plusieurs moyens sont mis à votre disposition pour connecter un utilisateur à Qlik Sense, outre la méthode classique de page de connexion.
Ces méthodes sont listées et expliquées dans cet article : L'authentification dans Qlik Sense, quelles possibilités ?
Ci-dessous, un schéma présentant les flux et leurs directions lors de l’authentification d’un utilisateur via la création d’un ticket :
L’authentification Qlik Sense par tickets : configuration et installation
Pour effectuer cette connexion par ticket et authentifier l’utilisateur, il faut d’une part configurer le proxy virtuel dédié à l’authentification dans le serveur Qlik Sense, et d’autre part un serveur NodeJS équipé d’Express, qui met à disposition la route à contacter pour obtenir le ticket.
Paramétrage du proxy virtuel dans Qlik Sense
Du côté du serveur Qlik Sense, il faut donc configurer un proxy virtuel. Ce proxy virtuel sera dédié à l’authentification par tickets, et doit être paramétré comme tel.
Dans la partie Authentication, entrer ces paramètres :
Dans la partie Advanced, configurer les champs comme suit :
Ne pas oublier d’ajouter les hôtes souhaités (serveur Qlik Sense, machine hébergeant le serveur NodeJS…) à la whitelist du proxy.
Dans le champ Additional response headers, ajouter “Access-Control-Allow-Origin:” suivi de l’url du domaine sur lequel se situent les serveurs Qlik Sense et NodeJS (précédé du protocole).
Le proxy virtuel tout juste créé doit également être relié au proxy central du serveur Qlik Sense.
Votre proxy virtuel est ainsi opérationnel !
Configuration et lancement du serveur NodeJS
Au sein du serveur, nous utiliserons la librairie npm qlik-auth pour préparer la requête nécessaire à l’obtention du ticket. A noter que la librairie a été légèrement modifiée pour correspondre d’une meilleure manière à nos besoins. Nous installerons également la librairie express pour créer une API, et plus particulièrement une route nommée “/connector” accessible via la méthode GET.
Des configurations seront nécessaires au sein du serveur pour assurer son bon fonctionnement :
- Fournir l’adresse (domaine + adresse IP) du serveur Qlik Sense
- Indiquer le nom du proxy virtuel
- Ajouter les fichiers de certificat au dossier du serveur NodeJS
Les fichiers de certificat Qlik Sense vont permettre au serveur de demander un ticket en fournissant uniquement le login de l’utilisateur, sans besoin d’indiquer son mot de passe. En effet, le serveur reconnaîtra le certificat indiqué par la requête comme étant le sien et autorisera ainsi l’accès aux ressources demandées.
Pour les obtenir, il faut se rendre dans l’interface de la QMC > Exported Certificates, puis exporter selon les besoins en suivant les indications. Nous obtiendrons ainsi soit un fichier client.pfx (format Windows), soit deux fichiers client.pem et client_key.pem (format indépendant).
Fonctionnement de l'outil Qlik Sense
L'url à appeler pour contacter le serveur et donc se connecter automatiquement est la suivante :
Avec :
- hôte : l’hôte au sein duquel est positionné le serveur NodeJS
- port : le port d’utilisation du serveur NodeJS (par défaut le port 5000)
- userId : l’ID utilisateur Qlik Sense
- redirectUri : l’adresse web vers laquelle nous voulons rediriger l’utilisateur authentifié
Voici, pour exemple, une URL complète type, qui redirige vers un graphique xxxxxx appartenant à l’application XXXXXX de Qlik Sense :
Cette manipulation est aussi possible avec d’autres liens, comme celui dirigeant vers le hub :
Vous souhaitez aller plus loin et vous former à Qlik Sense ? Nos consultants experts certifiés Qlik sont aussi formateurs. Découvrez notre formation Qlik Sense.
function manageBackwardButtonDisplaying() { var referrerHostname = !!document.referrer ? (new URL(document.referrer)).hostname : null; var hostname = (new URL(window.location.href)).hostname; var referrerIsNotNext = (hostname !== referrerHostname) var backwardButton = document.getElementById("backward_button"); if (!!backwardButton && !!referrerIsNotNext) { backwardButton.style.display = "none"; } } window.onload = manageBackwardButtonDisplaying;
Vous recherchez des consultants certifiés Qlik ? Besoin d'être accompagné dans vos projets Qlik ? Next Decision est là ! Contactez-nous !