Proteja conteúdo restrito contra acessos indevidos com Azion Secure Token
Azion Secure Token é uma função serverless da plataforma de Edge Computing da Azion para o processamento e validação de tokens que pode ser empregada no controle de acesso a conteúdos restritos ou personalizados, tais como aulas, vídeos e imagens.
Embora o acesso a esses conteúdos se dê por meio de interfaces que exigem autenticação de usuário, é possível visualizar esses arquivos diretamente via sua URL, daí a facilidade de compartilhamento. Com a implementação da Edge Function Secure Token, mesmo que uma URL seja compartilhada, o acesso é concedido somente após a validação do token.
Algumas outras vantagens da Edge Function Secure Token:
- flexibilidade para o cliente desenvolver aplicações;
- infraestrutura de Edge Nodes distribuídos para processamento de tokens; e
- possibilidade de executar regras de negócio no Edge.
Como funciona
Na implementação de controle de acesso com Secure Token, a aplicação de origem e a function no Edge cumprem funções distintas:
Aplicação de origem: encarrega-se de especificar uma lógica para geração do token e, também, definir a maneira como os acessos dos usuários serão controlados – por exemplo, qual o método de autenticação (OAUTH, OpenID Connect, etc.).
O token representa um hash da URL do conteúdo sendo requisitado, contendo um período de validade do próprio token e uma chave secreta (Secret).
Veja exemplos de códigos de geração de Secure Token no Github para mais referências: https://github.com/aziontech/secure_token.
Edge Function Secure Token: executa em cada requisição recebida a validação do token gerado pela aplicação e enviado pelo usuário. Caso o token esteja expirado, a Secret não esteja correta ou o token não seja válido para a URL solicitada, o acesso ao conteúdo será negado.
É possível, ainda, combiná-la com outros elementos no Edge para definir o comportamento a ser adotado (autorizar o acesso ou encaminhar para a aplicação, usualmente uma página de login/sign-up).
Configurando a Function Secure Token
Edge Function Secure Token está disponível na biblioteca de functions da plataforma de Edge Computing da Azion e pode ser acessada pelo Real-Time Manager (RTM), no menu Edge Computing.
Para execução da function, ela tem de ser instanciada no Edge Application em que se deseja trabalhar e ter seus critérios de ativação e comportamentos definidos dentro do Rules Engine, conforme as estratégias já configuradas na aplicação de origem (ex.: proprietária com OAuth, OpenID, etc., ou de mercado, como Auth0, Keycloak, etc.).
Criando uma instância
Caminho: Real-Time Manager > Edge Computing > Edge Application > Functions.
A partir do RTM, acesse a Edge Application que irá rodar a sua function e, dentro da aba Functions, adicione outra function, desta vez declarando um nome significativo para ela.
Parâmetros: é necessário selecionar a function de sua instância; no caso, escolha Secure Token. Note que o código da função aparecerá no campo Code apenas para leitura e entendimento. Na aba Args, informe a chave secreta utilizada para geração da assinatura do token – vide exemplo abaixo – e salve a função.
{
"secure_token_secret": "mysecretkey"
}
Exemplo de configuração dos parâmetros JSON Args
Definindo critérios de execução (Rules Engine)
Caminho: Real-Time Manager > Edge Computing > Edge Application > Rules Engine.
As regras (ou Rule Engines) determinam o conjunto de condições que precisam ser atendidas para a execução dos Behaviors. Você pode utilizar a Default Rule ou criar uma nova regra a fim de configurar os parâmetros de validação e os comportamentos para execução de sua function pela Edge Application.
Definindo critérios de validação (criteria): escolha as variáveis, operadores de comparação e strings para construção de sua regra de negócio, como no exemplo a seguir:
- If: ${uri} starts with /classes (na sequência: operador lógico, variável, operador de comparação, string)
Aqui a regra é executada se a URI acessada iniciar com a string “/classes”.
Definindo comportamentos (behaviors): adicione os comportamentos que deseja executar caso as condições da regra sejam satisfeitas. Exemplo:
- Then: Run Function MySecureToken (na sequência: operador lógico, ação, função)
Nesse exemplo, se as condições definidas nas regras forem satisfeitas, então será executada a function MySecureToken.
Código de erro retornado: se o token recebido for inválido, a function retornará um HTTP status code 403 ou 410, dependendo do erro encontrado.
Por fim, salve a sua Edge Application, e esta já estará pronta para executar a nova function.
Não encontrou o que procurava? Abra um ticket.