Como utilizar a solution Secure Token através do Marketplace da Azion
Visão geral
A Azion Secure Token é uma solution serverless disponível no Azion Marketplace.
Com a ajuda da solution Secure Token da Azion, você pode criar URLs por tempo limitado baseadas em token. A criação e validação de assinaturas para cookies, cabeçalhos de autenticação e outras medidas de segurança podem ser feitas usando esses tokens, que podem ser alterados de várias maneiras. Utilizando tanto o HLS quanto o Progressive Download, a solution é frequentemente usada para proteger ativos de vídeo, incluindo aqueles usados para transmissão ao vivo e conteúdo sob demanda.
1. Obtendo a solution
Para usar a solution Secure Token fornecida pelo Marketplace da Azion, você deverá seguir os seguintes passos:
- Faça login na sua conta do Real-Time Manager (RTM).
- Se você ainda não tiver uma, crie-a visitando a página de registro.
- No canto superior esquerdo da página, selecione Products menu > Marketplace.
- Selecione a caixa de pesquisa e digite “secure token” ou navegue pelos cards para encontrar a solution Secure Token.
- Depois de encontrar o card de Secure Token, selecione-o para ir para a página da solution.
- Na página da solution, procure a seção Subscribe for no canto inferior direito.
- Clique no botão Get it now.
Você verá uma mensagem indicando que sua solution foi instalada com sucesso e está pronta para uso.
2. Gerando o token
Para usar esta solution, você terá que gerar um token. Para fazer isso, siga estes passos:
- Vá para o repositório Secure Token da Azion no GitHub.
- Nele você encontrará uma breve explicação sobre como o secure token é gerado e como usá-lo.
- No repositório, você encontrará dois scripts de exemplo para gerar os tokens, um em
Python
e outro emPHP
. Você pode executá-los localmente e gerar o token ou pode gerar esses tokens em sua própria plataforma com seu próprio código. - Salve o token gerado, qualquer que seja a maneira como você utilizou para gerá-lo.
Nota: usando o script Python como exemplo, você terá o seguinte código-fonte:
#!/usr/bin/env python
import base64
import hashlib
secret = 'mysecret'
uri = '/my/uri'
expire = '1470055000'
md5 = hashlib.md5()
md5.update(secret + uri + expire)
token = base64.b64encode(md5.digest()).replace('=','').replace('+','-').replace('/','_')
print 'http://www.example.org%s?st=%s&e=%s' % (uri, token, expire)
Where:
secret
= uma string de sua escolha que será usada para gerar o token.uri
= a URI que será usada com o token.expire
= o tempo de expiração do token.
3. Usando a solution
3.1 Configurando uma regra no Edge Firewall
Para instanciar a solution Secure Token, siga as etapas:
- No Products menu, selecione Edge Firewall na seção SECURE.
- Clique no botão Add Rule Set.
- Dê um nome fácil de lembrar à sua nova regra.
- Selecione os domínios que deseja proteger com a função.
- Habilite o switch para Edge Functions.
- Clique no botão Save.
Pronto. Agora você instanciou a regra para sua função.
3.2 Configurando a solution
Para instanciar a solution Secure Token, enquanto ainda estiver na página do Edge Firewall, selecione a aba Functions e siga estes passos:
- Clique no botão Add Function.
- Dê um nome fácil de lembrar à sua instância.
- No menu suspenso, selecione a função Secure Token.
Esta ação carregará a função, mostrando um formulário com o código-fonte da função e, logo acima dele, duas abas: Code e Args. Ao clicar na aba Code, você poderá navegar pelo código, mas não alterá-lo. No mesmo formulário, você tem outra aba: Args.
Na aba Args, você passará o secret
que foi usado para gerar o token.
A aba Args carregará um arquivo JSON que se parece com o mostrado abaixo:
{
"secure_token_secret": "thatisthesecret"
}
Onde o secure_token_secret
será a string secreta que você passou no código ao gerar o token na etapa anterior.
Clique no botão Save e pronto. Sua solution Secure Token foi instanciada.
4. Configurando o Rules Engine
Para concluir, você precisa configurar o Rules Engine para determinar o behavior e os criteria para executar a função.
Ainda na página Edge Firewall, selecione a aba Rules Engine e siga estas etapas:
- Clique no botão New Rule.
- Dê um nome fácil de se lembrar para a regra.
- Selecione um *criteria *para executar a solution. Por exemplo:
if Hostname is equal xxxxxxxxxxxx.map.azionedge.net/classes
. - Abaixo, selecione um behavior para os criteria. Neste caso, será Run Function.
- Em seguida, selecione a função Secure Token de acordo com o nome que você deu a ela na etapa instanciada.
- Clique no botão Save.
Pronto. Agora, a solution Secure Token está em execução para cada solicitação feita ao domínio que você indicou.
Importante: o servidor Azion Nginx, sendo executado no edge, roda duas verificações em tokens: se o tempo atual é maior que o tempo de expiração especificado no token e se a assinatura corresponde à assinatura do token. Se a assinatura for inválida, o Nginx retornará um erro 403 e, se o tempo de expiração for excedido, retornará um erro 410. Usuários mal-intencionados não podem alterar o tempo de expiração do token sem quebrar a assinatura.
Você pode encontrar alguns exemplos de trechos de código no repositório público GitHub da Azion para a solution Secure Token e você pode ler um caso de uso para esta solution na página de documentação da Azion.
Não encontrou o que procurava? Abra um ticket.