Dotcom-Monitor поддерживает мониторинг услуг REST API, обеспеченных протоколом OAuth. В этой статье мы покажем, как настроить устройство мониторинга для случаев, когда целевой сервер аутентификации возвращает токен доступа типа Bearer.

Как правило, настройка будет включать в себя следующие шаги:

  1. Отправьте запрос токенов в конечную точку OAuth2, чтобы получить токен на предъявителя (HTTP Post).
  2. Извлекит токен носителя из ответа сервера.
  3. Отправить запрос в конечную точку API с помощью сохраненный токен доступа.

Допустим, ваш веб-сервис предлагает тип гранта на использование учетных данных клиента, а не владельца ресурса. В этом случае не требуется код авторизации для запроса токенов доступа к серверу авторизации.

На первом этапе, чтобы указать запрос маркера на сервер авторизации, мы должны предоставить следующие атрибуты тела запроса в поле почтовых данных:


  • client_id
    – идентификатор приложения, выданный при первой регистрации приложения на сервере авторизации.

  • client_secret
    – выдается при первой регистрации приложения на сервере авторизации.
  • grant_type

    – должны быть установлены на“client_credentials”.

Кроме того, рекомендуется указать“access_token”в качестве ключевого слова в поле проверки содержимого для проверки ответа с сервера.

 

После того, как ответ сервера с маркером доступа был получен, вторым шагом является настройка задачи доступности API.

Если сервер аутентификации возвращает токен доступа типа Bearer, следующий скрипт может быть использован для получения токена в разделе «Подготовьй сценарий»:

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;

Тип токена прямо указан в скрипте здесь.