A assinatura de URL protege os recursos do seu servidor de origem contra acessos não autorizados. O Alibaba Cloud CDNDCDN oferece quatro métodos de assinatura de URL. O Tipo F utiliza hash MD5 com uma chave privada e nomes de parâmetros padrão para fornecer uma autenticação simples.
O Tipo F emprega MD5 com uma chave privada e os nomes de parâmetro padrão sign e time. Esse método atende à maioria dos cenários básicos de autenticação.
A URL assinada não deve conter caracteres chineses.
A assinatura de URL não é compatível com URLs que já possuem parâmetros de consulta (?), pois o processo de assinatura adiciona seus próprios parâmetros de consulta.
Como funciona
-
Formato da URL assinada
Uma URL assinada segue o formato abaixo:
http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}NotaO conteúdo em
{}representa os parâmetros de autenticação anexados à URL padrão.Os nomes dos parâmetros
signetimesão os valores padrão. É possível personalizar o Signature Parameter e o Timestamp Parameter no console de Configurar assinatura de URL. -
Parâmetro
Descrição
DomainName
Nome de domínio acelerado pelo CDN.
PrivateKey
Chave criptográfica personalizada de 16 a 32 caracteres, composta por letras maiúsculas, letras minúsculas e dígitos.
FileName
Caminho do recurso para a solicitação back-to-origin. Deve começar com uma barra (
/).timestamp
Momento em que o servidor de assinatura gera a URL assinada. Em conjunto com o período de validade, esse valor define quando a URL assinada expira. O horário é um timestamp UNIX — o número de segundos decorridos desde 00:00:00 UTC em 1º de janeiro de 1970. Trata-se de um inteiro decimal positivo de 10 dígitos, independente de fusos horários. No console Configurar assinatura de URL, defina o formato do timestamp como decimal (timestamp UNIX) ou hexadecimal (timestamp UNIX).
NotaConfigure o TTL no console Configurar assinatura de URL. A URL assinada expira em
timestamp+ o período de validade configurado.md5hash
String de 32 caracteres gerada pelo algoritmo MD5. Contém os dígitos de 0 a 9 e as letras minúsculas de a a z.
O valor
md5hashé gerado a partir da seguinte string de assinatura:sstring = "Privatekey+URI+timestamp" (onde URI é o caminho relativo do objeto solicitado, como /Filename, e não inclui parâmetros de consulta) md5hash = md5sum(sstring) -
Lógica de autenticação
Ao receber uma solicitação, um nó de borda do CDNDCDN verifica primeiramente se
timestamp+validity periodjá expirou.Caso
timestamp+validity periodseja anterior ao horário atual, a solicitação expirou. O servidor retorna um erro HTTP 403.-
Se
timestamp+validity periodfor posterior ao horário atual, o servidor constrói uma string de assinatura no formatosstring, calcula seu valor MD5 e compara o resultado com o valormd5hashpresente na solicitação.-
Quando os valores correspondem, a autenticação é bem-sucedida e o recurso solicitado é retornado.
NotaApós a autenticação bem-sucedida, o nó de borda remove os parâmetros de autenticação da URL para aumentar a taxa de acerto de cache e reduzir o tráfego back-to-origin. Por exemplo:
URL com parâmetros de assinatura:
http://DomainName/FileName?{sign=<md5hash>&time=<timestamp>}-
Após a autenticação:
URL usada para gerar a chave de cache:
http://DomainName/FileNameURL para a solicitação back-to-origin:
http://DomainName/FileName
Se os valores não corresponderem, a autenticação falha e o servidor retorna um erro HTTP 403.
-
Exemplo
O exemplo a seguir demonstra a assinatura de URL do Tipo F.
-
Condições de amostra
-
Recuperar um objeto do servidor de origem:
http://domain.example.com/test.flvNotaSe a URL da solicitação contiver caracteres não ASCII, codifique a URL primeiro. Utilize a URL codificada para construir a string de hash. Por exemplo:
URL original:
https://example.com/image/AlibabaCloud.jpgURL codificada:
https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg
Defina PrivateKey como
aliyuncdnexp1234.Defina timestamp como
55CE8100.
-
-
Processo
-
Construa a string de assinatura
sstringno formatoPrivatekey+URI+timestamp.aliyuncdnexp1234/test.flv55CE8100 -
Calcule o hash MD5 da string de assinatura:
md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd -
Anexe o resultado da assinatura e o timestamp como parâmetros de consulta para formar a URL assinada:
http://domain.example.com/test.flv?sign=a37fa50a5fb8f71214b1e7c95ec7a1bd&time=55CE8100
-
Quando um cliente solicita um recurso com uma URL assinada, a autenticação é bem-sucedida se o valor md5hash calculado pelo servidor CDNDCDN corresponder ao valor md5hash na solicitação — por exemplo, a37fa50a5fb8f71214b1e7c95ec7a1bd — e a URL não tiver expirado. Caso contrário, a autenticação falha.
Instruções
Leia o documento em inglês para compreender O QUE precisa ser comunicado
Escreva o português brasileiro DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Tags xref (
<a data-tag="xref" ...>texto</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > eAplique todas as regras específicas do idioma rigorosamente
Aplique as regras de stopwords com tolerância zero
Use o modo imperativo em passos numerados e listas de procedimentos
Garanta a consistência terminológica — mesmo termo = mesma tradução em todo o documento
Varie os inícios de frase em listas/tabelas — nenhum início repetido mais de 3 vezes
Retorne APENAS o documento markdown em português brasileiro, sem explicações