Proteger ativos da Rede de Distribuição de Conteúdo do Azure com autenticação de token

Importante

Esse é um recurso apenas do CDN do Azure Premium da Edgio. Para configurar regras no CDN do Azure da Microsoft use o Mecanismo de regras padrão. As regras avançadas não estão disponíveis para o CDN do Azure da Akamai. Para obter uma comparação completa dos recursos de CDN, confira Recursos do produto do CDN do Azure.

Visão geral

A autenticação de token é um mecanismo que permite impedir que a rede de distribuição de conteúdo do Azure forneça ativos a clientes não autorizados. A autenticação de token normalmente é feita para impedir hotlinking de conteúdo, em que um site diferente, como um quadro de mensagens, usa seus ativos sem permissão. O hotlinking pode ter um efeito sobre os custos de fornecimento de conteúdo. Quando você habilita a autenticação de token na rede de distribuição de conteúdo, as solicitações são autenticadas pelo servidor de borda da rede de distribuição de conteúdo antes que a rede de distribuição de conteúdo distribua o conteúdo.

Como ele funciona

A autenticação de token verifica que as solicitações são geradas por um site confiável, exigindo que as solicitações contenham um valor de token com informações codificadas sobre o solicitante. O conteúdo será fornecido a um solicitante somente se as informações codificadas atenderem aos requisitos; caso contrário, as solicitações serão negadas. Você pode configurar os requisitos usando um ou mais dos seguintes parâmetros:

  • País/Região: Permitir ou negar solicitações originadas nos países/regiões especificados por seu código de país/região.
  • URL: Permitir somente solicitações que correspondam ao ativo ou caminho especificado.
  • Host: Permitir ou negar solicitações que usam os hosts especificados no cabeçalho da solicitação.
  • Referenciador: Permitir ou negar solicitação do referenciador especificado.
  • Endereço IP: Permitir somente solicitações originadas de um endereço IP ou sub-rede IP específico.
  • Protocolo: Permitir ou negar solicitações com base no protocolo usado para solicitar o conteúdo.
  • Tempo de expiração: Atribua um período de data e hora para garantir que um link permaneça válido somente por um período limitado.

Para obter mais informações, consulte os exemplos de configuração detalhados para cada parâmetro em Configuração de autenticação de token.

Importante

Se a autorização de token estiver habilitada para qualquer caminho nesta conta, o modo de cache standard é o único modo que pode ser utilizado para o armazenamento em cache da cadeia de caracteres de consulta. Para obter mais informações, consulte Controlar o comportamento de cache da Rede de Distribuição de Conteúdo do Azure com cadeias de caracteres de consulta.

Arquitetura de referência

O diagrama de fluxo de trabalho a seguir descreve como a rede de distribuição de conteúdo usa autenticação de token para trabalhar com seu aplicativo Web.

Captura de tela do fluxo de trabalho de autenticação de token da rede de distribuição de conteúdo.

Lógica de validação de token no ponto de extremidade da rede de distribuição de conteúdo

O fluxograma a seguir descreve como a Rede de Distribuição de Conteúdo do Azure valida uma solicitação de cliente quando a autenticação de token é configurada no ponto de extremidade da rede de distribuição de conteúdo.

Captura de tela da lógica de validação de token da rede de distribuição de conteúdo.

