O Dotcom-Monitor suporta o monitoramento dos serviços de API REST protegidos pelo protocolo OAuth. Neste artigo mostraremos como configurar um dispositivo de monitoramento para os casos quando o servidor de autenticação de destino retornar o token de acesso do tipo Portador.

Em geral, a configuração incluirá as seguintes etapas:

  1. Envie uma solicitação de token para o ponto final do OAuth2 para obter um token portador (HTTP Post).
  2. Recupere o token portador da resposta do servidor.
  3. Envie uma solicitação para o ponto final da API usando o token de acesso salvo.

Vamos supor que seu serviço web ofereça o tipo de subvenção Сlient Сredentials quando as credenciais do cliente são usadas em vez das do proprietário do recurso. Nenhum código de autorização necessário neste caso para fazer uma solicitação de token de acesso ao Servidor de Autorização.

Na primeira etapa, para especificar a solicitação de token ao Servidor de Autorização, precisamos fornecer os seguintes atributos do órgão de solicitação no campo Post Data:


  • client_id
    – seu identificador de aplicativo, emitido no primeiro registro do seu aplicativo no Servidor de Autorização.

  • client_secret
    – emitido no primeiro registro do seu aplicativo no Servidor de Autorização.

  • grant_type
    – deve ser definido para “client_credentials“.

Além disso, recomenda-se especificar “access_token” como uma palavra-chave no campo validação de conteúdo para validar a resposta do servidor.

 

Uma vez recebida a resposta do servidor com o token de acesso, o segundo passo é a configuração da tarefa de disponibilidade de API.

Se o Servidor de Autenticação retornar o token de acesso do tipo Portador, o script a seguir poderá ser usado para recuperar o token na seção Preparar 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;

O tipo de token é especificado explicitamente no script aqui.