Login gerenciado do grupo de usuários - Amazon Cognito

Login gerenciado do grupo de usuários

Você pode escolher um domínio da web para hospedar serviços para o grupo de usuários. Um grupo de usuários do Amazon Cognito ganha as funções a seguir quando você adiciona um domínio, coletivamente conhecido como login gerenciado.

Uma opção adicional que compartilha alguns recursos com o login gerenciado é a IU hospedada clássica. A IU hospedada clássica é uma versão de primeira geração dos serviços de login gerenciado. Os serviços de IdP e RP da IU hospedada geralmente têm as mesmas características do login gerenciado, mas as páginas de login têm um design mais simples e menos recursos. Por exemplo, o login por chave de acesso não está disponível na IU hospedada clássica. No plano de recursos Lite, a IU hospedada clássica é sua única opção para serviços de domínio do grupo de usuários.

As páginas de login gerenciado são uma coleção de interfaces da web para atividades básicas de cadastro, login, autenticação multifator e redefinição de senha no grupo de usuários. Elas também conectam os usuários a um ou mais provedores de identidades (IdPs) de terceiros quando você deseja oferecer aos usuários opções de login. Sua aplicação pode invocar as páginas de login gerenciado nos navegadores dos usuários quando você quiser autenticar e autorizar usuários.

Você pode personalizar a experiência do usuário do login gerenciado conforme a sua marca com logotipos, planos de fundo e estilos personalizados. Há duas opções de identidade visual que você pode aplicar à IU de login gerenciado: o editor de identidade visual para login gerenciado e a identidade visual da IU hospedada (clássica) para a IU hospedada.

Editor de identidade visual

Uma experiência de usuário atualizada com as opções de autenticação mais atualizadas e um editor visual no console do Amazon Cognito.

Identidade visual de IU hospedada

Uma experiência de usuário familiar para usuários anteriores dos grupos de usuários do Amazon Cognito. A identidade visual da IU hospedada é um sistema baseado em arquivos. Para aplicar a identidade visual às páginas de IU hospedada, você carrega um arquivo de imagem com o logotipo e um arquivo que define os valores de diversas opções de estilo CSS predefinidas.

O editor de identidade visual não está disponível em todos os planos de recursos para grupos de usuários. Para obter mais informações, consulte Planos de recursos de grupos de usuários.

Para obter mais informações sobre a criação de solicitações para login gerenciado e serviços de IU hospedada, consulte Referência de login gerenciado e endpoints do grupo de usuários.

nota

O login gerenciado do Amazon Cognito não é compatível com a autenticação personalizada com acionadores do Lambda de desafio de autenticação personalizada.

Managed login localization

O login gerenciado usa como padrão o idioma inglês nas páginas interativas com o usuário. Você pode exibir suas páginas de login gerenciado localizadas para o idioma de sua escolha. Os idiomas disponíveis são aqueles disponíveis no Console de gerenciamento da AWS. No link que você distribui aos usuários, adicione um parâmetro de consulta lang, conforme mostrado no exemplo a seguir.

https://<your domain>/oauth2/authorize?lang=es&response_type=code&client_id=<your app client id>&redirect_uri=<your relying-party url>

O Amazon Cognito define um cookie no navegador dos usuários com sua preferência de idioma após a solicitação inicial com um parâmetro lang. Depois que o cookie é definido, a seleção do idioma persiste sem exibir ou exigir que você inclua o parâmetro nas solicitações. Por exemplo, depois que um usuário faz uma solicitação de login com um parâmetro lang=de, as páginas de login gerenciado são exibidas em alemão até que ele limpe os cookies ou faça uma nova solicitação com um novo parâmetro de localização, como lang=en.

A localização está disponível somente para login gerenciado. Você precisa estar no plano de recursos Essentials ou Plus e ter atribuído seu domínio para usar a identidade visual de login gerenciado.

A seleção que seu usuário faz no login gerenciado não está disponível para acionadores personalizados de remetente de e-mail ou SMS. Ao implementar esses acionadores, você deve usar outros mecanismos para determinar o idioma preferencial do usuário. Nos fluxos de login, o atributo locale pode indicar o idioma preferencial do usuário com base na localização. Nos fluxos de cadastro, a região ou o ID do cliente da aplicação do grupo de usuários pode indicar uma preferência de idioma.

