Sim, o Cloud Monitor é compatível com o algoritmo de assinatura HMAC-SHA1. Esse é o único algoritmo de assinatura que o Cloud Monitor suporta. Para usar o algoritmo de assinatura HMAC-SHA1, execute as etapas descritas neste tópico.
Procedimento
Prepare um par de AccessKey do Alibaba Cloud.
Para gerar uma assinatura para uma solicitação HTTP, você precisa de um par de AccessKey ID e AccessKey Secret.
NotaVocê pode usar um par de AccessKey existente ou criar um. O par de AccessKey precisa estar ativo.
Gere uma string de assinatura para uma solicitação HTTP.
A string de assinatura de uma solicitação HTTP é gerada com base nos campos Method, Header e Body da solicitação HTTP.
SignString = VERB + "\n" + CONTENT-MD5 + "\n" + CONTENT-TYPE + "\n" + DATE + "\n" + CanonicalizedHeaders + "\n" + CanonicalizedResourceNa fórmula anterior,
\nindica o caractere de nova linha com escape, e o sinal de adição (+) indica o operador de concatenação de strings. A tabela a seguir descreve as definições dos demais campos.Parâmetro
Descrição
Exemplo
VERB
O método HTTP usado para fazer a solicitação.
PUT, GET ou POST
CONTENT-MD5
O valor MD5 do campo Body na solicitação HTTP.
NotaO valor MD5 deve ser uma string composta de letras maiúsculas e dígitos.
0B9BE351E56C90FED853B32524253E8B
CONTENT-TYPE
O tipo do corpo da solicitação HTTP.
application/json
DATE
O cabeçalho de timestamp padrão da solicitação HTTP.
NotaEsse cabeçalho de timestamp segue o formato de hora RFC 1123 e usa o horário padrão GMT.
Mon, 3 Jan 2010 08:33:47 GMT
CanonicalizedHeaders
A string construída a partir dos cabeçalhos personalizados com prefixo
x-cmsex-acsna solicitação HTTP.x-cms-api-version:0.1.0
x-cms-signature
CanonicalizedResource
A string construída a partir dos recursos solicitados pela solicitação HTTP.
/event/custom/upload
As strings CanonicalizedHeaders e CanonicalizedResource na tabela anterior são construídas de acordo com as seguintes regras:
CanonicalizedHeaders
Converta para letras minúsculas os nomes de todos os cabeçalhos com prefixo
x-cmsex-acs.Classifique em ordem lexicográfica os cabeçalhos com nomes convertidos gerados na etapa anterior.
Remova todos os espaços em cada lado do delimitador entre cada cabeçalho e valor.
Separe todos os cabeçalhos anteriores com delimitadores (
\n) para formar a string CanonicalizedHeaders final.
CanonicalizedResource
Defina a string CanonicalizedResource como uma string vazia ("").
Coloque o URI que você deseja acessar, como
/event/custom/upload, entre as aspas.Se a solicitação contiver uma string de consulta, adicione um ponto de interrogação (
?) e a string de consulta ao final da string CanonicalizedResource.A string de classificação é a string dos parâmetros de solicitação incluídos no URI, ordenada lexicograficamente. Sinais de igual (
=) são usados entre os nomes e valores dos parâmetros para formar uma string. Os pares nome-valor dos parâmetros são então ordenados em ordem lexicográfica e conectados com e comercial (&) para formar uma string. A seguinte fórmula é usada para construir a string de consulta:QUERY_STRING = "KEY1=VALUE1" + "&" + "KEY2=VALUE2"
Gere uma assinatura digital para a solicitação HTTP.
Fórmula para gerar uma assinatura digital:
Signature=base16(hmac-sha1(UTF8-Encoding-Of(SignString),AccessKeySecret))Exemplo de string de assinatura de uma solicitação HTTP:
SignString="POST" + "\n" +"0B9BE351E56C90FED853B32524253E8B" + "\n" +"application/json" + "\n" +"Tue, 11 Dec 2018 21:05:51 +0800" + "\n" +"x-cms-api-version:1.0" + "\n" +"x-cms-ip:127.0.0.1" + "\n" +"x-cms-signature:hmac-sha1" + "\n" +"/metric/custom/upload" accesskey="testkey" accessSecret="testsecret" // The AccessKey secret used to sign the HTTP request.Assinatura gerada com base na string de assinatura anterior:
1DC19ED63F755ACDE203614C8A1157EB1097E922