Como usar a autenticação adaptável - Amazon Cognito

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á.

Como usar a autenticação adaptável

Com a autenticação adaptável, você pode configurar o grupo de usuários para bloquear logins suspeitos ou exigir a autenticação de segundo fator em resposta a um aumento no nível de risco. Para cada tentativa de login, o Amazon Cognito gera uma pontuação de risco para a probabilidade da solicitação de login ser de uma fonte comprometida. Essa pontuação de risco é baseada em fatores que incluem informações do dispositivo e do usuário. A autenticação adaptativa pode ativar ou exigir a autenticação multifator (MFA) para um usuário em seu grupo de usuários quando o Amazon Cognito detecta riscos na sessão de um usuário e o usuário ainda não selecionou um método de MFA. Quando você ativa a MFA para um usuário, ele sempre recebe o desafio de fornecer ou configurar um segundo fator durante a autenticação, independentemente de como você configurou a autenticação adaptativa. Do ponto de vista do usuário, a aplicação oferece ajuda para configurar a MFA e, opcionalmente, o Amazon Cognito impede que ele faça login novamente até que tenha configurado um fator adicional.

O Amazon Cognito publica tentativas de login, seus níveis de risco e desafios fracassados para a Amazon. CloudWatch Para ter mais informações, consulte Como exibir métricas de segurança avançada.

Para adicionar autenticação adaptável ao grupo de usuários, consulte Como adicionar segurança avançada a um grupo de usuários.

Visão geral da autenticação adaptável

Na guia Segurança avançada no console do Amazon Cognito, você pode escolher configurações para autenticação adaptativa, incluindo as ações a serem tomadas em diferentes níveis de risco e a personalização das mensagens de notificação para os usuários. É possível atribuir uma configuração de segurança avançada global a todos os seus clientes de aplicações, mas aplicar uma configuração em nível de cliente a clientes de aplicações individuais.

A autenticação adaptativa do Amazon Cognito atribui um dos seguintes níveis de risco a cada sessão do usuário: Alto, Médio, Baixo ou Sem risco.

Considere suas opções com cuidado ao alterar seu Enforcement method (método de aplicação) de Audit-only (Somente auditoria) para Full-function (Função completa). As respostas automáticas que você aplica aos níveis de risco influenciam o nível de risco que o Amazon Cognito atribui às sessões de usuário subsequentes com as mesmas características. Por exemplo, depois de optar por não realizar nenhuma ação ou permitir (Allow) sessões de usuário que o Amazon Cognito inicialmente avalia como de alto risco, o Amazon Cognito considera que sessões semelhantes têm um risco menor.

Para cada nível de risco, você pode escolher as seguintes opções:

Opção

Ação

Permitir Os usuários podem fazer login sem um fator adicional.
MFA opcional Os usuários que tiverem um segundo fator configurado deverão concluir um segundo desafio de fator para fazer login. Um número de telefone para SMS e um token de software TOTP são o segundo fator disponível. Usuários sem um segundo fator configurado podem fazer login apenas com um conjunto de credenciais.
Solicitar MFA Os usuários que tiverem um segundo fator configurado deverão concluir um segundo desafio de fator para fazer login. O Amazon Cognito bloqueia o login para usuários que não têm um segundo fator configurado.
Bloquear O Amazon Cognito bloqueia todas as tentativas de login no nível de risco designado.
nota

Não é necessário confirmar os números de telefone para usá-los para SMS como segundo fator de autenticação.

Adicionar dados de sessão e dispositivo do usuário a solicitações de API

Você pode coletar e transmitir informações sobre a sessão do usuário à segurança avançada do Amazon Cognito ao usar a API para inscrevê-lo, fazer seu login e redefinir sua senha. Essas informações incluem o endereço IP do usuário e um identificador de dispositivo exclusivo.

É possível ter um dispositivo de rede intermediário entre seus usuários e o Amazon Cognito, como um serviço proxy ou um servidor de aplicações. Você pode coletar dados de contexto dos usuários e transmiti-los ao Amazon Cognito para que a autenticação adaptativa calcule seu risco com base nas características do endpoint do usuário, em vez de seu servidor ou proxy. Se a aplicação do lado do cliente chamar as operações da API do Amazon Cognito diretamente, a autenticação adaptativa registrará automaticamente o endereço IP de origem. No entanto, outras informações sobre o dispositivo não serão registradas, como o user-agent, a menos que você também colha uma impressão digital do dispositivo.

