Este guia explica como criar uma assinatura e os campos obrigatórios e opcionais para assinaturas.
Para criar uma assinatura, você precisa compor uma string a ser assinada, que chamamos de valor assinado neste guia. O valor assinado inclui parâmetros que descrevem o conteúdo que você está protegendo, o tempo de expiração do valor assinado e assim por diante.
Você usa o valor assinado ao criar uma string de assinatura. Para isso, você precisa compor os parâmetros da assinatura, como uma assinatura Ed25519 de chave assimétrica do valor assinado.
O Media CDN usa a assinatura composta final para ajudar a proteger seu conteúdo.
Formatos de assinatura compatíveis
O Media CDN oferece suporte aos seguintes formatos de solicitação assinada.
| Formato | Comportamento | Exemplo |
|---|---|---|
| Parâmetros de consulta (URL exato) |
URL exato, para conceder acesso a um URL específico. |
Exato:
|
| Parâmetros de consulta (prefixo de URL) |
Especificar um URLPrefix permite assinar um prefixo e anexar
os mesmos parâmetros de consulta a vários URLs na geração de player ou manifesto.
|
O que assinar:
Substitua |
| Componente do caminho |
Prefixo: permite o acesso a qualquer URL com um prefixo antes do
Isso permite que os URLs de manifesto relativos herdem automaticamente o componente de URL assinado ao buscar 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 assinado URLPrefix.
|
Edge-Cache-Cookie:
|
Criar uma assinatura
Crie um valor assinado concatenando uma string que contenha os campos de assinatura obrigatórios e os campos de assinatura opcionais desejados.
Se especificado,
URLPrefixprecisa vir primeiro, seguido porExpires,KeyNamee, em seguida, todos os parâmetros opcionais.Separe cada campo e parâmetro com o seguinte:
- Para cookies, use um caractere de dois pontos
:. - Para parâmetros de consulta e componentes de caminho, use um caractere comercial
&.
- Para cookies, use um caractere de dois pontos
Assine o valor assinado com uma assinatura Ed25519.
Anexe um separador de campo (
:ou&), seguido porSignature=e a assinatura Ed25519 ao final da string.
Criar um URL assinado
Os exemplos de código a seguir mostram como criar um URL assinado de maneira programática.
Go
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um prefixo de URL assinado
Os exemplos de código a seguir mostram como criar um prefixo de URL assinado de maneira programática.
Go
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um cookie de URL assinado
Os exemplos de código a seguir mostram como criar um cookie de URL assinado de maneira programática.
Go
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Criar um componente de caminho assinado
Os exemplos de código a seguir mostram como criar um componente de caminho assinado de maneira programática.
Python
Para autenticar no Media CDN, configure o Application Default Credentials. Se quiser mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Campos de assinatura obrigatórios
Os campos a seguir são obrigatórios para todas as assinaturas:
ExpiresKeyNameSignature
Se houver parâmetros de consulta, eles precisarão ser agrupados como os últimos parâmetros no URL. A menos que especificado de outra forma, os nomes dos parâmetros e os valores deles diferenciam maiúsculas de minúsculas.
A tabela a seguir explica cada parâmetro:
| Nome do campo | Parâmetros de assinatura | Valor assinado |
|---|---|---|
Expires |
Segundos inteiros que se passaram desde a época Unix (1970-01-01T00:00:00Z) | Expires=EXPIRATION_TIME, após o qual a
assinatura não é mais válida. |
KeyName |
O nome do EdgeCacheKeyset usado para assinar esta
solicitação. KeyName se refere a todo o conjunto de chaves, não a chaves individuais dentro do conjunto.
|
KeyName=EDGE_CACHE_KEYSET |
Signature |
Uma versão codificada em base64 da assinatura. | Não relevante |
Campos de assinatura opcionais
Se houver parâmetros de consulta, eles precisarão ser agrupados como os últimos parâmetros no URL. A menos que especificado de outra forma, os nomes dos parâmetros e os valores deles diferenciam maiúsculas de minúsculas.
A tabela a seguir explica o nome e os detalhes de cada parâmetro para parâmetros de assinatura opcionais:
| Nome do campo | Parâmetros de assinatura | Valor assinado |
|---|---|---|
HeaderName |
Um nome de campo de cabeçalho da solicitação nomeado que precisa estar presente na solicitação. Precisa estar em letras minúsculas quando assinado, porque os nomes dos campos de cabeçalho são diferenciam maiúsculas de minúsculas. O Media CDN converte o cabeçalho em letras minúsculas antes de validar a assinatura. |
HeaderName=HEADER_NAME |
HeaderValue |
Um valor de campo de cabeçalho de solicitação nomeado que precisa estar presente na
solicitação. Geralmente, é um ID de usuário ou outro identificador opaco. As solicitações
com HeaderValue mas sem HeaderName são
rejeitadas.
|
HeaderValue=HEADER_VALUE |
IPRanges |
Uma lista de até cinco endereços IPv4 e IPv6 no formato CIDR para
os quais esse 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", especifique
Os IPRanges podem não ser úteis para incluir em assinaturas quando os clientes correm o risco de migrações de WAN ou casos em que o caminho de rede para o front-end do aplicativo é diferente do caminho de entrega.
O Media CDN rejeita clientes com um A seguir estão os casos que podem resultar na rejeição de clientes pelo Media CDN
com um código
Todos esses 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 que você tiver emitido o acesso e o
cliente tentar fazer o download de um segmento de vídeo para o buffer de reprodução,
ele vai receber um |
IPRanges=BASE_64_IP_RANGES |
URLPrefix |
O prefixo de URL base64 (seguro para URL) para conceder acesso. Especificar um
URLPrefix permite assinar um prefixo e anexar os mesmos parâmetros de consulta
a vários URLs na geração de player ou manifesto.
O URLPrefix é obrigatório ao usar o formato de cookie assinado.
|
URLPrefix=BASE_64_URL_PREFIX |