Como adicionar provedores de identidade social a um grupo de usuários - 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 adicionar provedores de identidade social a um grupo de usuários

Os usuários de aplicativos web e móveis podem fazer login por meio de provedores de identidade social (IdP), como o Facebook, o Google, a Amazon e a Apple. Com a interface do usuário da Web hospedada integrada, o Amazon Cognito fornece manuseio e gerenciamento de tokens para todos os usuários autenticados. Dessa forma, os sistemas de backend podem realizar a padronização com base em um conjunto de tokens do grupo de usuários. Você deve habilitar a interface do usuário hospedada para se integrar com provedores de identidade social compatíveis. Quando o Amazon Cognito cria sua interface de usuário hospedada, ele cria endpoints OAuth 2.0 que o Amazon Cognito, seu OIDC e redes sociais usam para trocar informações. IdPs Para mais informações, consulte Referência da API de autenticação dos grupos de usuários do Amazon Cognito.

Você pode adicionar um IdP social no AWS Management Console, ou você pode usar a AWS CLI ou a API do Amazon Cognito.


                Visão geral de autenticação com login em redes sociais
nota

O login por meio de um terceiro (federação) está disponível em grupos de usuários do Amazon Cognito. Esse recurso é independente da federação nos grupos de identidades do Amazon Cognito (identidades federadas).

Pré-requisitos

Antes de começar, você precisará fazer o seguinte:

  • Um grupo de usuários com um cliente da aplicação e um domínio do grupo de usuários. Para obter mais informações, consulte Criar um grupo de usuários.

  • Um IdP social.

Etapa 1: inscrever-se com um IdP social

Antes de criar um IdP social com o Amazon Cognito, é necessário registrar sua aplicação no IdP social para receber um ID do cliente e a chave secreta do cliente.

  1. Crie uma conta de desenvolvedor com o Facebook.

  2. Faça login com as credenciais do Facebook.

  3. No menu My Apps (Meus aplicativos), escolha Create New App (Criar novo aplicativo).

  4. Insira um nome para sua aplicação do Facebook e, em seguida, escolha Create App ID (Criar ID da aplicação).

  5. Na barra de navegação à esquerda, escolha Settings (Configurações) e, em seguida, Basic (Básico).

  6. Anote o App ID (ID do aplicativo) e a App Secret (Chave secreta do aplicativo). Você poderá usá-los na próxima seção.

  7. Escolha + Add Platform (Adicionar plataforma) na parte inferior da página.

  8. Escolha Website.

  9. Em Website (Site da Web), insira o caminho para a página de acesso da aplicação em Site URL (URL do site).

    https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
  10. Escolha Salvar alterações.

  11. Insira o caminho para a raiz do domínio do grupo de usuários em App Domains (Domínios da aplicação).

    https://mydomain.us-east-1.amazoncognito.com
  12. Escolha Salvar alterações.

  13. Na barra de navegação, escolha Add Product (Adicionar produto) e escolha Set up (Configurar) para o produto Facebook Login (Login do Facebook).

  14. Na barra de navegação, escolha Facebook Login (Login do Facebook) e Settings (Configurações).

    Insira o caminho para o endpoint /oauth2/idpresponse para o domínio de seu grupo de usuários em Valid OAuth Redirect URIs (URIs de redirecionamento do OAuth válidos).

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. Escolha Salvar alterações.

  1. Crie uma conta de desenvolvedor com a Amazon.

  2. Faça login com as credenciais da Amazon.

  3. Você precisa criar um perfil de segurança da Amazon para receber o ID do cliente e a chave secreta do cliente da Amazon.

    Selecione Apps and Services (Aplicativos e serviços) na barra de navegação na parte superior da página e, em seguida, selecione Login with Amazon (Login com a Amazon).

  4. Escolha Create a Security Profile (Criar um perfil de segurança).

  5. Insira o Security Profile Name (Nome do perfil de segurança), Security Profile Description (Descrição do perfil de segurança) e um Consent Privacy Notice URL (URL de notificação de consentimento de privacidade).

  6. Escolha Save (Salvar).

  7. Selecione Client ID (ID de cliente) e Client Secret (Segredo de cliente) para mostrar o ID e o segredo do cliente. Você poderá usá-los na próxima seção.

  8. Passe o cursor sobre o ícone de engrenagem e escolha Web Settings (Configurações da Web) e, em seguida, escolha Edit (Editar).

  9. Insira o domínio do grupo de usuários em Allowed Origins (Origens permitidas).

    https://mydomain.us-east-1.amazoncognito.com
  10. Insira o domínio do grupo de usuários com o endpoint /oauth2/idpresponse em Allowed Return URLs (URLs permitidos de retorno).

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  11. Escolha Salvar.

