Lorsque vous envoyez une requête d'API HTTP au serveur Simple Message Queue (anciennement MNS), la signature contenue dans l'en-tête Authorization doit correspondre à celle calculée par le serveur. Toute divergence entraîne l'erreur 403 SignatureDoesNotMatch.
Problème
L'erreur 403 SignatureDoesNotMatch se produit lors de l'appel d'une opération d'API SMQ.
Cause
Chaque requête d'API HTTP adressée au serveur SMQ doit inclure une signature dans l'en-tête Authorization. Si la signature ne correspond pas à celle calculée par le serveur, le serveur rejette la requête avec l'erreur 403 SignatureDoesNotMatch.
Solution
Suivez les étapes ci-dessous pour résoudre ce problème :
Vérifiez la validité de l'URL de la requête. Pour plus d'informations, consultez la section Structure des requêtes d'API.
Vérifiez que l'ID AccessKey et le secret AccessKey sont corrects. Gérez votre paire de clés AccessKey depuis la console Alibaba Cloud.
Utilisez la procédure décrite dans la section Signature des requêtes pour vérifier la signature générée.
-
Vérifiez que les paramètres de la requête respectent les spécifications. Voici les erreurs courantes. Pour plus d'informations, reportez-vous à la section Signature des requêtes.
La version de l'API n'est pas valide. Pour connaître la dernière version de l'API, consultez la section Structure des requêtes.
Le format de la date est incorrect.
Un en-tête commençant par
x-mns-ne respecte pas les spécifications.
Références
L'exemple suivant illustre le calcul d'une signature :
-
Exemple d'en-tête HTTP :
GET /MyQueue HTTP/1.1 Host: 1xxxx0.mns.cn-hangzhou.aliyuncs.com Date: Thu, 09 Jul 2015 03:01:34 GMT x-mns-version:2015-06-06 -
Exemple de chaîne à signer :
GET (Line feed) (Line feed) Thu, 09 Jul 2015 03:01:34 GMT x-mns-version:2015-06-06 /MyQueue Si l'ID AccessKey est
TestAccessIDet le secret AccessKey estTestAccessSecret, le système calcule une signature à l'aide d'un algorithme de chiffrement basé sur ces valeurs et sur la chaîne à signer.