1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

Configure um paywall com Edge Function JWT

Edit on GitHub

Edge Function JWT é uma função serverless da plataforma de Edge Computing da Azion para processamento e validação de tokens JWT (JSON Web Token) que pode ser empregada na construção de soluções de paywall para controle de acesso a conteúdos por meio de subscrição.

Com isso, a aplicação identifica diretamente no Edge se a pessoa que tenta acessar determinada página já foi previamente autenticada ou não, otimizando a operação e diminuindo a carga de processamento do lado da infraestrutura do cliente.

Algumas outras vantagens da Edge Function JWT:

  1. flexibilidade para o cliente desenvolver aplicações;
  2. infraestrutura de Edge Nodes distribuídos para processamento de tokens; e
  3. possibilidade de executar regras de negócio no Edge.

Como funciona

Na implementação de Paywall com JWT, 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 e expiração de um 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.), a quantidade de acessos ou de bytes transferidos pelo cliente antes de solicitar o login e o tempo de navegação sem exigir nova autorização (expiração).

O token segue um padrão de mercado para autenticação HTTP, o esquema bearer authentication, no qual ele armazena objetos JSON com informações que permitem a autenticação da requisição, e deve ser adicionado ao header de toda solicitação que transitar pelo Edge.

Edge Function JWT: executa em cada requisição recebida a validação do token gerado pela aplicação e enviado pelo usuário. A function segue as regras de negócio definidas no token, podendo 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 JWT

Edge Function JWT 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 Libraries.

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 Services > Edge Applications > 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 JWT. Note que o código da função aparecerá no campo Code apenas para leitura e entendimento. Na aba Args, informe a lista de pares de KIDs (key IDs) e chaves secretas utilizadas para geração da assinatura do token – vide exemplo abaixo – e salve a função. A lista de pares está definida em sua aplicação de origem.

[{
  “kids”: {
    “4546D4AA7F62F01A833A7ABE354030E7": “D6CB2342E44EFB6DD628276F36DA2359”,
    “D6CB2342E44EFB6DD628276F36DA2359": “60BD8ED7A768E8BD6925BEB0A691AADB”,
    “60BD8ED7A768E8BD6925BEB0A691AADB”: “4546D4AA7F62F01A833A7ABE354030E7”
  }
}]

Exemplo de configuração dos parâmetros JSON Args

Definindo critérios de execução (Rules Engine)

Caminho: Real-Time Manager > Edge Services > Edge Applications > 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 /news (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 “/news”.

Definindo comportamentos (behaviors): adicione os comportamentos que deseja executar caso as condições da regra sejam satisfeitas. Exemplo:

  • Then: Run Function MyJwtFunction (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 MyJwtFunction

Código de erro retornado: se o token recebido for inválido, a function retornará um HTTP status code 400 ou 401, 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.