Os idiomas a seguir estão disponíveis.

Idiomas do login gerenciado
Idioma Código
Alemão de
Inglês en
Espanhol es
Francês fr
Bahasa Indonésia id
Italiano it
Japonês ja
Coreano ko
Português (Brasil) pt-BR
Chinês (simplificado) zh-CN
Chinês (tradicional) zh-TW

Documentos de termos

Você pode configurar suas páginas de login gerenciado para exibir links para seus documentos de Termos de uso e Política de privacidade quando os usuários se cadastrarem. Ao configurar ambos documentos de termos no cliente da aplicação, os usuários verão o seguinte texto durante o cadastro: Ao se cadastrar, você concorda com nossos Termos de uso e Política de privacidade. As frases Termos de uso e Política de privacidade aparecem na página de login gerenciado, com hiperlinks para os documentos.

Os documentos de termos são compatíveis com URLs específicos do idioma que estão alinhados com a localização do login gerenciado. Quando os usuários selecionam um idioma com o parâmetro de consulta lang, o Amazon Cognito exibe links para seus documentos de termos nesse idioma. Se você não configurou um URL para um idioma específico, o Amazon Cognito usará o URL padrão configurado para o cliente da aplicação.

Para configurar documentos de termos para o cliente da aplicação, navegue até o menu Login gerenciado no grupo de usuários. Em Documentos de termos, selecione Criar documento de termos.

Amazon Cognito console
Como criar um documento de termos
  1. Navegue até o grupo de usuários e clique no menu Login gerenciado. Localize Documentos de termos.

  2. Selecione Criar documento de termos.

  3. Selecione o cliente da aplicação ao qual deseja atribuir o documento de termos.

  4. Insira um Nome dos termos. Isso identificará o documento no console.

  5. Em Links, escolha um Idioma e insira o URL onde você hospeda seu documento de termos nesse idioma.

  6. Para adicionar URLs para outros idiomas, clique em Adicionar outro.

  7. Escolha Criar.

Amazon Cognito user pools API

Veja a seguir um exemplo de corpo de solicitação CreateTerms. Ele faz com que a página de cadastro do cliente da aplicação 1example23456789 exiba links para uma versão em francês e uma versão em português (Brasil) da política de privacidade quando o login gerenciado estiver localizado para esse idioma. É necessária uma solicitação separada para definir URLs para terms-of-use antes que o login gerenciado exiba os links na página de cadastro.

{ "ClientId": "1example23456789", "Enforcement": "NONE", "Links": { "cognito:default" : "https://example.com/privacy/", "cognito:french" : "https://example.com/fr/privacy/", "cognito:portuguese-brazil" : "https://example.com/pt/privacy/" }, "TermsName": "privacy-policy", "TermsSource": "LINK", "UserPoolId": "us-east-1_EXAMPLE" }
nota

Você deve criar um documento de termos de uso e de política de privacidade para o cliente da aplicação antes que o Amazon Cognito exiba os documentos de termos nas páginas de login gerenciado.

Configurar o login gerenciado com o AWS Amplify

Se você usar o AWS Amplify para adicionar autenticação à sua aplicação web ou aplicativo móvel, poderá configurar suas páginas de login gerenciado na interface de linha de comando (CLI) do Amplify e nas bibliotecas do Amplify Framework. Para adicionar autenticação à sua aplicação, adicione a categoria Auth ao seu projeto. Em seguida, em sua aplicação, autentique os usuários do grupo de usuários com as bibliotecas de cliente do Amplify.

Você pode invocar páginas de login gerenciado para autenticação ou federar usuários por meio de um endpoint de autorização que redireciona para um IdP. Após um usuário se autenticar com êxito com o provedor, o Amplify criará um novo usuário no grupo de usuários e transmitirá os tokens do usuário para a aplicação.

Os exemplos a seguir mostram como utilizar o AWS Amplify para configurar o login gerenciado com provedores sociais em sua aplicação.

