Anonymisation des Urls

Modifié par jhurst le 2022/11/14 09:18

Ce document décrit comment s'authentifier automatiquement sans l'utilisation du paramètre pass dans les différents modules de DigDash Enterprise (tableaux de bords, pages de configuration).

Le principe est de demander, une fois authentifié, un jeton permettant lors de son utilisation de créer une nouvelle session basée sur celle demandée par la session courante.

Ce jeton permet de créer une session automatique sans avoir à spécifier le nom de l'utilisateur et son mot de passe.

Ce jeton est à usage unique, le même token ne peut être utilisé pour créer plus d'une session. Pour créer plusieurs sessions, plusieurs jetons sont nécessaires.

Voici la procédure :

  • Authentification classique via page de login ou passage de l'utilisateur et mot de passe.
  • Demande de jeton à l'API REST (newAuthToken).
  • Utilisation du jeton dans une url permettant de créer une session automatique sans les information d'authentification.

Exemple :

  1. Récupération du jeton par le biais d'un web service dont l'url est la suivante :

    ex : http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthToken
    Utilisation du paramètre method=newAuthToken permettant au retour de cette url de récupérer le nouveau jeton ainsi généré.

  2. Utilisation du jeton dans un tableau de bord :

    ex : http://localhost:8080/digdash_dashboard/index.html?user=admin&authToken=token
    Le paramètre authToken est le jeton renvoyé lors de l'étape 1.

Avancé :  Emprunt d'identité

La méthode newAuthToken de l'API renvoie un jeton pour la session courante et l'utilisateur courant. Il faut donc avoir une session de cet utilisateur pour pouvoir appeler cette méthode et utiliser son résultat dans une URL.

Dans certains cas c'est une contrainte et il est intéressant de pouvoir ouvrir une session pour un autre utilisateur (cible), à partir d'un utilisateur source. Il existe la méthode newAuthTokenAs qui prend un paramètre supplémentaire userId.

Contraintes pour pouvoir utiliser cette méthode :

  • Le système doit avoir la propriété PROP_NEWAUTHTOKENAS = true dans system.xml
  • l'utilisateur source doit avoir l'autorisation Admin > Permettre l'emprunt d'identité.

Une fois ces contraintes validées, voici la procédure :

  • Authentification classique de l'utilisateur source via page de login ou passage de l'utilisateur et mot de passe.
  • Demande de jeton pour l'utilisateur cible à l'API REST (newAuthTokenAs).
  • Utilisation du jeton dans une url permettant de créer une session automatique sans les information d'authentification de l'utilisateur cible

Exemple :

  1. Récupération du jeton par le biais d'un web service dont l'url est la suivante :

    ex : http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthTokenAs&userId=userCible
    Utilisation du paramètre method=newAuthTokenAs permettant au retour de cette url de récupérer le nouveau jeton ainsi généré.

  2. Utilisation du jeton dans un tableau de bord :

    ex : http://localhost:8080/digdash_dashboard/index.html?user=userCible&authToken=token
    Le paramètre authToken est le jeton renvoyé lors de l'étape 1.