O ApsaraVideo VOD permite usar o recurso de assinatura de URL para proteger o conteúdo de origem contra downloads e acessos não autorizados. Esse recurso oferece suporte a três tipos de assinatura. Este tópico descreve o funcionamento da assinatura tipo B.
Como funciona
Criptografia de URL baseada no tipo B
http://DomainName/timestamp/md5hash/FileName
Campos em uma URL assinada
Campo | Descrição |
DomainName | Nome de domínio do ApsaraVideo VOD. |
timestamp | Momento de geração da URL assinada. O timestamp e o período de validade padrão definem a expiração da URL. O horário segue o fuso UTC+8 e o formato AAAAMMDDHHMM. Nota Geralmente, a URL assinada expira após o término do período de validade padrão especificado no ApsaraVideo VOD. Se você definir um período de validade para a URL assinada no servidor de assinatura, o sistema calcula o timestamp e o período de validade conforme a seguinte fórmula: Timestamp = timestamp UNIX no servidor de assinatura + Período de validade configurado no servidor de assinatura. Período de validade = Timestamp + Período de validade padrão. |
md5hash | String calculada pelo algoritmo MD5. Deve ter 32 caracteres e conter apenas dígitos e letras minúsculas. |
Filename | URL real que aponta para o recurso solicitado no servidor de origem. O valor do campo Filename deve começar com uma barra ( |
Lógica de assinatura
Ao receber uma solicitação, o ponto de presença (POP) do Alibaba Cloud CDN verifica se o horário resultante da soma de timestamp e default validity period é anterior ao horário atual.
Se o horário calculado pela soma de
timestampedefault validity periodfor anterior ao horário atual, o POP considera a URL expirada e retorna o código de status HTTP 403.-
Caso o horário resultante da soma de
timestampedefault validity periodseja posterior ao horário atual, o POP gera uma string com base emsstring, conforme descrito na tabela anterior. Em seguida, o POP utiliza o algoritmo MD5 para calcular o valor demd5hashe o compara com o valor demd5hashpresente na solicitação.Se os dois valores forem diferentes, a autenticação falha e o POP retorna o código de status HTTP 403.
-
Quando os valores coincidem, a solicitação passa na autenticação e o POP retorna o recurso solicitado.
NotaApós a autenticação bem-sucedida, o sistema remove os parâmetros específicos de autenticação da URL para aumentar a taxa de acerto de cache e reduzir o tráfego de origem.
A URL na solicitação de retorno à origem segue o formato
http://DomainName/FileName.A URL usada para gerar a chave de cache também adota o formato
http://DomainName/FileName.
Exemplos
O exemplo a seguir demonstra como implementar a assinatura tipo B.
Condições de amostra
-
Recupere um objeto do servidor de origem:
http://example.aliyundoc.com/video/standard/test.mp4NotaSe a URL do objeto recuperado do servidor de origem contiver caracteres chineses, codifique-a antes de concatená-la para formar a URL assinada.
Defina PrivateKey como aliyunvodexp1234.
Converta o timestamp de geração da URL assinada, 2021-08-01 00:00:00 (UTC+8), para o inteiro decimal 1627747200.
Procedimento de concatenação
-
Gere a string de assinatura usada para calcular o valor de
md5hash.aliyunvodexp12341627747200/video/standard/test.mp4 -
Calcule o valor de
md5hashusando a string de assinatura.md5hash = md5sum("aliyunvodexp12341627747200/video/standard/test.mp4") = 9044548ef1527deadafa49a890a3**** -
Gere a URL assinada.
http://example.aliyundoc.com/1627747200/9044548ef1527deadafa49a890a3****/video/standard/test.mp4
Quando um cliente usa uma URL assinada para solicitar um recurso, o POP compara o valor de md5hash calculado com o valor de md5hash presente na solicitação. Se os dois valores forem idênticos, como 9044548ef1527deadafa49a890a3\\*\**, a autenticação é aprovada. Caso contrário, a autenticação falha.