Como configurar meu Application Load Balancer para autenticar usuários por meio de um grupo de usuários do Amazon Cognito em outra conta da AWS?

6 minuto de leitura
0

Quero usar a autenticação do Amazon Cognito no meu Application Load Balancer, mas meu grupo de usuários está em outra conta da AWS. Então, quero usar um grupo de usuários entre contas para autenticação.

Breve descrição

Apenas grupos de usuários do Amazon Cognito na mesma conta são aceitos por padrão quando você configura um Application Load Balancer para autenticação de usuários. No entanto, como solução alternativa, configure seu grupo de usuários entre contas como um provedor de identidade (IdP) OpenID Connect (OIDC).

Siga estas instruções para configurar seu Application Load Balancer em uma conta ("conta B") para autenticação por meio de um grupo de usuários em outra conta ("conta A").

Resolução

Criar um Application Load Balancer

Se você ainda não fez isso, na conta B, crie um Application Load Balancer com um receptor HTTPS.
Observação: os tipos de ação de regra authenticate-cognito e authenticate-oidc são compatíveis somente com receptores HTTPS.

Obtenha o nome DNS do seu Application Load Balancer na conta B

  1. Na conta B, abra a página Balanceadores de carga do console do Amazon Elastic Compute Cloud (Amazon EC2).
  2. Selecione seu Application Load Balancer.
  3. Na guia Descrição, copie o nome DNS do balanceador de carga. Você precisará dele para acessar e testar a URL do endpoint do balanceador de carga mais tarde.

Crie e configure um grupo de usuários na conta A

  1. Na conta A, crie um grupo de usuários do Amazon Cognito com um cliente de aplicação. Para o cliente de aplicação, certifique-se de selecionar a opção Gerar segredo do cliente. Para obter mais informações, consulte Preparar-se para usar o Amazon Cognito.
    Observação: durante a criação do grupo de usuários, defina as configurações desejadas para produção. Algumas configurações do grupo de usuários não podem ser alteradas após a criação do grupo de usuários. Por exemplo, você não pode alterar os atributos padrão necessários para o registro do usuário.
  2. No console do Amazon Cognito, na seção Visão geral do grupo de usuários do seu grupo de usuários, anote o ID do grupo de usuários. Você precisará dele mais tarde para coletar os detalhes de configuração do OIDC do seu grupo de usuários.
  3. Na guia Integração de aplicações, navegue até Domínio. Adicione um nome de domínio do Amazon Cognito para seu grupo de usuários. É um prefixo de domínio exclusivo exigido pela interface de usuário hospedada do Cognito
  4. Na guia Integração do aplicativo, navegue até Lista de clientes de aplicação
  5. Escolha o cliente de aplicação que você deseja atualizar. Na página Cliente de aplicação, conclua estas etapas:
    Ative Mostrar segredo do cliente.
    Copie o ID do cliente de aplicativo e o Segredo do cliente de aplicativo. Você precisa desses valores para configurar seu Application Load Balancer para autenticação de usuários.
  6. Na página Cliente de aplicação, navegue até a seção IU hospedada, e clique em Editar.
  7. Na página Editar interface do usuário hospedada, conclua estas etapas:
    Para Provedores de identidade, selecione Grupo de usuários do Cognito.
    Em Adicionar URL(s) de retorno de chamada, insira https://loadBalancerDNSName/oauth2/idpresponse. Ou, se você mapeou um domínio personalizado para seu balanceador de carga com um registro CNAME, insira https://CNAME/oauth2/idpresponse.
    Observação: substitua nomeDNSdobalanceadordecarga pelo nome DNS que você copiou do console do Amazon EC2. Se estiver usando um registro CNAME, substitua CNAME pelo seu domínio personalizado. Certifique-se de que seus valores nos URLs estejam em minúsculas, ou você receberá um erro.
    Em Adicionar URL(s) de saída, insira o URL para onde você deseja que seus usuários sejam redirecionados depois de sairem. Para testar, insira qualquer URL válido, como https://example.com/.
    Para Tipos de concessão OAuth 2.0, selecione Concessão de código de autorização.
    Para Escopos de conexão OpenID , selecione Openid. O escopo openid retorna um token de ID.
    Insira quaisquer escopos OAuth adicionais conforme exigido pelo seu caso de uso.
  8. Escolha Salvar alterações.

