Este guia explica como criar uma assinatura e os campos obrigatórios e opcionais para assinaturas.
Para criar uma assinatura, compõe uma string para assinar, à qual nos referimos como um valor assinado neste guia. O valor assinado inclui parâmetros que descrevem o conteúdo que está a proteger, a hora de validade do valor assinado e assim sucessivamente.
Usa o valor assinado ao criar uma string de assinatura. Cria uma string de assinatura ao compor os parâmetros da assinatura, como uma assinatura Ed25519 de chave assimétrica do valor assinado.
A RFC usa a assinatura composta final para ajudar a proteger o seu conteúdo.
Formatos de assinatura suportados
A RFC 2616 define o formato de pedido assinado.
Formato | Comportamento | Exemplo |
---|---|---|
Parâmetros de consulta (URL exato) |
URL exato, para conceder acesso a um URL específico. |
Exata:
|
Parâmetros de consulta (prefixo do URL) |
A especificação de um URLPrefix permite-lhe assinar um prefixo e anexar
os mesmos parâmetros de consulta a vários URLs na geração do seu leitor ou manifesto.
|
O que deve assinar:
Substitua |
Componente de caminho |
Prefixo: permite o acesso a qualquer URL com um prefixo antes do componente Isto permite que os URLs de manifesto relativos herdem automaticamente o componente de URL assinado quando obtêm sub-recursos. |
https://media.example.com/video/edge-cache-token=Expires=EXPIRATION
|
Cookie assinado | Prefixo: o cookie permite o acesso a qualquer URL com o prefixo especificado no valor URLPrefix assinado.
|
Edge-Cache-Cookie:
|
Crie uma assinatura
Crie um valor assinado concatenando uma string que contenha os campos de assinatura obrigatórios e os campos de assinatura opcionais pretendidos.
Se especificado,
URLPrefix
tem de aparecer primeiro, seguido deExpires
,KeyName
e, em seguida, quaisquer parâmetros opcionais.Separe cada campo e todos os parâmetros com o seguinte:
- Para cookies, use um caráter de dois pontos
:
. - Para parâmetros de consulta e componentes de caminho, use um caráter
&
de "E" comercial.
- Para cookies, use um caráter de dois pontos
Assine o valor assinado com uma assinatura Ed25519.
Anexe um separador de campos (
:
ou&
), seguido deSignature=
e da assinatura Ed25519 ao final da string.
Crie um URL assinado
Os seguintes exemplos de código mostram como criar programaticamente um URL assinado.
Go
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Crie um prefixo de URL assinado
Os exemplos de código seguintes mostram como criar programaticamente um prefixo de URL assinado.
Go
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Crie um cookie de URL assinado
Os exemplos de código seguintes mostram como criar programaticamente um cookie de URL assinado.
Go
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Crie um componente de caminho assinado
Os exemplos de código seguintes mostram como criar programaticamente um componente de caminho assinado.
Python
Para se autenticar na RFC de multimédia, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Campos de assinatura obrigatórios
Os seguintes campos são obrigatórios para todas as assinaturas:
Expires
KeyName
Signature
Se existirem parâmetros de consulta, têm de ser agrupados como os últimos parâmetros no URL. Salvo especificação em contrário, os nomes dos parâmetros e os respetivos valores são sensíveis a maiúsculas e minúsculas.
A tabela seguinte explica cada parâmetro:
Nome do campo | Parâmetros de assinatura | Valor assinado |
---|---|---|
Expires |
Segundos inteiros decorridos desde o início da época Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME , após a qual a assinatura deixa de ser válida. |
KeyName |
O nome do EdgeCacheKeyset usado para assinar este pedido. KeyName refere-se ao conjunto de chaves completo e não às chaves individuais no próprio conjunto de chaves.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Uma versão codificada em base64 da assinatura. | Não aplicável |
Campos de assinatura opcionais
Se existirem parâmetros de consulta, têm de ser agrupados como os últimos parâmetros no URL. Salvo especificação em contrário, os nomes dos parâmetros e os respetivos valores são sensíveis a maiúsculas e minúsculas.
A tabela seguinte explica o nome e os detalhes de cada parâmetro para os parâmetros de assinatura opcionais:
Nome do campo | Parâmetros de assinatura | Valor assinado |
---|---|---|
HeaderName |
Um nome de campo de cabeçalho de pedido denominado que tem de estar presente no pedido. Tem de estar em minúsculas quando assinado, porque os nomes dos campos de cabeçalho são sensíveis a maiúsculas e minúsculas. A CDN de multimédia converte o cabeçalho em minúsculas antes de validar a assinatura. |
HeaderName=HEADER_NAME |
HeaderValue |
Um valor de campo de cabeçalho de pedido com nome que tem de estar presente no pedido. Normalmente, trata-se de um ID do utilizador ou de outro identificador opaco. Os pedidos
com HeaderValue , mas sem HeaderName , são
rejeitados.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Uma lista de até cinco endereços IPv4 e IPv6 no formato CIDR para os quais este URL é válido no formato base64 seguro para a Web. Por exemplo,
para especificar os intervalos de IP "192.6.13.13/32,193.5.64.135/32", especifica
Os intervalos de IP podem não ser úteis para incluir em assinaturas quando os clientes estão
em risco de migrações de WAN ou casos em que o caminho de rede para o frontend da sua aplicação é diferente do caminho de entrega.
A RFC de multimédia rejeita clientes com um código Seguem-se casos que podem resultar na rejeição de clientes pela RFC de multimédia com um código
Todos estes fatores podem contribuir para que um determinado cliente tenha um endereço IP não determinístico durante uma sessão de reprodução de vídeo. Se o endereço IP do cliente mudar depois de ter emitido o acesso e o cliente tentar transferir um segmento de vídeo para o respetivo buffer de reprodução, recebe um |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
O prefixo de URL base64 (seguro para URL) para conceder acesso. A especificação de um
URLPrefix permite-lhe assinar um prefixo e anexar os mesmos parâmetros de consulta
a vários URLs na geração do manifesto ou do leitor.
O elemento URLPrefix é obrigatório quando usa o formato de cookie assinado.
|
URLPrefix=BASE_64_URL_PREFIX |