Configure um paywall com a função JWT
Valide um JSON Web Token em cada requisição a conteúdo restrito e controle o acesso por assinatura com a função JWT do Azion Marketplace.
Um paywall construído com a função JWT tem duas partes: uma instância de função que valida o token e uma regra do Rules Engine que executa a instância no conteúdo que você restringe. A função JWT é uma solução serverless disponível no Azion Marketplace.
A aplicação de origem gera o token e define sua expiração. Ela também determina como o acesso é controlado:
- O método de autenticação, como OAuth, OpenID Connect, Auth0 ou Keycloak.
- O número de tentativas de acesso ou de bytes que um visitante consome antes de precisar fazer login.
- Por quanto tempo um visitante navega sem autorização adicional.
O token segue o Bearer Authentication Scheme, o padrão de autenticação HTTP. Cada requisição carrega no cabeçalho um objeto JSON com as informações de autenticação.
A função JWT valida esse token em cada requisição que a aplicação recebe. Ela segue as regras de negócio definidas no token e essas regras se combinam com os critérios que você define no Rules Engine. O resultado determina o comportamento aplicado: a requisição alcança o conteúdo ou vai para a página de login da aplicação de origem. A validação acontece antes de a requisição chegar à origem, então a origem não processa uma requisição não autorizada.
Pré-requisitos
- Uma aplicação. Para criar uma, consulte Primeiros passos com Applications.
- A função JWT instalada na conta. Para instalar, consulte Use a integração JWT no Azion Marketplace.
- A lista de pares de KID e chave secreta que a aplicação de origem usa para assinar o token.
Instancie a função JWT na aplicação
Uma aplicação executa uma função por meio de uma instância de função e a instância carrega os Args passados para o contexto de execução. Para o procedimento completo em Azion Console e na Azion API, consulte Instancie uma função em uma aplicação.
O formulário da instância mostra o código-fonte da função no campo Code. Esse campo é informativo e você não pode alterá-lo. A aba Args recebe a lista de pares de KID (key ID) e chave secreta que geram a assinatura do token.
A aplicação de origem define os pares. Para passá-los para a instância:
Insira os pares neste formato:
A instância aparece na aba Functions Instances da aplicação. Ela não é executada até que uma regra do Rules Engine a selecione.
Adicione a regra que executa a função
Uma regra define as condições que uma requisição atende para que seus comportamentos sejam executados. Um critério é formado por operador lógico, variável, operador de comparação e string. Um comportamento é formado por operador lógico, ação e função. O comportamento que executa a função vai na Default Rule da aplicação ou em uma regra que você criar. Ajuste os critérios aos caminhos que você vende por assinatura e à autenticação que a aplicação de origem já usa.
Para colocar o comportamento em uma nova regra:
Acesse Azion Console > Applications > sua aplicação.
Insira um nome para a regra. Por exemplo: Paywall on news.
Na seção Criteria, selecione a variável ${uri}.
Insira /news como string. O critério fica If ${uri} starts with /news.
Selecione a instância que você nomeou ao instanciar a função.
A regra executa a função JWT em toda requisição cuja URI começa com /news. Novas regras podem levar alguns minutos para propagar.