Instale a integração Secure Token
Instale Secure Token pelo Azion Marketplace e execute-a em um firewall, para que apenas requisições com um token válido e não expirado cheguem ao seu conteúdo.
Você instala a integração Secure Token pelo Azion Marketplace e a executa em um Firewall, pelo Azion Console. Secure Token protege seu conteúdo com URLs baseadas em token e com tempo limitado. Você pode usar os tokens para criar e validar assinaturas de cookies, cabeçalhos de autenticação e outras medidas de segurança. Um uso comum é proteger ativos de vídeo para transmissão ao vivo e conteúdo sob demanda, entregues por HLS ou Progressive Download.
Cinco objetos precisam existir antes que um token seja verificado: a function instalada, um firewall com o módulo Functions, uma function instance com os argumentos, uma regra do Rules Engine com o behavior Run Function e um deployment do workload vinculado ao firewall. Cada seção abaixo cria um deles.
Pré-requisitos
- Uma conta Azion. Para entrar, consulte Como acessar o Azion Console.
- Uma application servida por um workload, cujo deployment você vincula ao firewall na última seção.
- Uma forma de gerar tokens: os scripts de exemplo do repositório Secure Token da Azion ou seu próprio código. As próximas seções mostram como.
- A Azion CLI instalada e autorizada, para a última seção.
- Ativar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte Preços.
Instale a integração
A function é instalada uma vez por conta. Para instalá-la:
Acesse Azion Console > Marketplace.
Digite Secure Token no campo Search on Marketplace e selecione o card da integração. Navegar pelos cards e pelas categorias leva à mesma página.
O card mostra Successfully installed! e Latest version installed!, e a function aparece na lista Function do drawer Create Instance.
Gere o token
A function valida tokens que você gera com um segredo de sua escolha. Você os gera fora da Azion e depois os adiciona às URLs que compartilha. Para gerar um token:
Acesse o repositório Secure Token da Azion no GitHub. O repositório explica como o token é gerado e como usá-lo, e contém exemplos de trechos de código.
O repositório tem dois scripts de exemplo que geram tokens: um script Python e um script PHP. Execute um deles localmente ou gere os tokens na sua própria plataforma com seu próprio código.
Guarde o token gerado, qualquer que seja a forma como você o gerou.
O script Python tem este código-fonte:
| Variável | Descrição |
|---|---|
secret | Uma string de sua escolha que gera o token |
uri | A URI que usa o token |
expire | O tempo de expiração do token |
Guarde o valor de secret. A function instance o recebe como argumento.
Crie o firewall
O firewall é onde a function é instanciada e onde fica a regra que a executa. Para criar um:
Acesse Azion Console > Firewalls e crie um firewall.
Na seção General, digite um Name. Por exemplo: secure-token-firewall.
Na seção Modules, ative o switch Functions.
O firewall mostra uma aba Functions Instances enquanto o módulo Functions estiver ativado. Para usar um firewall existente, ative o módulo Functions dele e salve-o. Para conhecer cada configuração deste formulário, consulte Defina as configurações principais de um firewall.
Crie a function instance
A instância guarda o segredo que a function usa para validar cada token. Para criá-la:
Em Firewalls, selecione seu firewall e selecione a aba Functions Instances.
Um firewall que não tem instância mostra a mesma ação como Function Instance. O drawer Create Instance abre.
Em Name, digite um nome. Por exemplo: secure-token.
Em Function, selecione a function Secure Token. A lista contém apenas as functions que executam em um firewall.
Em Arguments, o editor vem preenchido com os argumentos padrão da integração em JSON. Digite seu segredo, como a próxima seção descreve.
A instância aparece na aba Functions Instances.
Argumentos
A instância recebe um argumento:
| Variável | Descrição |
|---|---|
secure_token_secret | A string secreta que você passou no código ao gerar o token |
Crie a regra
A instância não verifica nada até que uma regra a execute. Uma regra do Rules Engine para Firewall seleciona as requisições que chegam à instância, por meio de um behavior Run Function. Para criar a regra:
Em Firewalls, selecione seu firewall e selecione a aba Rules Engine.
Em Name, digite um nome. Por exemplo: Run Secure Token.
Na seção Criteria, selecione os domínios que executam a integração. Por exemplo: if Host matches yourdomain.com.
Na seção Behaviors, selecione Run Function e selecione a instância pelo nome que você deu a ela.
O firewall executa a instância em cada requisição ao domínio do critério.
Vincule o firewall ao workload
O vínculo fica no deployment do workload, então crie um deployment que indique tanto a application quanto o firewall:
O comando imprime o id do novo deployment:
As requisições ao domínio do workload chegam ao firewall, e a regra executa a instância de Secure Token em cada uma delas.
Como funciona
A function faz duas verificações em cada token: se o horário atual é maior que o tempo de expiração do token e se a assinatura corresponde à assinatura do token.
- Se a assinatura é inválida, a function retorna um erro
403. - Se o tempo de expiração foi ultrapassado, a function retorna um erro
410.
Um usuário não consegue alterar o tempo de expiração de um token sem quebrar a assinatura.