Protegendo ativos da Rede de Entrega de Conteúdo do Azure com autenticação de token
Importante
Este é um recurso da CDN Premium do Azure somente da Edgio , para configurar regras na CDN do Azure da Microsoft , use o mecanismo de regras padrão. As regras avançadas não estão disponíveis para a CDN do Azure da Akamai. Para obter uma comparação completa dos recursos da CDN, consulte Recursos do produto CDN do Azure.
Descrição geral
A autenticação de token é um mecanismo que permite impedir que a rede de entrega de conteúdo do Azure forneça ativos a clientes não autorizados. A autenticação de token geralmente é feita para evitar hotlinks de conteúdo, no qual um site diferente, como um quadro de mensagens, usa seus ativos sem permissão. O hotlinking pode ter um efeito nos seus custos de entrega de conteúdo. Quando você habilita a autenticação de token na rede de entrega de conteúdo, as solicitações são autenticadas pelo servidor de borda da rede de entrega de conteúdo antes que a rede de entrega de conteúdo entregue o conteúdo.
Como funciona
A autenticação de token verifica se as solicitações são geradas por um site confiável, exigindo que as solicitações contenham um valor de token que contenha informações codificadas sobre o solicitante. O conteúdo é servido 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 originárias dos países/regiões especificados pelo código de país/região.
- URL: permite apenas solicitações que correspondam ao ativo ou caminho especificado.
- Host: permita ou negue 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: permite apenas solicitações originadas de um endereço IP específico ou de uma sub-rede IP.
- Protocolo: Permitir ou negar solicitações com base no protocolo usado para solicitar o conteúdo.
- Tempo de expiração: atribua uma data e um período de tempo para garantir que um link permaneça válido apenas por um período de tempo limitado.
Para obter mais informações, consulte os exemplos de configuração detalhados para cada parâmetro em Configurando a autenticação de token.
Importante
Se a autorização de token estiver habilitada para qualquer caminho nessa conta, o modo de cache padrão será o único modo que pode ser usado para cache de cadeia de caracteres de consulta. Para obter mais informações, consulte Controlar o comportamento de cache da Rede de Entrega 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 entrega de conteúdo usa a autenticação de token para trabalhar com seu aplicativo Web.
Lógica de validação de token no ponto de extremidade da rede de entrega de conteúdo
O fluxograma a seguir descreve como a Rede de Entrega 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 entrega de conteúdo.
Configurando a autenticação de token
No portal do Azure, navegue até seu perfil de rede de entrega de conteúdo e selecione Gerenciar para iniciar o portal suplementar.
Passe o cursor sobre HTTP Grande e selecione Autenticação de token no submenu. Em seguida, você pode configurar a chave de criptografia e os parâmetros de criptografia da seguinte maneira:
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. Quaisquer outros tipos de caracteres, incluindo espaços, não são permitidos. O comprimento máximo é de 250 caracteres. Para garantir que suas 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 chave de backup. Uma chave de backup fornece acesso ininterrupto ao seu conteúdo quando a chave primária está sendo atualizada.
Insira uma chave de criptografia exclusiva na caixa Chave primária e, opcionalmente, insira uma chave de backup na caixa Chave de backup.
Selecione a versão mínima de criptografia para cada chave na lista Versão mínima de criptografia e, em seguida, selecione Atualizar:
- V2: Indica que a chave pode ser usada para gerar tokens das versões 2.0 e 3.0. Utilize esta opção apenas se estiver a fazer a transição de uma chave de encriptação herdada da versão 2.0 para uma chave da versão 3.0.
- V3: (Recomendado) Indica que a chave só pode ser usada para gerar tokens da versão 3.0.
Use a ferramenta de criptografia para configurar parâmetros de criptografia e gerar um token. Com a ferramenta de encriptação, pode permitir ou negar pedidos com base no tempo de expiração, país/região, referenciador, protocolo e IP do cliente (em qualquer combinação). Embora não haja 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.
Insira valores para um ou mais dos seguintes parâmetros de criptografia na seção Criptografar ferramenta :
Nome do parâmetro Description ec_expire Atribui um tempo de expiração a um token, após o qual o token expira. As solicitações enviadas após o tempo de expiração são negadas. Este parâmetro usa um carimbo de data/hora Unix, que é baseado no número de segundos desde a época padrão Unix de '1/1/1970 00:00:00 GMT'. (Você pode usar ferramentas on-line para converter entre o tempo padrão e o tempo Unix.) Por exemplo, se você quiser que o token expire em
12/31/2016 12:00:00 GMT
, insira o valor de carimbo de data/hora do Unix,1483185600
.ec_url_allow Permite que você adapte tokens a um determinado ativo ou caminho. Ele restringe o acesso a solicitações cujo URL começa com um caminho relativo específico. Os URLs diferenciam maiúsculas de minúsculas. Insira vários caminhos separando cada caminho com uma vírgula; Não adicione espaços. Dependendo de suas necessidades, você pode configurar valores diferentes para fornecer diferentes níveis de acesso. Por exemplo, para a URL
http://www.mydomain.com/pictures/city/strasbourg.png
, essas 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 solicitações contendo o caminho '/pictures/' são permitidas. Por exemplo, 'http://www.mydomain.com/pictures/city/strasbourg.png'.
- Valor de entrada '/pictures/city/strasbourg.png': Somente solicitações para esse caminho e ativo específicos são permitidas.
ec_country_allow Só permite pedidos provenientes de um ou mais países/regiões especificados. Os pedidos provenientes de todos os outros países/regiões são recusados. Use duas letras [código de país/região ISO 3166](/previous-versions/azure/mt761717(v=azure.100)) para cada país/região e separe cada uma delas com uma vírgula; Não adicione um espaço. Por exemplo, se você quiser permitir o acesso apenas dos Estados Unidos e da França, digite 'EUA,FR'. ec_country_deny Nega solicitações originárias de um ou mais países/regiões especificados. São permitidos pedidos provenientes de todos os outros países/regiões. A implementação é a mesma que o 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 Só permite 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. São permitidos os seguintes tipos de entrada:
- Um nome de host ou um nome de host e um caminho.
- Várias referências. Para adicionar várias referências, separe cada referenciador com uma vírgula; Não adicione um espaço. Se você especificar um valor de referência, mas as informações do referenciador não forem enviadas na solicitação devido à configuração do navegador, a solicitação será negada por padrão.
- Solicitações com informações de referência ausentes ou em branco. Por padrão, o parâmetro ec_ref_allow bloqueia esses tipos de solicitações. Para permitir essas solicitações, digite o texto "ausente" ou insira um valor em branco (usando uma vírgula à direita).
- Subdomínios. Para permitir subdomínios, insira um asterisco (\*). Por exemplo, para permitir todos os subdomínios de 'contoso.com', digite '*.contoso.com'.
Por exemplo, para permitir o acesso a solicitações de
www.contoso.com
, todos os subdomínios emcontoso2.com
, e solicitações com referências em branco ou ausentes, digitewww.contoso.com,*.contoso.com,missing
.ec_ref_deny Nega os pedidos do referenciador especificado. A implementação é a mesma que o parâmetro ec_ref_allow . Se um referenciador estiver presente nos parâmetros ec_ref_allow e ec_ref_deny , o parâmetro ec_ref_allow terá precedência. ec_proto_allow Só permite 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 o parâmetro ec_proto_allow . Se um protocolo estiver 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. O Protocolo Internet versão 4 (IPv4) e o Protocolo Internet versão 6 (IPv6) são suportados. 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. Depois de concluir a inserção dos valores dos parâmetros de criptografia, selecione uma chave para criptografar (se você tiver criado uma chave primária e uma chave de backup) na lista Chave para criptografar .
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).
Selecione Criptografar para gerar o token.
Depois que o token é gerado, ele é exibido na caixa Token gerado. Para usar o token, acrescente-o como uma cadeia de caracteres de consulta ao final do arquivo no caminho da URL. Por exemplo,
http://www.domain.com/content.mov?a4fbc3710fd3449a7c99986b
.Opcionalmente, teste o seu token com a ferramenta de desencriptação para que possa ver os parâmetros do seu token. Cole o valor do token na caixa Token para desencriptar . Selecione a chave de encriptação a utilizar na lista Chave para Desencriptar e, em seguida, selecione Desencriptar.
Depois que o token é descriptografado, seus parâmetros são exibidos na caixa Parâmetros originais .
Opcionalmente, personalize o tipo de código de resposta que é retornado quando uma solicitação é negada. Selecione Habilitado e, em seguida, selecione o código de resposta na lista Código de resposta. O Nome do Cabeçalho é automaticamente definido como Local. Selecione Salvar para implementar o novo código de resposta. Para determinados códigos de resposta, você também deve inserir a URL da página de erro na caixa Valor do cabeçalho. O código de resposta 403 (Proibido) é selecionado por padrão.
Em HTTP Grande, selecione Mecanismo de regras. Use o mecanismo de regras para definir caminhos para aplicar o recurso, habilitar o recurso de autenticação de token e habilitar recursos adicionais relacionados à autenticação de token. Para obter mais informações, consulte Referência do mecanismo de regras.
Selecione uma regra existente ou crie uma nova regra para definir o ativo ou caminho ao qual você deseja aplicar a autenticação de token.
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 se estiver atualizando uma regra ou Adicionar se estiver criando uma regra.
No mecanismo de regras, você também pode habilitar mais recursos relacionados à autenticação de token. Para ativar qualquer um dos seguintes recursos, selecione-o na lista Recursos e, em seguida, selecione Habilitado.
Código de negação de autenticação de token: determina o tipo de resposta que é retornada a um usuário quando uma solicitação é negada. As regras definidas aqui substituem o código de resposta definido na seção Tratamento de negação personalizado na página de autenticação baseada em token.
Token Auth Ignore URL Case: Determina se a URL usada para validar o token diferencia maiúsculas de minúsculas.
Parâmetro de autenticação de token: renomeia o parâmetro de cadeia de caracteres de consulta de autenticação de token que aparece na URL solicitada.
Você pode personalizar seu token acessando o código-fonte no GitHub. Os idiomas disponíveis incluem:
- C
- C#
- PHP
- Perl
- Java
- Python
Recursos da Rede de Entrega de Conteúdo do Azure e preços do provedor
Para obter informações sobre recursos, consulte Recursos do produto Azure Content Delivery Network. Para obter informações sobre preços, consulte Preços da Rede de Distribuição de Conteúdo.