Partager via


Tester l’API REST Azure App Configuration à l’aide de Fiddler

Pour tester l’API REST à l’aide de Fiddler, vous devez inclure les en-têtes HTTP requis pour l’authentification dans vos demandes. Voici la procédure à suivre pour configurer Fiddler de manière à tester l’API REST en générant automatiquement les en-têtes d’authentification :

  1. Assurez-vous que TLS 1.2 est un protocole autorisé :

    1. Accédez à Outils>Options>HTTPS).
    2. Vérifiez que l’option Déchiffrer le trafic HTTPS est cochée.
    3. Dans la liste des protocoles, ajoutez tls1.2 s’il n’est pas présent.
  2. Ouvrez Éditeur de script Fiddler ou appuyez sur Ctrl-R dans Fiddler

  3. Ajoutez le code suivant dans la classe Handlers avant la fonction 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. Ajoutez le code suivant à la fin de la fonction OnBeforeRequest. Mettez à jour la clé d’accès comme indiqué par le commentaire 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. Utilisez l’éditeur Composer de Fiddler pour générer et envoyer une demande