Para obter mais informações sobre o OAuth 2.0 na plataforma Google Cloud, consulte Learn about authentication & authorization (Saiba mais sobre autenticação e autorização) na documentação do Google Workspace for Developers.

  1. Crie uma conta de desenvolvedor com o Google.

  2. Faça login no Console do Google Cloud Platform.

  3. Na barra de navegação superior, escolha Select a project (Selecionar um projeto). Se você já tiver um projeto na plataforma do Google, esse menu exibirá seu projeto padrão.

  4. Selecione NEW PROJECT (Novo projeto).

  5. Insira um nome para o produto e, depois, escolha CREATE (Criar).

  6. Na barra de navegação à esquerda, escolha APIs and Services (APIs e serviços) e depois Oauth consent screen (Tela de consentimento do Oauth).

  7. Insira as informações da aplicação, um App domain (Domínio da aplicação), Authorized domains (Domínios autorizados) e Developer contact information (Informações de contato do desenvolvedor). Seus Authorized domains (Domínios autorizados) devem incluir amazoncognito.com e a raiz de seu domínio personalizado; por exemplo, example.com. Escolha SAVE AND CONTINUE (Salvar e continuar).

  8. 1. Em Scopes (Escopos), escolha Add or remove scopes (Adicionar ou remover escopos) e selecione, no mínimo, os escopos do OAuth a seguir.

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. OpenID

  9. Em Test users (Testar usuários), escolha Add Users (Adicionar usuários). Insira seu e-mail e todos os outros usuários de teste autorizados e escolha SAVE AND CONTINUE (Salvar e continuar).

  10. Expanda novamente a barra de navegação à esquerda e escolha APIs and Services (APIs e serviços) e, depois, Credentials (Credenciais).

  11. Escolha CREATE CREDENTIALS (Criar credenciais) e, depois, OAuth client ID (ID do cliente do OAuth).

  12. Escolha um Application type (Tipo de aplicação) e forneça ao seu cliente um Name (Nome).

  13. Em JavaScript Origens autorizadas, escolha ADICIONAR URI. Insira o domínio de seu grupo de usuários.

    https://mydomain.us-east-1.amazoncognito.com
  14. Em Authorized redirect URIs (URIs de redirecionamento autorizadas), escolha ADD URI (Adicionar URI). Insira o caminho para o endpoint /oauth2/idpresponse do domínio de seu grupo de usuários.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. Selecione CREATE (Criar).

  16. Armazene com segurança os valores que o Google exibe em Your client ID (Seu ID de cliente) e Your client secret (Seu segredo do cliente). Forneça esses valores ao Amazon Cognito quando você adicionar um IdP do Google.

