Método de assinatura B
Por padrão, os recursos públicos são distribuídos por CDN. A assinatura de URL protege esses recursos de serem baixados e roubados por usuários mal-intencionados. A CDN da Huawei Cloud fornece quatro métodos de assinatura de URL. Este tópico descreve o método de assinatura B.
- Se o nome de domínio tiver configurações especiais, a assinatura de URL não poderá ser configurada para esse nome de domínio no console da CDN.
- Quando a assinatura de URL é configurada, as solicitações do usuário incluem parâmetros de autenticação. Se Ignore specific parameters não estiver configurado:
- A recuperação de conteúdo se tornará frequente.
- Se o servidor de origem for um bucket do OBS, serão cobradas taxas para o tráfego de saída do bucket.
Como funciona
Um exemplo de URL assinado se parece com:
http://DomainName/timestamp/sha256/FileName
http://DomainName/timestamp/md5hash/FileName
Se a autenticação é bem sucedida, o URL da volta-à-origem é:
http://DomainName/FileName
A tabela a seguir descreve os parâmetros em um URL assinado.
Parâmetro |
Descrição |
---|---|
DomainName |
Nome de domínio de aceleração. |
timestamp |
Hora em que o servidor de autenticação gera uma URL assinada, ou seja, a hora de início da autenticação. O formato é YYYYMMDDHHMM, por exemplo, 201706301000. |
Período de validade |
Quanto tempo um URL assinado permanece eficaz. O valor varia de 0s a 31.536.000s. Exemplo: se o período de validade estiver definido como 1800s e timestamp for 201706301000, o URL expirará às 10:30:00 da manhã. em 30 de junho de 2017. |
md5hash |
Uma cadeia de 32 caracteres calculada usando o algoritmo MD5. A cadeia consiste em dígitos (0 a 9) e letras minúsculas. |
sha256 |
Uma seqüência de 32 caracteres calculada usando o algoritmo SHA256. A cadeia consiste em dígitos e letras minúsculas. |
Filename |
URL de volta à origem. Seu valor deve começar com uma barra (/) e não inclui os parâmetros após o ponto de interrogação (?). |
PrivateKey |
Chave de assinatura, que é usada para gerar um URL assinado, por exemplo, huaweicloud123. A chave contém de 6 a 32 caracteres e pode conter apenas letras e dígitos. |
Método de verificação
Depois de receber uma solicitação, um nó CDN verifica a solicitação da seguinte maneira:
- Verifica se os parâmetros de autenticação estão incluídos na solicitação. Caso contrário, a solicitação é considerada inválida e um código de erro de HTTP 403 é retornado.
- Verifica se a hora do sistema atual está dentro do intervalo [timestamp, timestamp+período válido]. Se a hora atual do sistema exceder o intervalo, o nó de CDN considerará que a solicitação expira e retornará um código de erro HTTP 403. Se a hora atual do sistema estiver dentro do intervalo, o próximo passo prossegue.
- Constrói uma cadeia de caracteres, calcula HashValue com a cadeia usando o algoritmo MD5 e SHA256 e compara HashValue com o valor md5hash ou sha256 na solicitação. Se o valor md5hash ou sha256 for o mesmo que HashValue, a autenticação será bem-sucedida e um arquivo será retornado. Caso contrário, a autenticação falhará e um código de erro HTTP 403 será retornado. HashValue é calculado da seguinte forma:
sstring = "PrivateKeytimestampFilename" HashValue = sha256sum(sstring)
Ousstring = "PrivateKeytimestampFilename" HashValue = md5sum(sstring)
Procedimento
- Faça login em console da Huawei Cloud. Na página inicial do console de gerenciamento, escolha .
O console de CDN é exibido.
- No painel de navegação, escolha .
- Na lista de domínios, clique no nome de domínio de destino ou clique em Configure na coluna Operation.
- Clique na guia Access Control e clique em Sign URL.
Figura 1 Os URLs de assinatura
- Defina os parâmetros de acordo com a tabela a seguir e clique em OK.
Tabela 2 Descrição do parâmetro Parâmetro
Descrição
Chave de assinatura
Senha de autenticação. Digite de 6 a 32 caracteres. Apenas letras e dígitos são permitidos.
Algoritmo de criptografia
MD5 ou SHA256.
Período (s) de validade
Quanto tempo um URL assinado permanece eficaz. O valor varia de 0s a 31.536.000s.
Calculadora de assinatura de URL
Usando a calculadora de assinatura de URL, você pode gerar um URL assinado para os usuários. Defina parâmetros de acordo com Tabela 3 e clique em Generate para gerar um URL assinado que expirará em um momento específico.
Figura 2 Calculadora de assinatura de URL
Tabela 3 Descrição do parâmetro Parâmetro
Descrição
Chave de assinatura
Senha de autenticação. Digite de 6 a 32 caracteres. Apenas letras e dígitos são permitidos. O valor deve ser o mesmo que a chave de assinatura especificada na configuração de assinatura de URL.
Caminho de acesso
Caminho do conteúdo, que começa com uma barra (/) e não carrega uma string de consulta.
Algoritmo de criptografia
MD5 ou SHA256.
Hora de início
Hora em que o URL assinado entrará em vigor.
Período (s) de validade
Por quanto tempo o URL assinado permanece efetivo. O valor varia de 0s a 31.536.000s. Se esse valor for maior que o período de validade definido na configuração de assinatura de URL, o último será usado.
Exemplo: se você definir esse parâmetro para 2000s, mas o período de validade definido na configuração de assinatura de URL for 1800s, o período de validade dos URL assinados será 1800s.
Escape caracteres especiais no URL assinado, se houver.
Exemplo
O seguinte utiliza o algoritmo MD5 como exemplo:
- Suponha que o URL de retorno à origem seja o seguinte:
http://hwcdn.example.com/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
- Defina PrivateKey para huaweicloud123.
- timestamp é 201706301000.
- O nó CDN constrói uma string para calcular md5hash.
huaweicloud123201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
- O nó CDN calcula md5hash de acordo com a string de caracteres assinada.
md5hash = md5sum("huaweicloud123201706301000/T128_2_1_0_sdk/0210/M00/82/3E/test.mp3") = 51415b2256b64a9772a30edf69c00b08
- A URL da solicitação é:
http://hwcdn.example.com/201706301000/ 51415b2256b64a9772a30edf69c00b08 /T128_2_1_0_sdk/0210/M00/82/3E/test.mp3
Se o pedido estiver dentro do prazo de validade (das 10:00:00 do dia 30 de junho de 2017 para as 10:30:00 do dia 30 de junho de 2017) e o md5hash calculado é o mesmo que o valor md5hash (51415b2256b64a9772a30edf69c00b08) realizada na solicitação, a autenticação é bem sucedida.