Configurar autenticação de token

  1. No portal do Azure, navegue até o perfil da rede de distribuição de conteúdo e selecione Gerenciar para inicializar o portal complementar.

    Captura de tela do botão Gerenciar do perfil de rede da distribuição de conteúdo.

  2. Passe o cursor sobre HTTP Grande e, em seguida, selecione Token de Autenticação no submenu. Então você pode configurar os parâmetros de criptografia e a chave de criptografia da seguinte maneira:

    1. Crie uma ou mais chaves de criptografia. Uma chave de criptografia diferencia maiúsculas de minúsculas e pode conter qualquer combinação de caracteres alfanuméricos. Todos os outros tipos de caracteres, incluindo espaços, não são permitidos. O comprimento máximo é de 250 caracteres. Para garantir que as chaves de criptografia sejam aleatórias, é recomendável criá-las usando a ferramenta OpenSSL.

      A ferramenta OpenSSL tem a seguinte sintaxe:

      rand -hex <key length>

      Por exemplo:

      OpenSSL> rand -hex 32

      Para evitar tempo de inatividade, crie uma chave primária e uma de backup. Uma chave de backup fornece acesso ininterrupto ao seu conteúdo quando sua chave primária está sendo atualizada.

    2. Insira uma chave de criptografia exclusiva na caixa Chave Primária e, opcionalmente, insira uma chave de backup na caixa Chave de Backup.

    3. Selecione a versão mínima de criptografia para cada chave da lista Versão Mínima de Criptografia e, em seguida, selecione Atualizar:

      • V2: Indica que a chave pode ser usada para gerar tokens de versão 2.0 e 3.0. Use esta opção somente se estiver em transição de uma chave de criptografia antiga versão 2.0 para uma chave de versão 3.0.
      • V3: (Recomendado) Indica que a chave só pode ser usada para gerar tokens de versão 3.0.

      Captura de tela da chave de instalação de autenticação de token da rede de distribuição de conteúdo.

    4. Use a ferramenta de criptografia para configurar os parâmetros de criptografia e gerar um token. Com a ferramenta de criptografia, você pode permitir ou negar as solicitações com base no tempo de expiração, no país, no referenciador, no protocolo e no IP do cliente (em qualquer combinação). Embora não haja nenhum limite para o número e a combinação de parâmetros que podem ser combinados para formar um token, o comprimento total de um token é limitado a 512 caracteres.

      Captura de tela da ferramenta de criptografia da rede de distribuição de conteúdo.

      Insira valores para um ou mais dos seguintes parâmetros de criptografia na seção da Ferramenta de Criptografia:

      Nome do parâmetro Descrição
      ec_expire Atribui um horário de expiração a um token, após o qual o token expira. Solicitações enviadas depois do horário expiração são negadas. Esse parâmetro usa um carimbo de data/hora do UNIX, que se baseia no número de segundos desde o tempo padrão do UNIX de `1/1/1970 00:00:00 GMT`. (Você pode usar ferramentas online para converter entre hora padrão e hora Unix.)

      Por exemplo, se você quiser que o token expire em 12/31/2016 12:00:00 GMT, use o valor de carimbo de data/hora Unix, 1483185600.

      ec_url_allow Permite personalizar tokens para determinado ativo ou caminho. Restringe o acesso às solicitações cuja URL começa com um caminho relativo específico. URLs diferenciam maiúsculas de minúsculas. Insira vários caminhos separando cada um com uma vírgula; não adicione espaços. Dependendo dos seus requisitos, você pode definir um valor diferente para fornecer um nível de acesso diferente.

      Por exemplo, para a URL http://www.mydomain.com/pictures/city/strasbourg.png, estas solicitações são permitidas para os seguintes valores de entrada:

      • Valor de entrada `/`: todas as solicitações são permitidas.
      • Valor de entrada `/pictures`, as seguintes solicitações são permitidas:
        • `http://www.mydomain.com/pictures.png`
        • `http://www.mydomain.com/pictures/city/strasbourg.png`
        • `http://www.mydomain.com/picturesnew/city/strasbourgh.png`
      • Valor de entrada '/pictures/': somente as solicitações que contêm o caminho '/pictures/' são permitidas. Por exemplo, `http://www.mydomain.com/pictures/city/strasbourg.png`.
      • Valor de entrada '/Pictures/City/strasbourg.png': somente as solicitações desse caminho e ativo específicos são permitidas.
      ec_country_allow Permite apenas solicitações originadas de um ou mais países/regiões especificados. As solicitações originadas em todos os outros países/regiões são negadas. Use um [código de país/região ISO 3166](/previous-versions/azure/mt761717(v=azure.100)) de duas letras´ para cada país/região e separe cada um com uma vírgula. Não adicione um espaço. Por exemplo, se você quiser permitir o acesso apenas do Estados Unidos e da França, digite `US,FR`.
      ec_country_deny Nega solicitações originadas de um ou mais países/regiões especificados. As solicitações originadas em todos os outros países/regiões são permitidas. A implementação é a mesma que a do parâmetro ec_country_allow. Se um código de país/região estiver presente nos parâmetros ec_country_allow e ec_country_deny, o parâmetro ec_country_allow terá precedência.
      ec_ref_allow Permite apenas solicitações do referenciador especificado. Um referenciador identifica a URL da página da Web vinculada ao recurso que está sendo solicitado. Não inclua o protocolo no valor do parâmetro.

      Os seguintes tipos de entrada são permitidos:

      • Um nome de host ou um nome de host e um caminho.
      • Vários referenciadores. Para adicionar vários referenciadores, separe cada um com uma vírgula; não adicione espaço. Se você especificar um valor de referenciador, mas as informações do referenciador não forem enviadas na solicitação devido à configuração do navegador, essas solicitações serão negadas por padrão.
      • Solicitações com informações do referenciador ausentes ou em branco. Por padrão, o parâmetro ec_ref_allow bloqueia esses tipos de solicitações. Para permitir essas solicitações, insira o texto "ausente" ou insira um valor em branco (usando uma vírgula no fim).
      • Subdomínios. Para permitir subdomínios, insira um asterisco (\*). Por exemplo, para permitir todos os subdomínios de `contoso.com`, insira `*.contoso.com`.

      Por exemplo, para permitir o acesso para solicitações de www.contoso.com, todos os subdomínios em contoso2.com e solicitações com referenciadores em branco ou ausentes, insira www.contoso.com,*.contoso.com,missing.

      ec_ref_deny Nega solicitações do referenciador especificado. A implementação é a mesma que a do parâmetro ec_ref_allow. Se houver uma referência presente nos parâmetros ec_ref_allow e ec_ref_deny, o parâmetro ec_ref_allow terá precedência.
      ec_proto_allow Permite apenas solicitações do protocolo especificado. Os valores válidos são `http`, `https` ou `http,https`.
      ec_proto_deny Nega solicitações do protocolo especificado. A implementação é a mesma que a do parâmetro ec_proto_allow. Se houver um protocolo presente nos parâmetros ec_proto_allow e ec_proto_deny, o parâmetro ec_proto_allow terá precedência.
      ec_clientip Restringe o acesso ao endereço IP do solicitante especificado. Há suporte para o protocolo IP versão 4 (IPv4) e o protocolo IP versão 6 (IPv6). Você pode especificar um único endereço IP de solicitação ou endereços IP associados a uma sub-rede específica. Por exemplo, `11.22.33.0/22` permite solicitações de endereços IP 11.22.32.1 a 11.22.35.254.
    5. Depois de terminar de inserir valores de parâmetro de criptografia, selecione uma chave para criptografar (caso tenha criado uma chave principal e uma chave de backup) da lista Chave a Criptografar.

    6. Selecione uma versão de criptografia na lista Versão de Criptografia: V2 para a versão 2 ou V3 para a versão 3 (recomendado).

    7. Selecione Criptografar para gerar o token.

      Depois que o token é gerado, ele será exibido na caixa Tokens Gerados. Para usar o token, acrescente-o como uma cadeia de consulta ao final do arquivo no caminho da sua URL. Por exemplo, http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b.

    8. Como opção, teste seu token com a ferramenta de descriptografia para que você possa exibir os parâmetros do token. Cole o valor do token na caixa Token a Descriptografar. Selecione a de chave de criptografia para usar na lista Chave a Descriptografar e, em seguida, selecione Descriptografar.

      Depois que o token for descriptografado, seus parâmetros são exibidos na caixa Parâmetros Originais.

    9. Opcionalmente, personalize o tipo de código de resposta retornado quando uma solicitação é negada. Selecione Habilitado, em seguida, selecione o código de resposta da lista Código de Resposta. Nome do Cabeçalho é definido automaticamente como Local. Selecione Salvar para implementar o novo código de resposta. Para determinados códigos de resposta, você também deve inserir o URL da sua página de erro na caixa Valor do Cabeçalho. O código de resposta 403 (Proibido) é selecionado por padrão.

  3. Em HTTP Grande, selecione Mecanismo de Regras. Use o mecanismo de regras para definir os caminhos para aplicar o recurso, habilitar o recurso de autenticação de token e habilitar recursos extras relacionados à autenticação de token. Para obter mais informações, consulte Referência do mecanismo de regras.

    1. Selecione uma regra existente ou crie uma nova regra para definir o ativo ou o caminho ao qual você deseja aplicar a autenticação de token.

    2. Para habilitar a autenticação de token em uma regra, selecione Autenticação de Token na lista Recursos e, em seguida, selecione Habilitado. Selecione Atualizar, ao atualizar uma regra ou Adicionar, ao criar uma regra.

      Captura de tela do exemplo de habilitação da autenticação de token do mecanismo de regras da rede de distribuição de conteúdo.

  4. Em Mecanismo de regras, você também pode habilitar mais recursos relacionados à autenticação de token. Para habilitar qualquer um dos recursos a seguir, selecione-o na lista Recursos e, em seguida, selecione Habilitado.

  5. Você pode personalizar seu token acessando o código-fonte no GitHub. Os idiomas disponíveis incluem:

    • C
    • C#
    • PHP
    • Perl
    • Java
    • Python

Recursos e preços do provedor da Rede de Distribuição de Conteúdo do Azure

Para obter informações sobre recursos, consulte Recursos do produto da Rede de Distribuição de Conteúdo do Azure. Para obter informações sobre preços, consulte preços de Rede de Distribuição de Conteúdo.