

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

# Adicionar login social ao seu grupo de usuários
<a name="tutorial-create-user-pool-social-idp"></a>

Possibilitar que os usuários façam login na aplicação por meio de seus provedores de identidade públicos ou sociais existentes pode melhorar sua experiência de autenticação. Os grupos de usuários do Amazon Cognito se integram a provedores de identidade social (IdPs) populares, como Facebook, Google, Amazon e Apple, oferecendo aos usuários opções de login convenientes com as quais eles já estão familiarizados.

Ao configurar o login social, você oferece aos usuários uma alternativa à criação de uma conta dedicada apenas para sua aplicação. Isso pode melhorar as taxas de conversão e simplificar o processo de cadastro. Do ponto de vista do usuário, ele pode aplicar suas credenciais sociais existentes para se autenticar rapidamente, sem o atrito de lembrar outro nome de usuário e senha.

Configurar um IdP social em seu grupo de usuários envolve algumas etapas importantes. Você deve registrar a aplicação no provedor social para obter um ID de cliente e um segredo. Em seguida, você pode adicionar a configuração do IdP social ao seu grupo de usuários, especificando os escopos que deseja solicitar e os atributos do grupo de usuários que deseja mapear a partir dos atributos do IdP. No tempo de execução, o Amazon Cognito gerencia a troca de tokens com o provedor, mapeia os atributos do usuário e emite tokens para sua aplicação no formato de grupo de usuários compartilhado.

## Inscrever-se com um IdP social
<a name="cognito-user-pools-social-step-1"></a>

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.

### Para registrar um aplicativo com o Facebook
<a name="register-an-app-with-facebook"></a>

