Ao enviar uma solicitação de API HTTP para o servidor do Simple Message Queue (antigo MNS), a assinatura no cabeçalho Authorization deve corresponder à calculada pelo servidor. Incompatibilidades geram o erro 403 SignatureDoesNotMatch.
Problema
O erro 403 SignatureDoesNotMatch ocorre durante a chamada de uma operação de API do SMQ.
Causa
Toda solicitação de API HTTP enviada ao servidor SMQ exige uma assinatura no cabeçalho Authorization. Se essa assinatura não coincidir com o valor calculado pelo servidor, a solicitação será rejeitada com o erro 403 SignatureDoesNotMatch.
Solução
Siga as etapas abaixo para solucionar esse problema:
Verifique se a URL da solicitação é válida. Para mais informações, consulte Estrutura da solicitação de API.
Confirme se o AccessKey ID e o AccessKey secret estão corretos. Gerencie seu par de AccessKey no Alibaba Cloud Management Console.
Use o guia Assinar solicitações para validar a assinatura gerada.
-
Certifique-se de que os parâmetros da solicitação atendem às especificações. A lista a seguir apresenta erros comuns. Para mais detalhes, consulte Assinar solicitações.
Versão da API inválida. Consulte Estrutura da solicitação para obter a versão mais recente.
Formato de data incorreto.
Cabeçalho iniciado com
x-mns-fora das especificações.
Referências
O exemplo a seguir demonstra o cálculo de uma assinatura:
-
Exemplo de cabeçalho 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 -
Exemplo de string a ser assinada:
GET (Line feed) (Line feed) Thu, 09 Jul 2015 03:01:34 GMT x-mns-version:2015-06-06 /MyQueue Se o AccessKey ID for
TestAccessIDe o AccessKey secret forTestAccessSecret, o sistema calculará a assinatura aplicando um algoritmo de criptografia sobre esses valores e a string a ser assinada.