Configurar o login gerenciado com o console do Amazon Cognito

O primeiro requisito para login gerenciado e IU hospedada é um domínio do grupo de usuários. No console de grupos de usuários, navegue até a guia Domínio do grupo de usuários e adicione um domínio do Cognito ou um domínio personalizado. Você também pode escolher um domínio durante o processo de criação de um novo grupo de usuários. Para obter mais informações, consulte Como configurar um domínio de grupo de usuários. Quando um domínio está ativo no grupo de usuários, todos os clientes da aplicação veiculam páginas públicas de autenticação nesse domínio.

Ao criar ou modificar um domínio do grupo de usuários, você define a Versão de marca do seu domínio. Essa versão de marca é uma opção de login gerenciado ou IU hospedada (clássica). A versão de marca escolhida se aplica a todos os clientes da aplicação que usam os serviços de login em seu domínio.

A próxima etapa é criar um cliente da aplicação na guia Clientes da aplicação do grupo de usuários. No processo de criação de um cliente da aplicação, o Amazon Cognito solicitará informações sobre sua aplicação e, em seguida, solicitará que você selecione um URL de retorno. O URL de retorno também é chamado de URL de parte confiável (RP), o URI de redirecionamento e o URL de retorno de chamada. Esse é o URL no qual sua aplicação é executada, por exemplo, https://www.example.com ou myapp://example.

Após configurar um domínio e um cliente da aplicação com um estilo de identidade visual no grupo de usuários, suas páginas de login gerenciado ficarão disponíveis na Internet.

Visualizar a página de login

No console do Amazon Cognito, clique no botão Visualizar páginas de login na guia Páginas de login do cliente da aplicação, no menu Clientes da aplicação. Esse botão levará você a uma página de login no domínio do grupo de usuários com os parâmetros básicos a seguir.

  • O ID do cliente da aplicação

  • Uma solicitação de concessão de código de autorização

  • Uma solicitação para todos os escopos que você ativou para o cliente da aplicação atual

  • O primeiro URL de retorno de chamada na lista para o cliente da aplicação atual

O botão Visualizar página de login é útil quando você deseja testar as funções básicas das páginas de login gerenciado. Suas páginas de login corresponderão à Versão de marca que você atribuiu ao domínio do grupo de usuários. Você pode personalizar o URL de login com parâmetros adicionais e modificados. Na maioria dos casos, os parâmetros gerados automaticamente do link Visualizar página de login não atendem totalmente às necessidades da aplicação. Nesses casos, você precisa personalizar o URL que a aplicação invoca quando faz login dos usuários. Para obter mais informações sobre chaves e valores de parâmetros de login, consulte Referência de login gerenciado e endpoints do grupo de usuários.

A página da web de login usa o formato de URL a seguir. Este exemplo solicita uma concessão de código de autorização com o parâmetro response_type=code.

https://<your domain>/oauth2/authorize?response_type=code&client_id=<your app client id>&redirect_uri=<your relying-party url>

É possível pesquisar a string do domínio do grupo de usuários no menu Domínio do grupo de usuários. No menu Clientes da aplicação, é possível identificar IDs de clientes da aplicação, seus URLs de retorno de chamada, seus escopos permitidos e outras configurações.

Ao navegar até o endpoint /oauth2/authorize com parâmetros personalizados, o Amazon Cognito redireciona você ao endpoint /oauth2/login ou, se tiver um parâmetro identity_provider ou idp_identifier, ele redireciona você silenciosamente para a página de login de seu IdP.

Exemplo de solicitação para uma concessão implícita

Você pode visualizar a página da web de login com o URL a seguir para a concessão de código implícita onde response_type=token. Depois de um login bem-sucedido, o Amazon Cognito retorna tokens do grupo de usuários para a barra de endereço do seu navegador da Web.

https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=token&client_id=1example23456789&redirect_uri=https://mydomain.example.com

Os tokens de identidade e acesso aparecem como parâmetros anexados ao URL de redirecionamento.

O URL a seguir é um exemplo de resposta de uma solicitação de concessão implícita.

