Code source wiki de Anonymisation des Urls
Modifié par Aurelie Bertrand le 2025/05/15 16:23
Masquer les derniers auteurs
author | version | line-number | content |
---|---|---|---|
![]() |
40.1 | 1 | Ce document décrit comment s'authentifier automatiquement dans les différents modules de DigDash Enterprise (tableaux de bord, pages de configuration) sans utiliser le paramètre **pass**. |
![]() |
1.1 | 2 | |
![]() |
21.2 | 3 | (% class="wikigeneratedid" id="HAuthentificationviaunjetonAuthToken" %) |
![]() |
11.2 | 4 | 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**. |
![]() |
17.1 | 5 | Ce jeton permet de créer une session automatique sans avoir à spécifier le mot de passe de l'utilisateur. |
![]() |
11.2 | 6 | 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. |
![]() |
1.1 | 7 | |
![]() |
14.1 | 8 | (% class="box infomessage" %) |
9 | ((( | ||
![]() |
15.1 | 10 | ℹ 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. |
![]() |
14.1 | 11 | ))) |
![]() |
13.1 | 12 | |
![]() |
23.1 | 13 | = Effectuer la demande de jeton AuthToken = |
![]() |
21.2 | 14 | |
![]() |
23.1 | 15 | Il est possible de s'authentifier de 3 manières différentes pour effectuer la demande de jeton. |
16 | |||
![]() |
21.2 | 17 | * **Connecté avec l'utilisateur et le mot de passe : ** |
18 | La demande de jeton s'effectue par le biais d'un web service dont l'url est sous la forme suivante : | ||
![]() |
28.1 | 19 | [[http:~~/~~/localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthToken>>http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthToken]] |
![]() |
22.1 | 20 | |
21 | (% class="box warningmessage" %) | ||
22 | ((( | ||
23 | ❗Le mot de passe doit être correctement encodé pour que l'URL fonctionne. | ||
24 | ))) | ||
25 | |||
![]() |
42.1 | 26 | * **Via une autorisation basique :**((( |
![]() |
46.1 | 27 | Avec curl en utilisant l'option -u : le mot de passe vous sera demandé après exécution de la requête. |
![]() |
42.1 | 28 | |
29 | {{code}} | ||
30 | curl -u <user> http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthToken | ||
31 | {{/code}} | ||
32 | |||
![]() |
46.1 | 33 | En spécifiant le header soi-même : la requête a la forme suivante : |
![]() |
42.1 | 34 | |
35 | {{code}} | ||
36 | curl -H 'Authorization: Basic <base64(user:pass)>' http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthToken | ||
37 | {{/code}} | ||
38 | ))) | ||
39 | |||
![]() |
21.2 | 40 | * **Via un jeton JWT : **((( |
41 | La demande de jeton s'effectue via une requête. Le jeton JWT (JSON Web Token) est spécifié dans l'en-tête HTTP pour s'authentifier. | ||
![]() |
50.1 | 42 | Ce jeton JWT est généré via l'API REST DigDash sans utilisateur cible défini (tagertUser). Consultez le paragraphe [[Créer un jeton JWT>>doc:Digdash.API.DD_API.WebHome||anchor="JWT"]] pour plus de détails. |
![]() |
23.1 | 43 | La requête a la forme suivante (exemple avec une requête curl) : |
![]() |
22.1 | 44 | |
45 | {{code language="C"}} | ||
46 | curl -H "Authorization: Bearer <JWT>" "http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthToken" | ||
47 | {{/code}} | ||
48 | |||
![]() |
23.1 | 49 | dans laquelle, //**<JWT>**// est à remplacer par le jeton JWT obtenu précédemment. |
![]() |
21.2 | 50 | ))) |
51 | * ((( | ||
52 | **Via une clé API :** | ||
53 | La demande de clé API s'effectue via une requête. La clé API est spécifiée dans l'en-tête HTTP pour s'authentifier. | ||
![]() |
50.1 | 54 | Cette clé API est générée via l'API REST DigDash sans utilisateur cible défini (targetUser). Consultez le paragraphe [[Créer une clé API>>doc:Digdash.API.DD_API.WebHome||anchor="API"]] pour plus de détails. |
![]() |
23.1 | 55 | La requête a la forme suivante (exemple avec une requête curl) : |
![]() |
21.2 | 56 | |
![]() |
22.1 | 57 | {{code language="C"}} |
58 | curl -H "X-API-KEY: <apikey>" "http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthToken" | ||
59 | {{/code}} | ||
![]() |
23.1 | 60 | |
61 | dans laquelle, //**<apikey>**// est à remplacer par la clé API obtenue précédemment. | ||
![]() |
24.1 | 62 | ))) |
![]() |
23.1 | 63 | |
![]() |
24.1 | 64 | Le paramètre method=**newAuthToken **permet au retour de l'url ou de la requête de récupérer le nouveau jeton AuthToken ainsi généré. |
![]() |
23.1 | 65 | |
![]() |
24.1 | 66 | = Utiliser le jeton AuthToken dans une URL = |
![]() |
21.2 | 67 | |
![]() |
33.1 | 68 | Une fois le jeton AuthToken récupéré, vous pouvez l'utiliser dans une URL afin de créer une session automatique sans les informations d'authentification. |
![]() |
24.1 | 69 | |
70 | Par exemple, pour un tableau de bord, on l'utilisera sous la forme suivante : | ||
![]() |
28.1 | 71 | [[http:~~/~~/localhost:8080/digdash_dashboard/index.html?user=admin&authToken=token>>http://localhost:8080/digdash_dashboard/index.html?user=admin&authToken=token]] |
![]() |
27.1 | 72 | Le paramètre **authToken **est à renseigner avec le jeton récupéré lors de l'étape pécédente. |
![]() |
24.1 | 73 | |
![]() |
27.1 | 74 | = Avancé : Emprunt d'identité = |
![]() |
1.1 | 75 | |
![]() |
12.1 | 76 | 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. |
77 | |||
![]() |
17.2 | 78 | 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**. |
![]() |
12.1 | 79 | |
![]() |
20.1 | 80 | Les pré-requis suivants sont nécessaires pour pouvoir utiliser cette méthode : |
![]() |
12.1 | 81 | |
82 | * Le système doit avoir la propriété **PROP_NEWAUTHTOKENAS **= true dans **system.xml** | ||
![]() |
17.2 | 83 | * L'utilisateur source doit avoir l'autorisation **Admin > Permettre l'emprunt d'identité**. |
![]() |
12.1 | 84 | |
![]() |
31.1 | 85 | Une fois ces pré-requis remplis, procédez comme suit selon l'authentification utilisée : |
![]() |
12.1 | 86 | |
![]() |
31.1 | 87 | * **Connecté avec l'utilisateur et le mot de passe : ** |
88 | L'utilisateur cible doit être spécifié dans l'url lors de la demande de jeton sous la forme suivante : | ||
![]() |
45.1 | 89 | [[http:~~/~~/localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthTokenAs&userId=utilisateurCible>>http://http//localhost:8080/ddenterpriseapi/DDEnterpriseServlet?user=admin&pass=admin&method=newAuthTokenAs&userId=userCible]] |
![]() |
44.1 | 90 | |
91 | * **Via une autorisation basique :**((( | ||
![]() |
47.1 | 92 | Avec curl en utilisant l'option -u : le mot de passe vous sera demandé après exécution de la requête. |
![]() |
44.1 | 93 | |
94 | {{code}} | ||
![]() |
47.1 | 95 | curl -u <user> http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthTokenAs&userId=utilisateurCible |
96 | |||
![]() |
44.1 | 97 | {{/code}} |
98 | |||
![]() |
47.1 | 99 | En spécifiant le header soi-même : la requête a la forme suivante (exemple avec une requête curl) : |
![]() |
44.1 | 100 | |
![]() |
54.1 | 101 | {{code language="C"}} |
102 | curl -H "Authorization: Bearer <JWT>" "http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthTokenAs&userId=utilisateurCible" | ||
![]() |
47.1 | 103 | |
![]() |
44.1 | 104 | {{/code}} |
105 | ))) | ||
![]() |
31.1 | 106 | * **Via un jeton JWT :** |
![]() |
50.1 | 107 | Ce jeton JWT est généré via l'API REST DigDash sans utilisateur cible défini (tagertUser). Consultez le paragraphe [[Créer un jeton JWT>>doc:Digdash.API.DD_API.WebHome||anchor="JWT"]] pour plus de détails.((( |
![]() |
32.1 | 108 | La requête prend la forme suivante (exemple avec une requête curl) : |
109 | |||
![]() |
54.1 | 110 | {{code language="C"}} |
111 | curl -H "Authorization: Bearer <JWT>" "http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthTokenAs&userId=utilisateurCible" | ||
![]() |
32.1 | 112 | {{/code}} |
![]() |
52.1 | 113 | |
114 | dans laquelle, //**<JWT>**// est à remplacer par le jeton JWT obtenu précédemment. | ||
![]() |
32.1 | 115 | ))) |
![]() |
31.1 | 116 | * ((( |
117 | **Via une clé API :** | ||
![]() |
50.1 | 118 | Cette clé API est générée via l'API REST DigDash sans utilisateur cible défini (targetUser). Consultez le paragraphe [[Créer une clé API>>doc:Digdash.API.DD_API.WebHome||anchor="API"]] pour plus de détails. |
![]() |
33.1 | 119 | La requête prend la forme suivante (exemple avec une requête curl) : |
![]() |
31.1 | 120 | |
![]() |
33.1 | 121 | {{code language="C"}} |
![]() |
54.1 | 122 | curl -H "X-API-KEY: <apikey>" "http://localhost:8080/ddenterpriseapi/DDEnterpriseServlet?method=newAuthTokenAs&userId=utilisateurCible" |
123 | |||
![]() |
33.1 | 124 | {{/code}} |
![]() |
53.1 | 125 | |
126 | dans laquelle, //**<apikey>**// est à remplacer par la clé API obtenue précédemment. | ||
![]() |
17.2 | 127 | ))) |
128 | |||
![]() |
33.1 | 129 | Le paramètre method=**newAuthTokenAs **permet au retour de l'url ou de la requête de récupérer le nouveau jeton AuthToken ainsi généré. |
![]() |
18.2 | 130 | |
![]() |
33.1 | 131 | Vous pouvez alors utiliser le jeton dans une URL afin de créer une session automatique sans les informations d'authentification. |
![]() |
36.1 | 132 | Par exemple, pour un tableau de bord, sous la forme suivante : |
![]() |
34.1 | 133 | [[http:~~/~~/localhost:8080/digdash_dashboard/index.html?user=utilisateurCible&authToken=token>>http://localhost:8080/digdash_dashboard/index.html?user=userCible&authToken=token]] |
![]() |
33.1 | 134 | Le paramètre **authToken **est à renseigner avec le jeton récupéré lors de l'étape pécédente. |