Gere esses dados com a biblioteca de coleta de dados de contexto do Amazon Cognito e envie-os para a segurança avançada do Amazon Cognito com ContextDataos parâmetros e. UserContextData A biblioteca de coleta de dados de contexto está incluída nos AWS SDKs. Para obter mais informações, consulte Como integrar o Amazon Cognito a aplicações Web e móveis. Você poderá enviar ContextData se tiver ativado recursos de segurança avançada em seu grupo de usuários. Para obter mais informações, consulte Configurar recursos de segurança avançada.

Ao chamar essas operações de API autenticadas do Amazon Cognito do seu servidor de aplicações, transmita o IP do dispositivo do usuário no parâmetro ContextData. Além disso, transmita o nome e o caminho do servidor, bem como os dados de impressão digital do dispositivo codificado.

Ao chamar as operações de API não autenticadas do Amazon Cognito, você pode enviar UserContextData aos recursos de segurança avançada do Amazon Cognito. Esses dados incluem uma impressão digital do dispositivo no parâmetro EncodedData. Você também pode enviar um parâmetro IpAddress em UserContextData se atender às seguintes condições:

Sua aplicação pode preencher o parâmetro UserContextData com dados codificados de impressão digital e o endereço IP do dispositivo do usuário nestas operações de API não autenticadas do Amazon Cognito.

Aceitar dados de contexto do usuário adicionais (AWS Management Console)

Seu grupo de usuários aceita um endereço IP em um parâmetro UserContextData depois que você ativa o recurso Accept additional user context data (Aceitar dados de contexto do usuário adicionais). Não será necessário ativar esse recurso se:

  • Seus usuários só fazem login com operações de API autenticadas AdminInitiateAuth , como, e você usa o ContextData parâmetro.

  • Você quiser que suas operações de API não autenticadas só enviem uma impressão digital do dispositivo, mas não um endereço IP, aos recursos de segurança avançada do Amazon Cognito.

Atualize o cliente da aplicação da maneira a seguir no console do Amazon Cognito para adicionar suporte para dados de contexto do usuário adicionais.

  1. Faça login no console do Amazon Cognito.

  2. No painel de navegação, selecione Manage your User Pools e escolha o grupo de usuários que você deseja editar.

  3. Escolha a guia Integração do aplicativo ().

  4. Em App clients and analytics (Clientes da aplicação e análise), escolha ou crie um cliente da aplicação. Para obter mais informações, consulte Configurar um cliente da aplicação do grupo de usuários.

  5. Escolha Edit (Editar) no contêiner App client information (Informações do cliente da aplicação).

  6. Em Advanced authentication settings (Configurações de autenticação avançada) do cliente da aplicação, escolha Accept additional user context data (Aceitar dados de contexto do usuário adicionais).

  7. Escolha Salvar alterações.

Para configurar seu cliente de aplicativo para aceitar dados de contexto do usuário na API do Amazon Cognito, EnablePropagateAdditionalUserContextData defina como true em uma solicitação CreateUserPoolClientou UpdateUserPoolClient. Para obter informações sobre como ativar a segurança avançada na aplicação web ou no aplicativo móvel, consulte Activating user pool advanced security from your app (Ativar a segurança avançada do grupo de usuários de sua aplicação). Quando a aplicação chamar o Amazon Cognito do servidor, colete dados de contexto do usuário no lado do cliente. Veja a seguir um exemplo que usa o método JavaScript getData SDK.

var EncodedData = AmazonCognitoAdvancedSecurityData.getData(username, userPoolId, clientId);

Quando você estiver criando sua aplicação para usar a autenticação adaptativa, é recomendável incorporar nela o SDK mais recente do Amazon Cognito. A versão mais recente do SDK coleta informações de impressão digital do dispositivo, como ID, modelo e fuso horário. Para obter mais informações sobre SDKs do Amazon Cognito, consulte Instalar um SDK do grupo de usuários. A segurança avançada do Amazon Cognito só salva e atribui uma pontuação de risco aos eventos enviados pela aplicação no formato correto. Se o Amazon Cognito retornar uma resposta de erro, verifique se sua solicitação inclui um hash secreto válido e se o parâmetro IPaddress é um endereço IPv4 ou IPv6 válido.

