Compartilhar via


Testar a API REST de Configuração de Aplicativos do Azure usando o Fiddler

Para testar a API REST usando o Fiddler, você precisará incluir os cabeçalhos HTTP necessários para autenticação em suas solicitações. Veja como configurar o Fiddler para testar a API REST, gerando automaticamente os cabeçalhos de autenticação:

  1. Verifique se o TLS 1.2 é um protocolo permitido:

    1. Acesse Ferramentas>Opções>HTTPS).
    2. Verifique se a opção Descriptografar tráfego HTTPS está marcada.
    3. Na lista de protocolos, adicione TLS 1.2 se não estiver presente.
  2. Abra o Editor de Scripts do Fiddler ou pressione Ctrl-R no Fiddler

  3. Adicione o seguinte código dentro da classe Handlers antes da função OnBeforeRequest

    static function SignRequest(oSession: Session, credential: String, secret: String) {
        var utcNow = DateTimeOffset.UtcNow.ToString("r", System.Globalization.DateTimeFormatInfo.InvariantInfo);
        var contentHash = ComputeSHA256Hash(oSession.RequestBody);
        var stringToSign = oSession.RequestMethod.ToUpperInvariant() + "\n" + oSession.PathAndQuery + "\n" + utcNow +";" + oSession.hostname + ";" + contentHash;
        var signature = ComputeHMACHash(secret, stringToSign);
    
        oSession.oRequest.headers["x-ms-date"] = utcNow;
        oSession.oRequest.headers["x-ms-content-sha256"] = contentHash;
        oSession.oRequest.headers["Authorization"] = "HMAC-SHA256 Credential=" + credential + "&SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=" + signature;
    }
    
    static function ComputeSHA256Hash(content: Byte[]) {
        var sha256 = System.Security.Cryptography.SHA256.Create();
        try {
            return Convert.ToBase64String(sha256.ComputeHash(content));
        }
        finally {
            sha256.Dispose();
        }
    }
    
    static function ComputeHMACHash(secret: String, content: String) {
        var hmac = new System.Security.Cryptography.HMACSHA256(Convert.FromBase64String(secret));
        try {
            return Convert.ToBase64String(hmac.ComputeHash(System.Text.Encoding.ASCII.GetBytes(content)));
        }
        finally {
            hmac.Dispose();
        }
    }
    
  4. Adicione o código a seguir no final da função OnBeforeRequest. Atualize a chave de acesso conforme indicado pelo comentário TODO.

    if (oSession.isFlagSet(SessionFlags.RequestGeneratedByFiddler) &&
        oSession.hostname.EndsWith(".azconfig.io", StringComparison.OrdinalIgnoreCase)) {
    
        // TODO: Replace the following placeholders with your access key
        var credential = "<Credential>"; // Id
        var secret = "<Secret>"; // Value
    
        SignRequest(oSession, credential, secret);
    }
    
  5. Usar o Composer do Fiddler para gerar e enviar uma solicitação