As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciar a expiração e o armazenamento em cache do token do grupo de usuários
Sua aplicação deve concluir com êxito uma das solicitações a seguir sempre que você quiser obter um novo token web JSON (JWT).
-
Solicite as credenciais do cliente ou a concessão
do código de autorização do Endpoint de token. -
Solicite uma concessão implícita em suas páginas de login gerenciadas.
-
Autentique um usuário local em uma solicitação da API do Amazon Cognito, como. InitiateAuth
Você pode configurar o grupo de usuários para definir que os tokens expirem em minutos, horas ou dias. Para garantir a performance e a disponibilidade da aplicação, use os tokens do Amazon Cognito por cerca 75% da vida útil do token, e só então recupere novos tokens. Uma solução de cache que você cria para a aplicação mantém os tokens disponíveis e evita a rejeição de solicitações do Amazon Cognito quando a taxa de solicitação é muito alta. Uma aplicação do lado do cliente deve armazenar tokens em um cache de memória. Uma aplicação do lado do servidor pode adicionar um mecanismo de cache criptografado para armazenar tokens.
Quando seu grupo de usuários gera um grande volume de usuários ou machine-to-machine atividades, você pode encontrar os limites que o Amazon Cognito define para o número de solicitações de tokens que você pode fazer. Para reduzir o número de solicitações realizadas aos endpoints do Amazon Cognito, você pode armazenar e reutilizar dados de autenticação com segurança ou implementar recuos exponenciais e novas tentativas.
Os dados de autenticação originam-se de duas classes de endpoints. Os endpoints do Amazon Cognito OAuth 2.0 incluem o endpoint de token, que atende às credenciais do cliente e às solicitações gerenciadas de código de autorização de login. Os endpoints de serviço respondem a solicitações da API de grupos de usuários, como InitiateAuth
e RespondToAuthChallenge
. Cada tipo de solicitação tem seu próprio limite. Para obter mais informações sobre limites, consulte Cotas no Amazon Cognito.
Armazenando tokens de machine-to-machine acesso em cache com o Amazon API Gateway
Com o armazenamento em cache de tokens do API Gateway, seu aplicativo pode ser escalado em resposta a eventos maiores do que a cota padrão da taxa de solicitação dos endpoints do Amazon OAuth Cognito.

É possível armazenar os tokens de acesso em cache para que a aplicação solicite apenas um novo token de acesso se o token armazenado em cache expirar. Do contrário, o armazenamento do endpoint em cache retornará um token do cache. Isso evita uma chamada adicional para um endpoint da API do Amazon Cognito. Quando você usa o Amazon API Gateway como um proxy para o Endpoint de token, a API responde à maioria das solicitações que, de outra forma, contribuiriam para sua cota de solicitações, evitando solicitações malsucedidas em decorrência da limitação da taxa.
A solução baseada no API Gateway a seguir oferece uma implementação de cache de tokens de baixa latência e pouco uso de código/nenhum código. O API Gateway APIs é criptografado em trânsito e, opcionalmente, em repouso. Um cache do API Gateway é ideal para a concessão de credenciais de cliente OAuth 2.0, um tipo de concessão
Nessa solução, você define um cache na sua API para armazenar um token de acesso separado para cada combinação de OAuth escopos e cliente de aplicativo que você deseja solicitar em seu aplicativo. Quando a aplicação faz uma solicitação correspondente à chave de cache, a API responde com um token de acesso que o Amazon Cognito emitiu para a primeira solicitação correspondente à chave de cache. Quando a duração da chave de cache expira, a API encaminha a solicitação ao endpoint do token e armazena em cache um novo token de acesso.
nota
A duração da chave de cache deve ser menor do que a duração do token de acesso do cliente da aplicação.
A chave de cache é uma combinação dos OAuth escopos que você solicita no scope
parâmetro no corpo da solicitação e no Authorization
cabeçalho da solicitação. O cabeçalho Authorization
contém o ID do cliente da aplicação e o respectivo segredo. Você não precisa implementar lógica adicional na aplicação para implementar essa solução. Você só deve atualizar sua configuração para alterar o caminho para o endpoint do token do grupo de usuários.
Você também pode implementar o armazenamento em cache de tokens com ElastiCache (Redis OSS). Para um controle detalhado com políticas do AWS Identity and Access Management (IAM), considere um cache do Amazon DynamoDB.
nota
O armazenamento em cache no API Gateway está sujeito a um custo adicional. Para obter mais detalhes, consulte a definição de preço.
Como configurar um proxy de armazenamento em cache com o API Gateway
-
Abra o console do API Gateway
e crie uma API REST. -
Em Resources (Recursos), crie um método POST.
-
Selecione o integration type (tipo de integração) HTTP.
-
Selecione Use HTTP proxy integration (Usar integração de proxy HTTP).
-
Digite um Endpoint URL (URL de endpoint) do
https://
.<your user pool domain>
/oauth2/token
-
-
Em Resources (Recursos), configure a chave de cache.
-
Edite a Method request (Solicitação de método) do método POST.
-
Defina o parâmetro
scope
e o cabeçalhoAuthorization
como sua chave de armazenamento em cache.-
Adicione uma string de consulta aos URL query string parameters (parâmetros de string de consulta de URL) e selecione Caching (Armazenamento em cache) para a string
scope
. -
Adicione um cabeçalho aos HTTP request headers (Cabeçalhos de solicitação HTTP) e selecione Caching (Armazenamento em cache) para o cabeçalho
Authorization
.
-
-
-
Em Stages (Estágios), configure o armazenamento em cache.
-
Escolha o estágio que você deseja modificar e escolha Editar em Detalhes do estágio.
-
Em Configurações adicionais, Configurações de cache, ative a opção de cache da Provision API.
-
Selecione uma Cache capacity (Capacidade de cache). A maior capacidade de cache melhora o desempenho, mas tem um custo adicional.
-
Desmarque a caixa de seleção Exigir autorização. Selecione Continuar.
-
O API Gateway só aplica políticas de cache aos métodos GET do nível do estágio. Você deve aplicar uma substituição de política de cache ao seu método POST.
Expanda o estágio que você configurou e selecione o
POST
método. Para criar configurações de cache para o método, escolha Criar substituição. -
Ative a opção Ativar cache do método.
-
Insira um cache time-to-live (TTL) de 3600 segundos. Escolha Salvar.
-
-
Em Stages (Estágios), anote o Invoke URL (URL de invocação).
-
Atualize a aplicação para solicitações de token POST para o Invoke URL (URL de invocação) de sua API em vez do endpoint
/oauth2/token
do grupo de usuários.