Para up-to-date obter mais informações sobre como configurar o Login com a Apple, consulte Configurando seu ambiente para fazer login com a Apple na documentação do desenvolvedor da Apple.

  1. Crie uma conta de desenvolvedor com a Apple.

  2. Faça login com as credenciais da Apple.

  3. Na barra de navegação à esquerda, escolha Certificates, Identifiers & Profiles (Certificados, identificadores e perfis).

  4. Na barra de navegação à esquerda, escolha Identifiers (Identificadores).

  5. Na página Identifiers (Identificadores), escolha o ícone +.

  6. Na página Register a New Identifier (Registrar um novo identificador), escolha App IDs (IDs de aplicação) e selecione Continue (Continuar).

  7. Na página Select a type (Selecionar um tipo), escolha App (Aplicação) e, depois, Continue (Continuar).

  8. Na página Register an App ID (Registrar ID de uma aplicação), faça o seguinte:

    1. Em Description (Descrição), insira uma descrição.

    2. Em App ID Prefix (Prefixo do ID da aplicação), insira um Bundle ID (ID do pacote). Anote o valor em App ID Prefix (Prefixo do ID da aplicação). Você usará esse valor após escolher a Apple como seu provedor de identidade em Etapa 2: adicionar um IdP social ao seu grupo de usuários.

    3. Em Capabilities (Recursos), escolha Sign In with Apple (Fazer login com a Apple) e, depois, selecione Edit (Editar).

    4. Na página Sign in with Apple: App ID Configuration (Fazer login com a Apple: configuração do ID da aplicação), escolha configurar a aplicação como principal ou agrupada com outros IDs de aplicação e, depois, escolha Save (Salvar).

    5. Escolha Continue (Continuar).

  9. Na página Confirm your App ID (Confirmar ID do seu app), escolha Register (Registrar).

  10. Na página Identifiers (Identificadores), escolha o ícone +.

  11. Na página Register a New Identifier (Registrar um novo identificador), escolha Services IDs (IDs de serviços) e selecione Continue (Continuar).

  12. Na página Register a Services ID (Registrar um ID de serviços), faça o seguinte:

    1. Em Description (Descrição), digite uma descrição.

    2. Em Identifier (Identificador), digite um identificador. Anote esse ID de serviços, pois você precisará desse valor depois de escolher a Apple como provedor de identidades em Etapa 2: adicionar um IdP social ao seu grupo de usuários.

    3. Escolha Continue (Continuar) e, depois, Register (Registrar).

  13. Escolha o ID de serviços que você acabou de criar na página Identifiers (Identificadores).

    1. Selecione Sign In with Apple (Fazer login com a Apple) e escolha Configure (Configurar).

    2. Na página Web Authentication Configuration (Configuração da autenticação web), selecione o ID da aplicação que você criou anteriormente como o Primary App ID (ID da aplicação principal).

    3. Escolha o ícone + ao lado de Website URLs (URLs de site).

    4. Em Domains and subdomains (Domínios e subdomínios), insira o domínio do grupo de usuários sem um prefixo https://.

      mydomain.us-east-1.amazoncognito.com
    5. Em Return URLs (URLs de retorno), insira o caminho para o endpoint /oauth2/idpresponse do domínio de seu grupo de usuários.

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
    6. Escolha Next (Próximo) e, depois, selecione Done (Concluído). Não é necessário verificar o domínio.

    7. Escolha Continue (Continuar) e, depois, Save (Salvar).

  14. No painel de navegação à esquerda, selecione Keys (Chaves).

  15. Na página Keys (Chaves), escolha o ícone +.

  16. Na página Register a New Key (Registrar uma chave nova), faça o seguinte:

    1. Em Key Name (Nome da chave), insira um nome de chave.

    2. Escolha Sign In with Apple (Fazer login com a Apple) e escolha Configure (Configurar).

    3. Na página Configure Key (Configurar chave), selecione o ID da aplicação que você criou anteriormente como o Primary App ID (ID da aplicação principal). Escolha Salvar.

    4. Escolha Continue (Continuar) e, depois, Register (Registrar).

  17. Na página Download Your Key (Baixe sua chave), escolha Download para baixar a chave privada e anote a Key ID (ID da chave). Em seguida, escolha Done (Concluído). Você precisará dessa chave privada e do valor de Key ID (ID da chave) mostrado nesta página depois de escolher a Apple como provedor de identidade no Etapa 2: adicionar um IdP social ao seu grupo de usuários.

Etapa 2: adicionar um IdP social ao seu grupo de usuários