1. Crie uma [conta de desenvolvedor com o Facebook](https://developers.facebook.com/docs/facebook-login).

1. [Faça login](https://developers.facebook.com/) com as credenciais do Facebook.

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

   Se você não tiver uma aplicação do Facebook, verá uma opção diferente. Escolha **Criar aplicativo**.

1. Na página **Criar uma aplicação**, selecione um caso de uso para a aplicação e escolha **Próximo**.

1. Forneça um nome para a aplicação do Facebook e escolha **Criar ID da aplicação**.

1. Na barra de navegação à esquerda, selecione **Configurações da aplicação** e, depois, selecione **Básico**.

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

1. Escolha **\$1 Adicionar plataforma** na parte inferior da página.

1. Na tela **Selecionar plataforma**, selecione as plataformas e escolha **Próximo**.

1. Escolha **Salvar alterações**.

1. Para **App Domains** (Domínios da aplicação), insira o domínio do grupo de usuários.

   ```
   https://your_user_pool_domain
   ```

1. Escolha **Salvar alterações**.

1. Na barra de navegação, selecione **Produtos** e, depois, **Configurar** em **Login com Facebook**.

1. No menu **Configurar** de **Login com Facebook**, selecione **Configurações**.

   Insira seu URL de redirecionamento em ** OAuth URIsRedirecionamento válido**. O URL de redirecionamento consiste no domínio do grupo de usuários com o endpoint `/oauth2/idpresponse`.

   ```
   https://your_user_pool_domain/oauth2/idpresponse
   ```

1. Escolha **Salvar alterações**.

### Para registrar um aplicativo com a Amazon
<a name="register-an-app-with-amazon"></a>

1. Crie uma [conta de desenvolvedor com a Amazon](https://developer.amazon.com/login-with-amazon).

1. [Faça login](https://developer.amazon.com/lwa/sp/overview.html) com as credenciais da Amazon.

1. 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 **Aplicativos e serviços**, na barra de navegação na parte superior da página, depois, selecione **Login with Amazon**.

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

1. 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).

1. Escolha **Save** (Salvar).

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

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

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

   ```
   https://<your-user-pool-domain>
   ```

1. Insira seu domínio do grupo de usuários com o `/oauth2/idpresponse` endpoint em **Allowed Return URLs**.

   ```
   https://<your-user-pool-domain>/oauth2/idpresponse
   ```

1. Escolha **Salvar**.

### Para registrar um aplicativo com o Google
<a name="register-an-app-with-google"></a>

Para mais informações sobre OAuth 2.0 na plataforma Google Cloud, consulte [Saiba mais sobre autenticação e autorização](https://developers.google.com/workspace/guides/auth-overview) na documentação do Google Workspace for Developers.

1. Crie uma [conta de desenvolvedor com o Google](https://developers.google.com/identity).

1. Faça login no [Console do Google Cloud Platform](https://console.cloud.google.com/home/dashboard).

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

1. Selecione **NEW PROJECT** (Novo projeto).

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

1. Na barra de navegação esquerda, escolha **APIs e Serviços e**, em seguida, escolha Tela de **consentimento do Oauth**.

1. Insira as informações da aplicação, um **Domínio da aplicação**, **Domínios autorizados** e **Informações de contato do desenvolvedor**. Seus **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).

1. 1. Em **Escopos**, escolha **Adicionar ou remover escopos** e escolha, no mínimo, os seguintes OAuth escopos.

   1. `.../auth/userinfo.email`

   1. `.../auth/userinfo.profile`

   1. OpenID

1. 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 **Salvar e continuar**.

1. Expanda a barra de navegação esquerda novamente, escolha **Serviços APIs e**, em seguida, escolha **Credenciais.** 

1. Escolha **CRIAR CREDENCIAIS** e, em seguida, escolha **ID OAuth do cliente**.

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

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

   ```
   https://<your-user-pool-domain>
   ```

1. Em **Redirecionamento autorizado URIs**, escolha **ADICIONAR URI**. Insira o caminho para o endpoint `/oauth2/idpresponse` do domínio de seu grupo de usuários.

   ```
   https://<your-user-pool-domain>/oauth2/idpresponse
   ```

1. Selecione **CRIAR**.

1. Armazene com segurança os valores que o Google exibe em **Seu ID de cliente** e **Seu segredo do cliente**. Forneça esses valores ao Amazon Cognito quando você adicionar um IdP do Google.

### Para registrar uma aplicação na Apple
<a name="register-an-app-with-apple"></a>

Para obter mais informações sobre como configurar o login com a Apple, consulte [Configuring Your Environment for Sign in with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) (Configurar o ambiente para login com a Apple) na documentação do Apple Developer.

1. Crie uma [conta de desenvolvedor com a Apple](https://developer.apple.com/programs/enroll/).

1. [Faça login](https://developer.apple.com/account/#/welcome) com as credenciais da Apple.

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

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

1. Na página **Identifiers** (Identificadores), escolha o ícone **\$1**.

1. Na página **Registrar um novo identificador**, escolha **Aplicativo** e IDs, em seguida, escolha **Continuar**.

1. Na página **Selecionar um tipo**, escolha **Aplicação** e, depois, **Continuar**.

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

   1. 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 [Configurar o grupo de usuários com um IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

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

   1. Na página **Entrar com a Apple: Configuração do ID do aplicativo**, escolha configurar o aplicativo como principal ou agrupado com outro aplicativo IDs e escolha **Salvar**.

   1. Escolha **Continue** (Continuar).

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

1. Na página **Identifiers** (Identificadores), escolha o ícone **\$1**.

1. Na página **Registrar um novo identificador**, escolha **Serviços** e IDs, em seguida, escolha **Continuar**.

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

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

   1. Em **Identifier** (Identificador), insira um identificador. Anote esse ID de serviços, pois você precisará desse valor depois de escolher a Apple como provedor de identidades em [Configurar o grupo de usuários com um IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

   1. Escolha **Continuar** e, depois, **Registrar**.

1. Escolha o ID de serviços que você acabou de criar na página Identificadores.

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

   1. 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). 

   1. Escolha o ícone **\$1** ao lado **do site URLs**. 

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

      ```
      <your-user-pool-domain>
      ```

   1. Em **Return URLs**, insira o caminho para o `/oauth2/idpresponse` endpoint do seu domínio do grupo de usuários.

      ```
      https://<your-user-pool-domain>/oauth2/idpresponse
      ```

   1. Selecione **Próximo** e, em seguida, selecione **Concluído**. Não é necessário verificar o domínio.

   1. Escolha **Continue** (Continuar) e, depois, **Save** (Salvar).

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

1. Na página **Keys (Chaves)**, escolha o ícone **\$1**.

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

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

   1. Na página **Configurar chave**, selecione o ID da aplicação que você criou anteriormente como o **ID da aplicação principal**. Escolha **Salvar**.

   1. Escolha **Continue** (Continuar) e, depois, **Register** (Registrar).

1. Na página **Baixe sua chave**, escolha **Download** para baixar a chave privada e anote a **ID da chave**. Em seguida, escolha **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 [Configurar o grupo de usuários com um IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

## Adicionar um IdP social ao seu grupo de usuários
<a name="cognito-user-pools-social-step-2"></a>

Nesta seção, você configura um IdP social no grupo de usuários usando o ID e a chave secreta do cliente da seção anterior.

**Para configurar um provedor de identidade social do grupo de usuários com o Console de gerenciamento da AWS**

1. Acesse o [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Você pode ser solicitado a fornecer suas AWS credenciais.

1. Escolha **User Pools** (Grupos de usuários).

1. Escolha um grupo de usuários existente na lista ou [crie um grupo de usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Clique no menu **Provedores sociais e externos**. Localize **Federated sign-in** (Acesso federado) e selecione **Add an identity provider** (Adicionar um provedor de identidade).

1. Selecione um provedor de identidade social: **Facebook**, **Google**, **Login with Amazon** ou **Sign in with Apple**.

1. Escolha entre as seguintes etapas, com base em sua opção de provedor de identidade social:
   + **Google** e **Login with Amazon**: insira o **ID do cliente da aplicação** e o **segredo do cliente da aplicação** gerado na seção anterior.
   + **Facebook**: insira o **ID do cliente da aplicação** e o **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 desativação. Os escopos e atributos do Facebook podem variar entre as versões da API. Recomendamos testar seu login de identidade social com o Facebook para garantir que a federação funciona como previsto.
   + **Fazer login com a Apple**: insira o **ID de serviços**, o **ID de equipe**, o **ID da chave** e a **chave privada** gerados na seção anterior.

1. Insira os nomes dos **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.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/cognito/latest/developerguide/tutorial-create-user-pool-social-idp.html)

   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 depois de sair da página de login com a Apple (elas podem ter origem de falhas internas dentro do Amazon Cognito ou de qualquer elemento escrito pelo desenvolvedor).
   + O identificador de ID do serviço é usado em grupos de usuários e and/or outros serviços de autenticação.
   + Um desenvolvedor adiciona outros escopos depois que o usuário faz login. Os usuários só recuperam novas informações quando se autenticam e atualizam seus tokens.
   + 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.

1. Mapeie atributos do provedor de identidade para o grupo de usuários. Para obter mais informações, consulte [Coisas a saber sobre mapeamentos](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping-requirements).

1. Escolha **Criar**.

1. No menu **Clientes da aplicação**, escolha um dos clientes da aplicação na lista e selecione **Editar configurações de interface do usuário hospedada**. Adicione o novo provedor de identidade social ao cliente da aplicação em **Identity providers** (Provedores de identidade).

1. Escolha **Salvar alterações**.

## Testar a configuração do IdP social
<a name="cognito-user-pools-social-step-3"></a>

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.auth.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\$1id 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\$1uri**. 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 o login gerenciado. A página exibe a mensagem de erro `Something went wrong` (Ocorreu algum problema).