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 renvoie un jeton d’accès de type Porteur .
En général, le programme d’installation inclut les étapes suivantes :
- Envoyez une demande de jeton au point de terminaison OAuth2 pour obtenir un jeton de porteur (HTTP Post).
- Récupérez le jeton du porteur à partir de la réponse du serveur.
- 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.
À la première étape, pour spécifier la demande de jeton au serveur d’autorisation, fournissez les attributs de corps de demande suivants dans le champ Publier les données :
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.