Para configurar um IdP social do grupo de usuários com o AWS Management Console
  1. Acesse o console do Amazon Cognito. Se solicitado, insira suas AWS credenciais.

  2. Escolha User Pools (Grupos de usuários).

  3. Escolha um grupo de usuários existente na lista ou crie um grupo de usuários.

  4. Escolha a guia Sign-in experience (Experiência de login). Localize Federated sign-in (Acesso federado) e selecione Add an identity provider (Adicionar um provedor de identidade).

  5. Escolha um IdP social: Facebook, Google, Login with Amazon ou Sign in with Apple.

  6. Escolha entre as seguintes etapas, com base em sua opção de IdP social:

    • Google e Login with Amazon: insira o app client ID (ID do cliente da aplicação) e o app client secret (o segredo do cliente da aplicação) gerado na seção anterior.

    • Facebook: insira o app client ID (ID do cliente da aplicação) e o app client secret (segredo do cliente da aplicação) gerado na seção anterior e, em seguida, escolha uma versão da API (por exemplo, versão 2.12). Recomendamos escolher a versão mais recente possível, já que cada API do Facebook tem um ciclo de vida e uma data de suspensão. Os escopos e atributos do Facebook podem variar entre as versões da API. Recomendamos que você teste seu login de identidade social com o Facebook para confirmar se a federação funciona como pretendido.

    • Sign In with Apple (Fazer login com a Apple): insira o Services ID (ID de serviços), o Team ID (ID de equipe), o Key ID (ID da chave) e a private key (chave privada) gerados na seção anterior.

  7. Insira os nomes dos Authorized scopes (Escopos autorizados) que deseja utilizar. Os escopos definem quais atributos do usuário (como name e email) você deseja acessar com a aplicação. Para o Facebook, eles devem estar separados por vírgulas. Para o Google e o Login with Amazon, eles devem estar separados por espaços. Para Sign in with Apple, marque a caixa de seleção dos escopos que deseja acessar.

    Provedor de identidade social Escopos de exemplo
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Fazer login com a Apple email name

    O consentimento do usuário da aplicação é solicitado para o fornecimento desses atributos à sua aplicação. Para mais informações sobre os escopos de provedores sociais, consulte a documentação do Google, Facebook, Login with Amazon ou do Sign in with Apple.

    Em caso de acesso com Sign in with Apple, a seguir apresentamos os cenários de usuário cujos escopos talvez não sejam retornados:

    • Um usuário final encontra falhas após sair da página de acesso com a Apple (podem ter origem em falhas internas dentro do Amazon Cognito ou de qualquer elemento escrito pelo desenvolvedor)

    • O identificador do ID do serviço é usado nos grupos de usuários e/ou em outros serviços de autenticação

    • Um desenvolvedor inclui escopos adicionais depois que o usuário final tiver feito o login (sem recuperar novas informações)

    • Um desenvolvedor exclui o usuário e, a seguir, o usuário faz login novamente sem remover a aplicação de seu perfil de ID da Apple

  8. Mapeie atributos do IdP para o grupo de usuários. Para obter mais informações, consulte Especificar mapeamentos de atributos do provedor de identidade para seu grupo de usuários.

  9. Escolha Criar.

  10. Na guia App client integration (Integração de cliente da aplicação), escolha um dos App clients (Clientes da aplicação) na lista e escolha Edit hosted UI settings (Editar configurações da interface do usuário hospedada). Adicione o novo IdP social ao cliente de aplicação em Identity providers (Provedores de identidade).

  11. Escolha Salvar alterações.

Etapa 3: testar a configuração do IdP social

Você pode criar um URL de login usando os elementos das duas seções anteriores. Use-o para testar a configuração do IdP social.

https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Você pode encontrar o domínio na página do console Domain name (Nome do domínio) do grupo de usuários. O client_id está na página App client settings (Configurações de cliente de aplicação). Use o URL de retorno de chamada para o parâmetro redirect_uri. Esse é o URL da página para a qual o usuário será redirecionado após uma autenticação bem-sucedida.

nota

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 a interface do usuário hospedada. A página exibe a mensagem de erro Something went wrong (Ocorreu algum problema).