Code source wiki de Anonymisation des Urls

Modifié par Aurelie Bertrand le 2025/03/03 15:27

Masquer les derniers auteurs
fperrier 11.2 1 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).
jhurst 1.1 2
fperrier 11.2 3 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**.
jhurst 1.1 4
fperrier 11.2 5 Ce jeton permet de créer une session automatique sans avoir à spécifier le nom de l'utilisateur et son mot de passe.
jhurst 1.1 6
fperrier 11.2 7 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.
jhurst 1.1 8
abertrand 14.1 9 (% class="box infomessage" %)
10 (((
abertrand 15.1 11 ℹ Le jeton est à usage unique mais n'a pas de durée de validité. Tant que la session initiale n'a pas expiré, le jeton est utilisable.
abertrand 14.1 12 )))
abertrand 13.1 13
jhurst 1.1 14 Voici la procédure :
15
16 * Authentification classique via page de login ou passage de l'utilisateur et mot de passe.
fperrier 12.1 17 * Demande de jeton à l'API REST (**newAuthToken**).
fperrier 11.2 18 * Utilisation du jeton dans une url permettant de créer une session automatique sans les information d'authentification.
jhurst 1.1 19
Aurelie Bertrand 16.1 20 (% class="box warningmessage" %)
21 (((
22 ❗Le mot de passe doit être correctement encodé pour que l'URL fonctionne.
23 )))
24
jhurst 1.1 25 Exemple :
26
fperrier 10.1 27 1. (((
fperrier 11.2 28 Récupération du jeton par le biais d'un web service dont l'url est la suivante :
29
jhurst 1.1 30 (% class="box" %)
31 (((
32 ex : [[http:~~/~~/localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthToken>>url:http://http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthToken]]
fperrier 11.2 33 Utilisation du paramètre method=**newAuthToken **permettant au retour de cette url de récupérer le nouveau jeton ainsi généré.
jhurst 1.1 34 )))
35 )))
fperrier 11.1 36 1. (((
fperrier 11.2 37 Utilisation du jeton dans un tableau de bord :
38
jhurst 1.1 39 (% class="box" %)
40 (((
fperrier 12.1 41 ex : [[http:~~/~~/localhost:8080/digdash_dashboard/index.html?user=admin&authToken=token>>http://localhost:8080/digdash_dashboard/index.html?user=admin&authToken=token]]
fperrier 11.2 42 Le paramètre **authToken **est le jeton renvoyé lors de l'étape 1.
jhurst 1.1 43 )))
44 )))
fperrier 11.2 45
46 = Avancé :  Emprunt d'identité =
47
fperrier 12.1 48 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.
49
50 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**.
51
52 Contraintes pour pouvoir utiliser cette méthode :
53
54 * Le système doit avoir la propriété **PROP_NEWAUTHTOKENAS **= true dans **system.xml**
55 * l'utilisateur source doit avoir l'autorisation **Admin > Permettre l'emprunt d'identité**.
56
57 Une fois ces contraintes validées, voici la procédure :
58
59 * Authentification classique de l'utilisateur source via page de login ou passage de l'utilisateur et mot de passe.
60 * Demande de jeton pour l'utilisateur cible à l'API REST (**newAuthTokenAs**).
61 * Utilisation du jeton dans une url permettant de créer une session automatique sans les information d'authentification de l'utilisateur cible
62
63 Exemple :
64
65 1. (((
66 Récupération du jeton par le biais d'un web service dont l'url est la suivante :
67
68 (% class="box" %)
69 (((
70 ex : [[http:~~/~~/localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthTokenAs&userId=userCible>>http://http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthTokenAs&userId=userCible]]
71 Utilisation du paramètre method=**newAuthTokenAs **permettant au retour de cette url de récupérer le nouveau jeton ainsi généré.
72 )))
73 )))
74 1. (((
75 Utilisation du jeton dans un tableau de bord :
76
77 (% class="box" %)
78 (((
79 ex : [[http:~~/~~/localhost:8080/digdash_dashboard/index.html?user=userCible&authToken=token>>http://localhost:8080/digdash_dashboard/index.html?user=userCible&authToken=token]]
80 Le paramètre **authToken **est le jeton renvoyé lors de l'étape 1.
81 )))
82 )))