Para obter mais informações, consulte Como configurar um cliente do aplicativo do grupo de usuários e Como adicionar provedores de identidade OIDC a um grupo de usuários.

Obtenha os detalhes de configuração OIDC do grupo de usuários

Acesse o endpoint de configuração OIDC do grupo de usuários. Você precisa dos detalhes da configuração para configurar seu grupo de usuários como um IdP OIDC em seu Application Load Balancer.

  1. No navegador, insira este URL: https://cognito-idp.region.amazonaws.com/userPoolId/.well-known/openid-configuration
    Observação: substitua region pela região da AWS do seu grupo de usuários. (Por exemplo, us-east-1.) Substitua userPoolId pelo ID do seu grupo de usuários, anotado anteriormente.
  2. Copie a resposta JSON exibida no seu navegador. Observe os valores destes campos:
    authorization_endpoint
    issuer
    scopes_supported
    token_endpoint
    userinfo_endpoint

Configure seu Application Load Balancer na conta B

  1. Na conta B, na página Balanceadores de carga do console do Amazon EC2, selecione o seu Application Load Balancer.
  2. Na guia Receptores, em Regras, selecione Exibir/editar regras do receptor HTTPS.
  3. Na barra de menu, selecione o ícone de lápis (Editar regras).
  4. Ao lado da regra padrão para seu receptor HTTPS, selecione o ícone de lápis (Editar regra).
  5. Em THEN, escolha ** Adicionar ação** e conclua estas etapas:
    Escolha Autenticar.
    Em Autenticar, escolha OIDC.
    Em Emissor, insira o valor do emissor na configuração OIDC do seu grupo de usuários.
    Em Endpoint de autorização, insira o valor de authorization_endpoint.
    Em Endpoint do token, insira o valor de token_endpoint.
    Em Endpoint de informações do usuário, insira o valor de userinfo_endpoint.
    Em ID do cliente, insira o ID do cliente de aplicativo, copiado anteriormente do console do Amazon Cognito.
    Em Segredo do cliente, insira o Segredo do cliente de aplicativo copiado anteriormente.
    Expanda Configurações avançadas.
    Em Escopo, insira os escopos que você configurou para o cliente de aplicação do seu grupo de usuários, separados por espaços. Os escopos estão na configuração OIDC do grupo de usuários. Por exemplo, se o valor de scopes_supported na configuração for ["openid","email","phone","profile"], insira openid email phone profile.
    Escolha o ícone da marca de seleção.
  6. Em THEN, escolha ** Adicionar ação** e conclua estas etapas:
    Observação: se você não conseguir escolher Adicionar ação, exclua a ação de roteamento atual (como Redirecionar para). Em seguida, tente novamente.
    Escolha Encaminhar para.
    Em Encaminhar para, selecione um ou mais grupos de destino.
    (Opcional) Configure a Perdurabilidade do nível de grupo.
    Escolha o ícone da marca de seleção.
  7. Selecione Atualizar. A regra padrão do receptor HTTPS será atualizada.

Para obter mais informações, consulte Editar uma regra.

Testar a configuração

No navegador, insira um destes URLs:

  • https://nomeDNSdobalanceadordecarga/
  • https://CNAME/

Observação: substitua nomeDNSdobalanceadordecarga pelo nome DNS copiado anteriormente do console do Amazon EC2. Ou substitua CNAME pelo domínio personalizado.

Você será redirecionado para a interface do usuário web hospedada do Amazon Cognito para seu grupo de usuários. Quando um usuário faz login aqui e é autenticado pelo grupo de usuários, ele é redirecionado para o destino.

Informações relacionadas

Introdução aos Application Load Balancers

Simplifique o login com a autenticação integrada do Application Load Balancer

Autenticar usuários usando um Application Load Balancer

Regras do receptor para seu Application Load Balancer

Fluxo de autenticação IdP do grupo de usuários do OIDC

AWS OFICIAL
AWS OFICIALAtualizada há 10 meses