Udostępnij za pośrednictwem


Testowanie interfejsu API REST konfiguracji aplikacja systemu Azure przy użyciu programu Fiddler

Aby przetestować interfejs API REST przy użyciu programu Fiddler, należy uwzględnić nagłówki HTTP wymagane do uwierzytelniania w żądaniach. Poniżej przedstawiono sposób konfigurowania programu Fiddler do testowania interfejsu API REST, automatycznego generowania nagłówków uwierzytelniania:

  1. Upewnij się, że protokół TLS 1.2 jest dozwolony:

    1. Przejdź do pozycji Narzędzia>Opcje>HTTPS).
    2. Upewnij się, że zaznaczono opcję Odszyfrowywanie ruchu HTTPS.
    3. Na liście protokołów dodaj protokół TLS1.2 , jeśli nie istnieje.
  2. Otwórz Edytor skryptów programu Fiddler lub naciśnij klawisze Ctrl-R w narzędziu Fiddler

  3. Dodaj następujący kod wewnątrz Handlers klasy przed funkcją 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. Dodaj następujący kod na końcu OnBeforeRequest funkcji. Zaktualizuj klucz dostępu wskazany przez komentarz 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. Generowanie i wysyłanie żądania przy użyciu narzędzia Fiddler's Composer