Dotcom-Monitor unterstützt die Überwachung von REST-API-Diensten, die durch das OAuth-Protokoll gesichert sind. In diesem Artikel wird gezeigt, wie Sie ein Überwachungsgerät für die Fälle einrichten, in denen der Zielauthentifizierungsserver das Zugriffstoken vom Typ Bearer zurückgibt.

Im Allgemeinen umfasst die Einrichtung die folgenden Schritte:

  1. Senden Sie eine Tokenanforderung an den OAuth2-Endpunkt, um ein Inhabertoken (HTTP Post) abzurufen.
  2. Rufen Sie das Inhabertoken von der Serverantwort ab.
  3. Senden Sie eine Anforderung mithilfe des gespeicherten Zugriffstokens an den API-Endpunkt.

Angenommen, Ihr Webdienst bietet Сlient Сredentials den Grant-Typ “”””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””” In diesem Fall ist kein Autorisierungscode erforderlich, um eine Zugriffstokenanforderung an den Autorisierungsserver zu senden.

Um die Tokenanforderung an den Autorisierungsserver anzugeben, müssen wir im ersten Schritt die folgenden Anforderungstextattribute im Feld Daten buchen angeben:

  • client_id – Ihre Anwendungskennung, die bei der ersten Registrierung Ihrer Anwendung auf dem Autorisierungsserver ausgestellt wurde.
  • client_secret – wird bei der ersten Registrierung Ihrer Anwendung auf dem Autorisierungsserver ausgestellt.
  • grant_type – muss auf” client_credentials” gesetzt werden.

Außerdem wird empfohlen, “access_token” als Schlüsselwort im Feld Inhaltsvalidierung anzugeben, um die Antwort vom Server zu überprüfen.

 

Nachdem die Serverantwort mit dem Zugriffstoken empfangen wurde, ist der zweite Schritt die Konfiguration der API-Verfügbarkeitsaufgabe.

Wenn der Authentifizierungsserver das Zugriffstoken vom Typ Bearer zurückgibt, kann das folgende Skript verwendet werden, um das Token im Abschnitt Skript vorbereiten abzurufen:

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;

Der Tokentyp wird hier explizit im Skript angegeben.