https://auth.example.com/#id_token=eyJraaBcDeF1234567890&access_token=eyJraGhIjKlM1112131415&expires_in=3600&token_type=Bearer

Personalizar páginas de autenticação

No passado, o Amazon Cognito hospedava somente páginas de login com a IU hospedada clássica, um design simples que proporciona uma aparência universal às páginas da web de autenticação. Era possível personalizar grupos de usuários do Amazon Cognito com uma imagem de logotipo e ajustar alguns estilos com um arquivo que especificava valores de estilo CSS. Posteriormente, o Amazon Cognito introduziu o login gerenciado, um serviço de autenticação hospedado atualizado. O login gerenciado tem uma aparência atualizada com o editor de identidade visual. O editor de identidade visual é um editor visual no-code e oferece um conjunto maior de opções do que a experiência de personalização da IU hospedada. O login gerenciado também introduziu imagens de fundo personalizadas e um tema de modo escuro.

É possível alternar entre as experiências de identidade visual do login gerenciado e da IU hospedada nos grupos de usuários. Para saber mais sobre como personalizar suas páginas de login gerenciado, consulte Aplicar a identidade visual às páginas de login gerenciado.

Informações importantes sobre o login gerenciado e a IU hospedada

O cookie de sessão de login gerenciado e de IU hospedada com duração de 1 hora

Quando um usuário faz login usando suas páginas de login ou um provedor de terceiros, o Amazon Cognito define um cookie no navegador dele. Com esse cookie, os usuários podem fazer login novamente com o mesmo método de autenticação por 1 hora. Ao fazer login com o cookie do navegador, eles recebem novos tokens que duram o período especificado na configuração do cliente da aplicação. Alterações nos atributos do usuário ou nos fatores de autenticação não afetam sua capacidade de fazer login novamente com o cookie do navegador.

A autenticação com o cookie de sessão não redefine a duração do cookie para mais 1 hora. Os usuários precisarão fazer login novamente se tentarem acessar as páginas de login mais de 1 hora após a última autenticação interativa bem-sucedida.

Confirmar contas de usuário e verificar atributos de usuário

Para usuários locais do grupo de usuários, o login gerenciado e a IU hospedada funcionam melhor quando você configura o grupo de usuários para Permitir que o Cognito envie mensagens automaticamente para verificar e confirmar. Quando você ativa essa configuração, o Amazon Cognito envia uma mensagem com um código de confirmação para os usuários que se cadastram. Quando você confirma os usuários como administrador do grupo de usuários, as páginas de login exibem uma mensagem de erro após o cadastro. Nesse estado, o Amazon Cognito criou o usuário, mas não conseguiu enviar uma mensagem de verificação. Você ainda pode confirmar os usuários como administradores, mas eles podem entrar em contato com a central de suporte após encontrarem um erro. Para receber mais informações sobre confirmação administrativa, consulte  Permitir que os usuários se inscrevam na aplicação, mas mediante confirmação deles como administradores do grupo de usuários.

Escopo de operações de login gerenciado

O login gerenciado e a IU hospedada clássica são compatíveis com o cadastro, o login e o gerenciamento de senhas. Isso inclui concluir o login com autenticação multifator (MFA) e registrar autenticadores WebAuthn. O login gerenciado não é compatível com o gerenciamento de perfil de usuário por meio de autoatendimento, como alterações de atributos e configuração de preferências de MFA. Você deve implementar o gerenciamento de perfil no código da sua própria aplicação. O login gerenciado também não oferece a capacidade de confirmar alterações de atributos quando você atualiza endereços de e-mail e números de telefone como administrador com a operação de API AdminUpdateUserAttributes.

Visualizar as alterações na configuração

Se você fizer alterações de estilo em suas páginas e elas não aparecerem imediatamente, aguarde alguns minutos e atualize a página.

Decodificar tokens do grupo de usuários

Os tokens de grupo de usuários do Amazon Cognito são assinados usando um algoritmo RS256. Você pode decodificar e verificar os tokens do grupo de usuários usando o AWS Lambda. Consulte Decode and verify Amazon Cognito JWT tokens no GitHub.

