Changes for page DigDash API REST
Last modified by Aurelie Bertrand on 2025/05/15 16:29
From version 92.1
edited by Aurelie Bertrand
on 2025/04/29 15:17
on 2025/04/29 15:17
Change comment:
There is no comment for this version
To version 58.1
edited by Aurelie Bertrand
on 2024/09/04 11:20
on 2024/09/04 11:20
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 8 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -DigDash API REST1 +DigDash API - Content
-
... ... @@ -11,16 +11,12 @@ 11 11 Swagger UI permet de visualiser et d'interagir avec les ressources des API. 12 12 Cette interface fournit également une documentation visuelle facilitant leur utilisation. 13 13 14 -Pour ouvrir Swagger UI, vous pouvez : 15 - 16 -* cliquer sur le lien **API** présent en bas de la page d'accueil 17 - 18 -* utiliser le lien suivant :((( 14 +Pour ouvrir Swagger UI, utilisez le lien suivant : 19 19 [[http:~~/~~/~[serveur~]:~[port~]/~[domaine~]/staticwebcontent/swagger/>>url:http://[serveur]:[port]/[domain]/updateuser]] 20 20 dans lequel vous remplacez [serveur], [port] et [domaine] par vos informations. 17 + 21 21 Par exemple: 22 22 [[http:~~/~~/localhost:8080/ddenterpriseapi/staticwebcontent/swagger/>>http://localhost:8080//ddenterpriseapi/staticwebcontent/swagger/]] 23 -))) 24 24 25 25 Vous accéderez ainsi à l'interface avec les ressources des API disponibles, classées par type. 26 26 ... ... @@ -30,7 +30,7 @@ 30 30 ))) 31 31 32 32 (% class="wikigeneratedid" %) 33 -[[image:D igDash_API.png||alt="Interface Swagger" height="770" width="1043"]]29 +[[image:DD_API.png]] 34 34 35 35 = S'authentifier{{id name="Auth"/}} = 36 36 ... ... @@ -47,11 +47,8 @@ 47 47 * ((( 48 48 **BearerAuth** : La méthode Bearer Authentification (authentification du porteur) qui utilise des jetons de sécurité appelés jetons de porteur. 49 49 ))) 50 -* ((( 51 -**ApiKeyAuth** : La méthode Api Key Authentification qui permet de s'identifier avec une clé API. 52 -))) 53 53 54 -La méthode BasicAuth sera utilisée pour la première authentification. Vous pourrez alors générer un jeton de sécurité ou uneclé API et utiliser l'unedesdeuxautres méthodes.47 +La méthode BasicAuth sera utilisée pour la première authentification. Vous pourrez alors générer un jeton de sécurité et utiliser la seconde méthode d'authentification. 55 55 56 56 (% class="box warningmessage" %) 57 57 ((( ... ... @@ -68,16 +68,11 @@ 68 68 1. Entrez votre nom d'utilisateur et mot de passe Digdash. 69 69 1. Cliquez sur le bouton **Authorize** puis, une fois l'authentification effectuée, sur **Close**. 70 70 ➡ Le cadenas est à présent fermé, signifiant que vous êtes autorisé. 71 -Vous pouvez à présent créer un jeton JWT ou un clé API pour vous connecter. 72 72 73 -== S'authentifiervia BearerAuth==65 +== Créer le jeton de sécurité == 74 74 75 - Une foisconnectévia BasicAuth,vous pouvezgénérer unjeton de sécuritépourvous identifier viala méthodeBearerAuth.67 +Nous allons créer ici le jeton de sécurité Json Web Token (JWT) : 76 76 77 -=== Créer un jeton de sécurité === 78 - 79 -Nous allons créer ici un jeton de sécurité Json Web Token (JWT) : 80 - 81 81 1. Allez dans la section **Authentication**. 82 82 1. Cliquez pour déplier **POST ddenterpriseapi/api/v1/auth/jwt.** 83 83 1. Avant de commencer, vous pouvez visualiser un exemple de requête et en passant sur l'onglet **Schema**, une description des différents éléments. ... ... @@ -87,26 +87,24 @@ 87 87 1*. **expires** : (Optionnel mais recommandé) Indiquez la période de validité du JWT spécifiée sous la forme d'une période de temps au format ISO 8601 (c'est-à-dire PT5M pour 5 minutes). Pour plus d'informations, consultez [[https:~~/~~/en.wikipedia.org/wiki/ISO_8601#Durations>>https://en.wikipedia.org/wiki/ISO_8601#Durations]]. 88 88 1*. **permissions **: Définissez les droits pour chaque type d'API : "none" pour aucun droit, "r" pour lecture seule, "rw" pour lecture-écriture. 89 89 Par exemple : 90 -[[image: DigDash_API_token_creation_FR.png||alt="Exemple authentification"]]78 +[[image:Requête_jwt.png||alt="Requête JWT"]] 91 91 92 92 (% class="box warningmessage" %) 93 93 ((( 94 -❗Une vérification sera effectuée sur les autorisations de l'uti lisateur dans Digdash (ACLs) en plus des droits du jetons.82 +❗Une vérification sera effectuée sur les autorisations de l'utiisateur dans Digdash (ACLs) en plus des droits du jetons. 95 95 ))) 96 96 97 97 (% start="5" %) 98 98 1. Cliquez sur le bouton **Execute **pour générer le jeton (JWT). 99 99 ➡ La réponse s'affiche dans la section **Server response** en-dessous. 100 -[[image: DigDash_API_token_creation_response_FR.png||alt="Réponseserveur"]]88 +[[image:Réponse_requête_JWT.png||alt="Réponse requête JWT"]] 101 101 1. Copiez le jeton JWT. 102 - 103 103 104 -(% class="wikigeneratedid" id="HSignaturedujetondesE9curitE9" %) 105 -**Signature du jeton de sécurité** 91 +=== Signature du jeton de sécurité === 106 106 107 -Une clé privée utilisée pour signer le JWT est généréepardéfaut.Cette clé est temporaireet est régénérée à chaque redémarrage duserveur.93 +Une clé privée utilisée pour signer le JWT est codée en dur par défaut. 108 108 109 -Pour éviterce problème etaméliorerlasécurité, il est vivement recommandé d'utiliser votre propre clé privée pour la signature des jetons JWT à l'aide des variables d'environnement suivantes :95 +Pour des raisons de sécurité, il est vivement recommandé d'utiliser votre propre clé privée pour la signature des jetons JWT à l'aide des variables d'environnement suivantes : 110 110 111 111 * **DD_JWT_SECRETKEY_PATH**: cette variable permet de définir le chemin vers une clé privée RSA. 112 112 * **DD_JWT_SECRETKEY**: cette variable permet de définir un mot de passe personnalisé. ... ... @@ -116,7 +116,7 @@ 116 116 La clé privée RSA peut être générée à l'aide de la commande suivante (nécessite l'outil openssl) : 117 117 118 118 {{code language="shell"}} 119 -openssl genrsa -out /path/to/privatekey.pem 2048 105 +openssl -genrsa -out /path/to/privatekey.pem 2048 120 120 {{/code}} 121 121 122 122 La clé publique RSA peut être générée à partir de la clé privée à l'aide de la commande suivante (optionnel): ... ... @@ -125,60 +125,17 @@ 125 125 openssl rsa -in /path/to/privatekey.pem -pubout -out /path/to/publickey.crt 126 126 {{/code}} 127 127 128 -== =S'authentifier ===114 +== S'authentifier via BearerAuth == 129 129 130 -Une fois le jeton de sécurité généré, vous pouvez vous authentifier avec cette méthode : 116 +(% class="wikigeneratedid" id="HUnefoislejetondesE9curitE9gE9nE9rE92CvouspouvezvousauthentifieraveccettemE9thode:" %) 117 +(% style="font-size:14px" %)Une fois le jeton de sécurité généré, vous pouvez vous authentifier avec cette méthode : 131 131 132 -1. Cliquez sur le bouton **Authorize**. 133 -1. Dans la section **BasicAuth**, déconnectez-vous en cliquant sur le bouton **Logout**. 134 -1. Dans la section **BearerAuth**, collez le jeton JWT dans le champ **Value**. 135 -1. Cliquez sur **Authorize**. 136 - 137 -== S'authentifier via ApiKeyAuth == 138 - 139 - 140 -Une fois connecté via BasicAuth, vous pouvez générer un jeton de sécurité pour vous identifier via la méthode BearerAuth. 141 - 142 -=== Créer une clé API === 143 - 144 -Nous allons créer ici une clé API : 145 - 146 -1. Allez dans la section **Authentication**. 147 -1. Cliquez pour déplier **POST ddenterpriseapi/api/v1/auth/apikeys** 148 -1. Avant de commencer, vous pouvez visualiser un exemple de requête et en passant sur l'onglet **Schema**, une description des différents éléments. 149 -1. Cliquez sur **Try it out **en haut à droit afin de définir votre requête. Celle-ci comprend les éléments suivants : 150 -1*. **targetUser** : (Optionnel) Indiquez le nom de l'utilisateur à emprunter. Cela ne fonctionne que si l'utilisateur utilisé pour créer la clé API dispose de l'autorisation (ACL) **Admin > Autoriser l'emprunt d'identité**. 151 -S'il n'est pas renseigné, l'utilisateur utilisé par défaut est celui connecté, ce qui sera généralement le cas. 152 -1*. **expires** : (Optionnel) Indiquez la période de validité la clé API spécifiée sous la forme d'une période de temps au format ISO 8601 (c'est-à-dire PT5M pour 5 minutes). Pour plus d'informations, consultez [[https:~~/~~/en.wikipedia.org/wiki/ISO_8601#Durations>>https://en.wikipedia.org/wiki/ISO_8601#Durations]]. 153 -1*. **permissions **: Définissez les droits pour chaque type d'API : "none" pour aucun droit, "r" pour lecture seule, "rw" pour lecture-écriture. 154 -Par exemple : 155 -[[image:1745928168043-553.png]] 156 - 157 -(% class="box warningmessage" %) 158 -((( 159 -❗Une vérification sera effectuée sur les autorisations de l'utilisateur dans Digdash (ACLs) en plus des droits du jetons. 160 -))) 161 - 162 -(% start="5" %) 163 -1. Cliquez sur le bouton **Execute **pour générer la clé API. 164 -➡ La réponse s'affiche dans la section **Server response** en-dessous. 165 -[[image:1745928288556-250.png||alt="Réponse serveur"]] 166 -1. Copiez la clé API. 167 - 168 -(% class="wikigeneratedid" %) 169 -La clé API est stockée côté serveur dans un fichier csv //apikeys.csv, //situé par défaut dans le répertoire //appdata/EnterpriseServer/ddenterpriseapi/config. //Vous pouvez modifier le répertoire, ou spécifier les répertoires dans le cas de plusieurs domaines, dans le fichier //digdash.properties// en les ajoutant sous la forme suivante //: ddenterprise.api_keys_path=/chemin/vers/fichier.csv.// 170 -La clé est hashée et ne peut donc être récupérée. 171 - 172 -=== S'authentifier === 173 - 174 -Une fois la clé API générée, vous pouvez vous authentifier avec cette méthode : 175 - 176 176 1. Cliquez sur le bouton **Authorize**. 177 177 1. Dans la section **BasicAuth**, déconnectez-vous en cliquant sur le bouton **Logout**. 178 -1. Dans la section ** ApiKeyAuth**, collez lacléAPIdans le champ Value.121 +1. Dans la section **BearerAuth**, collez le jeton JWT dans le champ **Value**. 179 179 1. Cliquez sur **Authorize**. 180 180 181 -= Ressources API disponibles {{idname="ressources"/}} =124 += Ressources API disponibles = 182 182 183 183 == Liste des ressources == 184 184 ... ... @@ -185,12 +185,10 @@ 185 185 Les ressources disponibles sont classées par type : 186 186 187 187 * **Authentification **: pour la création des jetons de sécurité (JWT) 188 -* **User Management** : pour la gestion des utilisateurs et des éléments liés : profils, rôles, groupes d'autorisations, groupes d'autosations des rôles, etc. 189 -* **Session Management **: pour l'obtention de la liste des sessions, la supression de sessions. 131 +* **User Management** : pour la gestion des utilisateurs et des éléments liés : profils, rôles, groupes d'autorisations, etc. 190 190 * **System** : pour les informations système, service d'audit et ordonnanceur. 191 191 * **License Management** : pour la gestion des licences : activation, utilisateurs dans la licence, etc. 192 192 * **Event Management** : pour l'ajout d'évènements avec fireEvent. 193 -* **Connections **: pour la gestion des connexions aux bases de donnnées : liste, création, remplacement, supression. 194 194 195 195 (% class="box infomessage" %) 196 196 ((( ... ... @@ -209,11 +209,6 @@ 209 209 210 210 == Envoi de requêtes == 211 211 212 -(% class="box warningmessage" %) 213 -((( 214 -❗Pour rappel, une vérification est effectuée sur les autorisations de l'utilisateur dans Digdash (ACLs) en plus des droits du jetons. 215 -))) 216 - 217 217 (% style="line-height:1.7142857142857142; background-color:#ffffff; margin-bottom:15px; padding:3.75pt 0pt 0pt 0pt" %) 218 218 (% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)Lorsque vous y êtes autorisé, vous pouvez effectuer des requêtes : 219 219 ... ... @@ -225,6 +225,7 @@ 225 225 ➡ (% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)La requête est exécutée et la réponse s'affiche. 226 226 Un en-tête d'autorisation du porteur est automatiquement utilisé pour vos demandes. 227 227 164 + 228 228 (% id="cke_bm_11947S" style="display:none" %) (%%)Swagger propose également des lignes de commande curl lors de l'exécution des requêtes afin d'aider à tester ou coder un outil en dehors du navigateur (dans un script par exemple). 229 229 À noter qu'il faut spécifier, que soit pour curl ou un autre outil, les entêtes HTTP "Accept" (format du contenu à récupérer) et "Content-Type" (format du contenu envoyé) pour que les requêtes fonctionnent correctement. Ces deux entêtes peuvent prendre les valeurs "application/json" pour du json ou "application/xml" pour du xml. 230 230 [[image:1725441504464-493.png]] ... ... @@ -238,10 +238,6 @@ 238 238 |(% style="width:173px" %)id (obligatoire)|(% style="width:608px" %)Spécifiez le nom de l'utilisateur, rôle.. selon l'API à utiliser pour l'opération. 239 239 |(% style="width:173px" %)resolveProfiles|(% style="width:608px" %)Si défini à //true//, si l'utilisateur a un profil, ce sont les informations du profil qui seront affichées. 240 240 Par exemple, si l'utilisateur a des rôles issus d'un profil, ce sont les rôles du profil qui seront affichés et non pas les rôles propres à l'utilisateur. 241 -|(% style="width:173px" %) |(% style="width:608px" %) 242 -|(% style="width:173px" %) |(% style="width:608px" %) 243 -|(% style="width:173px" %) |(% style="width:608px" %) 244 -|(% style="width:173px" %) |(% style="width:608px" %) 245 245 |(% colspan="2" style="background-color:grey; text-align:center; width:782px" %)(% style="color:#ffffff" %)**License management** 246 246 |(% style="width:173px" %)pattern|(% style="width:608px" %)Vous pouvez spécifier une expression régulière permettant de filtrer les utilisateurs à récupérer. 247 247 Par exemple, le pattern test.* va récupérer tous les utilisateurs dont le nom commence par test. ... ... @@ -249,33 +249,10 @@ 249 249 = Expiration de l'authentification = 250 250 251 251 (% style="line-height:1.7142857142857142; background-color:#ffffff" %) 252 -(% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)Lorsque le jeton de sécurité (JWT) ou la clé APIexpire, vous recevez une réponse (% style="color:#182027; font-family:~"Roboto Mono~",monospace; font-size:10pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)401:(%%) "Unauthorized".185 +(% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)Lorsque le jeton de sécurité (JWT) expire, vous recevez une réponse (% style="color:#182027; font-family:~"Roboto Mono~",monospace; font-size:10pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)401:(%%) "Unauthorized". 253 253 (% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)L'en-tête d'autorisation du porteur est toujours présent pour vos demandes, mais le jeton a expiré. Lorsque cela se produit, vous devez vous déconnecter de (%%)BearerAuth** **(% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)et générer un nouveau jeton d'accès. 254 254 255 255 1. (% style="color:#182027; font-family:Arial,sans-serif; font-size:10.5pt; font-style:normal; font-variant:normal; font-weight:400; text-decoration:none; white-space:pre-wrap" %)Cliquez sur le bouton **Authorize** pour ouvrir la fenêtre **Available authorizations**. 256 -1. Cliquez sur le bouton **Logout** en dessous de** BearerAuth ou **ApiKeyAuth**.189 +1. Cliquez sur le bouton **Logout** en dessous de** BearerAuth**. 257 257 1. Cliquez sur** Close** pour **Fermer**. 258 -1. Générez un nouveau jeton d'accès ou une nouvelle clé API comme décrit dans le paragraphe [[S'authentifier>>doc:||anchor="Auth"]]. 259 - 260 -= Invalider un jeton JWT ou une clé API = 261 - 262 -== Invalider un jeton JWT == 263 - 264 -Pour un jeton JWT, l'invalidation se fait de manière globale seulement en changeant la clé privée utilisée pour signer et la clé publique associée utilisée pour valider les signatures. 265 - 266 -== Invalider une clé API == 267 - 268 -Pour une clé API, l'invalidation se fait de manière individuelle et globale. 269 - 270 -Pour invalider une ou plusieurs clés : 271 - 272 -(% start="1" %) 273 -1. Vous pouvez tout d'abord récupérer la liste des clés API ave leur identifiant en utilisant **GET /api/v1/auth/apikeys**. Vous obtenez la liste sous la forme suivante : 274 -[[image:1745932166616-318.png||alt="Liste clés API"]] 275 - 276 -1. Utilisez ensuite **DELETE /api/v1/auth/apikeys **: entrez l'identifiant de la clé API à invalider ou, dans le cas de plusieurs clés, les identifiants séparés par des virgules. 277 - 278 -Pour invalider toutes les clés API, supprimez toutes les clés comme ci-dessus ou supprimer le fichier csv //apikeys.csv //contenant les clés avec le serveur éteint. 279 - 280 - 281 - 191 +1. Générez un nouveau jeton d'accès comme décrit dans le paragraphe [[S'authentifier>>doc:||anchor="Auth"]].
- 1745927162186-776.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -8.7 KB - Content
- 1745928144436-696.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -8.4 KB - Content
- 1745928168043-553.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -8.1 KB - Content
- 1745928288556-250.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -43.6 KB - Content
- 1745932166616-318.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -44.5 KB - Content
- DigDash_API.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -86.5 KB - Content
- DigDash_API_token_creation_FR.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -13.6 KB - Content
- DigDash_API_token_creation_response_FR.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -xwiki:XWiki.aureliebertranddigdashbiz - Size
-
... ... @@ -1,1 +1,0 @@ 1 -58.4 KB - Content