Dotcom-Monitor prend en charge la surveillance des services d’API REST sécurisés par le protocole OAuth. Dans cet article, nous allons montrer comment configurer un périphérique de surveillance pour les cas où le serveur d’authentification cible retourne un jeton d’accès de type Porteur.

En général, le programme d’installation inclut les étapes suivantes :

  1. Envoyez une demande de jeton au point de terminaison OAuth2 pour obtenir un jeton de porteur (HTTP Post).
  2. Récupérez le jeton du porteur à partir de la réponse du serveur.
  3. Envoyez une demande au point de terminaison de l’API à l’aide du jeton d’accès enregistré.

Supposons que votre service Web offre le type de subvention Сlient Сredentials lorsque les informations d’identification du client sont utilisées au lieu du propriétaire de la ressource. Aucun code d’autorisation nécessaire dans ce cas pour faire une demande de jeton d’accès au serveur d’autorisation.

Dans un premier temps, pour spécifier la demande de jeton au serveur d’autorisation, nous devons fournir les attributs suivants du corps de demande dans le champ Données postales :


  • client_id
    – votre identifiant de demande, émis lors de la première inscription de votre demande au serveur d’autorisation.

  • client_secret
    – émis lors de la première inscription de votre demande au serveur d’autorisation.

  • grant_type
    – doit être mis à “client_credentials«.

En outre, il est recommandé de spécifier” access_token” comme mot clé dans le champ validation de contenu pour valider la réponse à partir du serveur.

 

Une fois que la réponse du serveur avec le jeton d’accès a été reçue, la deuxième étape est la configuration de la tâche de disponibilité de l’API.

Si le serveur d’authentification retourne un jeton d’accès de type Porteur, le script suivant peut être utilisé pour récupérer le jeton dans la section Préparer le script :

string access_token;
string TokenAuthorization;

// get the authorization response from the first task
string json = (Tasks["AuthToken"] as Http).body["//*"];

//retrieve the access token from the response body
access_token = "";
if(json.IndexOf("access_token\"") != -1) access_token = json.Substring(json.IndexOf("access_token\"") + "access_token\"".Length);
if(json.IndexOf("\"") != -1) access_token = access_token.Substring(access_token.IndexOf("\"") + 1);
if(json.IndexOf("\"") != -1) access_token = access_token.Substring(0, access_token.IndexOf("\""));

//set the TokenAuthorization variable 
TokenAuthorization = "Bearer" + access_token;

Le type de jeton est spécifié explicitement dans le script ici.