Versão do TLS

As páginas de login gerenciado e IU hospedada exigem criptografia em trânsito. Os domínios do grupo de usuários fornecidos pelo Amazon Cognito exigem que os navegadores dos usuários negociem uma versão mínima do TLS 1.2. Os domínios personalizados são compatíveis com conexões de navegador com TLS versão 1.2. A IU hospedada (clássica) não exige o TLS 1.2 para domínios personalizados, mas o login gerenciado mais recente exige o TLS versão 1.2 tanto para domínios personalizados quanto para domínios de prefixo. Como o Amazon Cognito gerencia a configuração dos serviços de domínio, você não pode modificar os requisitos de TLS do domínio do grupo de usuários.

Políticas de CORS

Nem o login gerenciado, nem a IU hospedada são compatíveis com as políticas de origem de compartilhamento de recursos de origem cruzada (CORS). Uma política de CORS impediria os usuários de transmitir parâmetros de autenticação em suas solicitações. Em vez disso, implemente uma política de CORS no frontend da aplicação. O Amazon Cognito retorna um cabeçalho de resposta Access-Control-Allow-Origin: * para as solicitações aos endpoints a seguir.

Cookies

O login gerenciado e a IU hospedada definem cookies nos navegadores dos usuários. Os cookies seguem os requisitos de alguns navegadores de que os sites não definam cookies de terceiros. Eles têm como escopo apenas os endpoints do seu grupo de usuários e incluem o seguinte:

  • Um cookie XSRF-TOKEN para cada solicitação.

  • Um cookie csrf-state para consistência da sessão quando um usuário é redirecionado.

  • Um cookie csrf-state-legacy para consistência da sessão, lido pelo Amazon Cognito como uma alternativa quando seu navegador não é compatível com o atributo SameSite.

  • Um cookie de sessão cognito que preserva as tentativas de login bem-sucedidas por uma hora.

  • Um cookie lang que preserva a escolha de localização do idioma do usuário no login gerenciado.

  • Um cookie page-data que mantém a persistência dos dados obrigatórios enquanto o usuário navega entre as páginas de login gerenciado.

No iOS, você pode bloquear todos os cookies. Essa configuração não é compatível com o login gerenciado ou com a IU hospedada. Para trabalhar com usuários que possam ativar essa configuração, crie a autenticação do grupo de usuários em um aplicativo iOS nativo com um SDK da AWS. Nesse cenário, você pode criar seu próprio armazenamento de sessão que não seja baseado em cookies.

Efeitos da alteração da versão do login gerenciado

Considere os efeitos a seguir da adição de domínios e da configuração da versão de login gerenciado.

  • Ao adicionar um domínio de prefixo, seja com identidade visual de login gerenciado ou de IU hospedada (clássica), pode levar até 60 segundos até que as páginas de login estejam disponíveis.

  • Ao adicionar um domínio personalizado, seja com identidade visual de login gerenciado ou de IU hospedada (clássica), pode levar até 5 minutos até que as páginas de login estejam disponíveis.

  • Ao alterar a versão de marca do domínio, pode levar até 4 minutos até que as páginas de login estejam disponíveis na nova versão de marca.

  • Ao alternar entre a identidade visual de login gerenciado e de IU hospedada (clássica), o Amazon Cognito não mantém as sessões de usuário. É necessário fazer login novamente com a nova interface.

Estilo padrão

Ao criar um cliente da aplicação no Console de gerenciamento da AWS, o Amazon Cognito atribui automaticamente um estilo de identidade visual ao cliente da aplicação. Quando você cria programaticamente um cliente da aplicação com a operação CreateUserPoolClient, nenhum estilo de identidade visual é criado. O login gerenciado não está disponível para um cliente da aplicação criado com um SDK da AWS até que você crie um com uma solicitação CreateManagedLoginBranding.

Tempo limite do prompt de autenticação de login gerenciado

O Amazon Cognito cancela solicitações de autenticação que não são concluídas em 5 minutos e redireciona o usuário para o login gerenciado. A página exibe a mensagem de erro Something went wrong (Ocorreu algum problema).