Configuration des analyses DAST avec des définitions OpenAPI en utilisant les API REST
Aperçu
Cette section explique comment utiliser les API REST pour configurer les analyses Dynamic Application Security Testing (DAST) à l'aide de définitions OpenAPI.
Cette méthode prend en charge les définitions OpenAPI basées sur des fichiers (JSON, YAML, YML) et sur des URL, et ajoute un nouveau support pour configurer l'autorisation et des paramètres supplémentaires pour vos analyses d'API.
- Étape 1 : Utilisez POST /jobs/{jobId}/dastconfig/openapi/specification/process pour télécharger un fichier OpenAPI ou traiter une URL OpenAPI. Cette API extrait et retourne le chemin du fichier ainsi qu'une liste des paramètres disponibles à partir de la définition.
- Étape 2 : Utilisez POST /jobs/{jobId}/dastconfig/openapi/configure pour appliquer la configuration. Vous transmettez l'emplacement du fichier/URL avec le
baseUrlet toutes valeurs d'autorisation ou de paramètres optionnelles.
- Vous ne pouvez utiliser ces API que pour les tâches DASTConfig. Vous ne pouvez pas les utiliser avec les tâches Content-Scan.
- Si une tâche DASTConfig possède déjà une configuration OpenAPI, l'utilisation de l'API .../configure remplace la configuration existante.
Points de terminaison d'API pour la configuration basée sur OpenAPI
- POST /jobs/{jobId}/dastconfig/openapi/specification/process – Télécharge un fichier de description OpenAPI ou traite une URL pour une utilisation ultérieure dans la configuration et la récupération de paramètres.
- POST /jobs/{jobId}/dastconfig/openapi/configure – Crée ou met à jour la configuration DAST en utilisant une définition OpenAPI.
Prérequis
- Vous avez besoin d'une tâche DASTConfig existante. Nous recommandons d'utiliser le modèle 'Analyse régulière' pour éviter les problèmes de performance. Vous pouvez créer une tâche DASTConfig en utilisant l'une des API suivantes :
- POST/jobs/{templateId}/dastconfig/createjob
- POST/jobs/createjobBasedOnTemplateFile
- POST/jobs
- Vous avez besoin du
jobIdde la tâche DASTConfig. Vous pouvez l'obtenir en utilisant le point de terminaison APIGET /folders/{folderId}/jobs. - Vous avez besoin d'un
asc_xsrf_tokenvalide pour l'authentification des requêtes API. Vous pouvez l'obtenir depuis le point de terminaison APIPOST /login. Vous devez envoyer ce jeton en tant qu'en-tête de requête.
Référence API : POST /jobs/{jobId}/dastconfig/openapi/specification/process
Objectif : Utilisez cette API pour télécharger un fichier de description OpenAPI ou une URL OpenAPI, que vous pouvez ensuite référencer avec l'API .../configure. Cette API extrait également et retourne une liste de paramètres supplémentaires disponibles dans le fichier téléchargé ou depuis une URL fournie.
Méthode HTTPS et point de terminaison : POST /jobs/{jobId}/dastconfig/openapi/specification/process
Paramètres de chemin :
-
jobId(Entier, Requis) : L'identifiant unique de la tâche DASTConfig.
Paramètres de requête (multipart/form-data) :
-
openApiDescriptionFile(Fichier, Optionnel) : Le fichier de spécification OpenAPI au format.json,.yaml, ou.yml. -
openApiUrl(Chaîne, Optionnel) : Une URL publiquement accessible pointant vers un document OpenAPI au format.json,.yaml, ou.yml.
- Pour la configuration OpenAPI basée sur fichier, vous devez utiliser cette API pour télécharger le fichier avant d'appeler .../configure.
- Pour la configuration basée sur URL, l'utilisation de cette API est facultative. Vous pouvez l'utiliser pour prévisualiser et récupérer les paramètres disponibles depuis l'URL avant la configuration.
Réponse de succès (200 OK) :
- L'API retourne un
200 OKen cas de succès, avec le chemin du fichier (si téléchargé) ou l'URL (si fournie), et les paramètres extraits de la spécification OpenAPI.
Classe de réponse (modèle) :
OpenApiProcessResponse {
openApiFileLocation (string) : L'emplacement (URL ou chemin) du fichier OpenAPI généré,
parameters (array[OpenApiAdditionalParameters], optional) : Une liste de paramètres d'API extraits de la spécification OpenAPI
}
OpenApiAdditionalParameters {
path (string, optional):
Le chemin de le point de terminaison d'API (par ex., /login, /account/{accountNo}),
name (string, optional):
Le nom du paramètre (par ex., username, password, accountNo),
location (string, optional):
L'emplacement du paramètre (par ex., body, path, query)
}
Voir Messages de réponse pour les codes d'erreur.
Référence API : POST /jobs/{jobId}/dastconfig/openapi/configure
Objectif : Utilisez cette API pour configurer une tâche DAST pour OpenAPI. Vous ne pouvez pas ajouter cette configuration à une tâche Content-Scan. Si une configuration existante est présente, cet appel d'API la remplace.
Méthode HTTPS et point de terminaison: POST /jobs/{jobId}/dastconfig/openapi/configure
Paramètres de chemin :
-
jobId(Integer, Required) : Le paramètre de chemin pour la tâche DASTConfig à laquelle vous appliquez la configuration.
Paramètres du corps de requête (JSON) :
-
openApiFileLocation(String, Required) : Fournissez soit un URI accessible publiquement pointant vers un document OpenAPI standardisé (.json,.yaml,.yml), soit le chemin de fichier retourné par l'API .../openapi/specification/process pour la configuration par fichier. -
baseUrl(String, Required) : Spécifiez l'URL racine qui définit le préfixe de chemin commun pour tous les points de terminaison API dans la description OpenAPI. -
additionalDomains(String, Optional) : Spécifiez d'autres domaines à tester, comme valeurs séparées par des virgules. -
authorization(Object, Optional) : Fournir une paire clé-valeur pour l'autorisation de l'API. Ces valeurs sont mises à jour dans le travail de configuration DAST et utilisées pour les requêtes API authentifiées.{ "key": "string", "value": "string" } -
parameters(Array[Object], Optional) : Fournissez une liste de paramètres supplémentaires à définir dans la tâche de configuration DAST. Vous pouvez récupérer des paramètres supplémentaires en utilisant l'API .../openapi/specification/process.[ { "path": "string", "name": "string", "location": "string", "value": "string" } ]
Exemple de corps de requête (JSON) :
{
"openApiFileLocation": "string",
"baseUrl": "string",
"additionalDomains": "string",
"authorization": {
"key": "string",
"value": "string"
},
"parameters": [
{
"path": "string",
"name": "string",
"location": "string",
"value": "string"
}
]
}
Réponse en cas de succès (200 OK) :
- En cas de succès, l'API renvoie un code de statut HTTP
200 OK.
Classe de réponse en cas d'erreur (modèle) :
ErrorMessage {
errorMessage (string)
}
Voir Messages de réponse pour les autres codes d'erreur.