Recursos de ContextData e UserContextData

Como exibir o histórico de eventos do usuário

nota

No console novo do Amazon Cognito, você pode visualizar o histórico de eventos do usuário na guia Users (Usuários).

Para ver o histórico de logins de um usuário, é possível selecionar o usuário em Users (Usuários) no console do Amazon Cognito. O Amazon Cognito mantém o histórico de eventos do usuário por dois anos.

Histórico de eventos do usuário

Cada evento de login tem um ID de evento. O evento também tem dados de contexto correspondentes, como localização, detalhes do dispositivo e resultados da detecção de risco. Você pode consultar o histórico de eventos do usuário com a operação da API do Amazon Cognito AdminListUserAuthEventsou com o AWS Command Line Interface (AWS CLI) com admin-list-user-auth -events.

Você também pode correlacionar o ID do evento com o token que o Amazon Cognito emitiu no momento em que gravou o evento. O ID e os tokens de acesso incluem esse ID de evento em sua carga útil. O Amazon Cognito também correlaciona o uso de token de atualização ao ID do evento original. É possível rastrear o ID do evento original de volta para o ID do evento de login que resultou na emissão de tokens do Amazon Cognito. Você pode rastrear o uso de um token em seu sistema para determinado evento de autenticação. Para ter mais informações, consulte Como usar tokens com grupos de usuários.

Como fornecer feedback sobre eventos

Os feedbacks sobre eventos não só afetam a avaliação de risco em tempo real, mas também aprimoram o algoritmo de avaliação de risco ao longo do tempo. Você pode fornecer feedback sobre a validade das tentativas de login por meio do console do Amazon Cognito e das operações de API.

nota

O feedback de seu evento influencia o nível de risco que o Amazon Cognito atribui às sessões de usuário subsequentes com as mesmas características.

No console do Amazon Cognito, selecione um usuário na guia Users (Usuários) e selecione Provide event feedback (Fornecer feedback sobre o evento). É possível revisar os detalhes do evento e definir como válido (Set as valid ou definir como inválido (Set as invalid).

O console lista o histórico de login na guia Users and groups(Usuários e grupos). Se você selecionar uma entrada, poderá marcar o evento como válido ou não válido. Você também pode fornecer feedback por meio da operação da API do grupo AdminUpdateAuthEventFeedbackde usuários e do AWS CLI comando admin-update-auth-event-feedback.

Ao selecionar Set as valid (Definir como válido) no console do Amazon Cognito ou fornecer um valor FeedbackValue de valid na API, você diz ao Amazon Cognito que confia em uma sessão de usuário em que o Amazon Cognito avaliou algum nível de risco. Ao selecionar Set as invalid (Definir como inválido) no console do Amazon Cognito ou fornecer um valor FeedbackValue de invalid na API, você diz ao Amazon Cognito que não confia em uma sessão de usuário ou não acredita que o Amazon Cognito avaliou um nível de risco alto o suficiente.

Como enviar mensagens de notificação

Com as proteções de segurança avançada, o Amazon Cognito pode notificar seus usuários sobre tentativas de login arriscadas. O Amazon Cognito também pode solicitar que os usuários selecionem links para indicar se o login foi ou não válido. O Amazon Cognito usa esse feedback para melhorar a precisão da detecção de riscos para seu grupo de usuários.

Na seção Automatic risk response (Resposta automática a riscos), selecione Notify Users (Notificar usuários) para os casos de baixo, médio e alto risco.

Notificar usuários

O Amazon Cognito envia notificações por e-mail aos seus usuários, independentemente de eles terem verificado o endereço de e-mail.

Você pode personalizar mensagens de e-mail de notificação e disponibilizá-las em versões de texto simples e HTML. Para personalizar suas notificações por e-mail, abra Email templates (Modelos de e-mail) em Adaptive authentication messages (Mensagens de autenticação adaptável) em sua configuração de segurança avançada. Para saber mais sobre modelos de e-mail, consulte Modelos de mensagens.