Dotcom-Monitor поддерживает мониторинг услуг REST API, обеспеченных протоколом OAuth. В этой статье мы покажем, как настроить устройство мониторинга для случаев, когда целевой Сервер аутентификации возвращает токен доступа типа Bearer .
Как правило, настройка будет включать в себя следующие шаги:
- Отправьте запрос токенов в конечную точку OAuth2, чтобы получить токен на предъявителя (HTTP Post).
- Извлекит токен носителя из ответа сервера.
- Отправить запрос в конечную точку API с помощью сохраненный токен доступа.
Допустим, ваш веб-сервис предлагает тип гранта на использование учетных данных клиента, а не владельца ресурса. В этом случае не требуется код авторизации для запроса токенов доступа к серверу авторизации.
На первом шаге, чтобы указать запрос токена к Серверу авторизации, укажите следующие атрибуты тела запроса в поле Post Data :
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;
Тип токена прямо указан в скрипте здесь.