

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 provedores de identidade social com um grupo de usuários
<a name="cognito-user-pools-social-idp"></a>

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 o login gerenciado para se integrar com provedores de identidades social compatíveis. Quando o Amazon Cognito cria suas páginas de login gerenciadas, 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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html).

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

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

**Topics**
+ [Configurar uma conta de desenvolvedor e uma aplicação de IdP social](#cognito-user-pools-social-idp-step-1)
+ [Configurar o grupo de usuários com um IdP social](#cognito-user-pools-social-idp-step-2)
+ [Testar a configuração do IdP social](#cognito-user-pools-social-idp-step-3)

## Configurar uma conta de desenvolvedor e uma aplicação de IdP social
<a name="cognito-user-pools-social-idp-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.

------
#### [ Facebook ]

Para obter as informações mais recentes sobre configuração de contas de desenvolvedor e autenticação da Meta, consulte [Desenvolvimento de apps com a Meta](https://developers.facebook.com/docs/development).

**Como registrar uma aplicação com o Facebook/Meta**

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

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

1. Na barra de navegação à esquerda, escolha **Settings** (Configurações) e, em seguida, **Basic** (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 **\+ Add Platform (Adicionar plataforma)** na parte inferior da página.

1. Escolha **Website**.

1. 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.auth.us-east-1.amazoncognito.com}}/login?response_type=code&client_id={{1example23456789}}&redirect_uri={{https://www.example.com}}
   ```

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

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

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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

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

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

   Insira o caminho para o `/oauth2/idpresponse` endpoint do seu domínio do grupo de usuários em **Valid OAuth URIs Redirect**.

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

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

------
#### [ Login with Amazon ]

Para obter as informações mais recentes sobre a configuração das contas de desenvolvedor e autenticação do Login with Amazon, consulte [Login with Amazon Documentation](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html).

**Como registrar uma aplicação com o Login with Amazon**

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

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://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

1. Escolha **Salvar**.

------
#### [ Google ]

Para obter 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.

**Como registrar uma aplicação com o Google**

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 **Serviços APIs e**, em seguida, tela de **consentimento do Oauth**.

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

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 **SAVE AND CONTINUE** (Salvar e continuar).

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

1. Escolha **CRIAR CREDENCIAIS e, em** seguida, **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://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

1. Selecione **CREATE** (Criar).

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

------
#### [ Sign in with Apple ]

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](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) na documentação do desenvolvedor da Apple.

**Como registrar uma aplicação com o Sign in with Apple (SIWA)**

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. Na página **Registrar um novo identificador**, escolha **Aplicativo** e IDs, em seguida, escolha **Continuar**.

1. Na página **Select a type** (Selecionar um tipo), escolha **App** (Aplicação) e, depois, **Continue** (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-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. 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)**, digite uma descrição.

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

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

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

   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 **\+** 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://`.

      ```
      {{mydomain.auth.us-east-1.amazoncognito.com}}
      ```

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

      ```
      https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
      ```

   1. Escolha **Next** (Próximo) e, depois, selecione **Done** (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. 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 **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**.

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

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

------

## Configurar o grupo de usuários com um IdP social
<a name="cognito-user-pools-social-idp-step-2"></a>

**Para configurar um IdP 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). Se solicitado, insira suas AWS credenciais.

1. Escolha **Grupos de usuários**.

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

1. Clique no menu **Provedores sociais e externos** e selecione **Adicionar um provedor de identidade**.

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

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

1. 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.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/cognito/latest/developerguide/cognito-user-pools-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 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

1. 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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Escolha **Criar**.

1. No menu **Clientes da aplicação**, selecione um cliente da aplicação na lista. Para adicionar o novo provedor de identidades social ao cliente da aplicação, navegue até a guia **Páginas de login** e selecione **Editar** em **Configuração gerenciada de páginas de login**.

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

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

Na aplicação, você deve invocar um navegador no cliente do usuário para que ele possa fazer login com seu provedor social. Teste o login com seu provedor social após concluir os procedimentos de configuração nas seções anteriores. O exemplo de URL a seguir carrega a página de login do grupo de usuários com um domínio de prefixo.

```
https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/authorize?response_type=code&client_id={{1example23456789}}&redirect_uri={{https://www.example.com}}
```

Esse link é a página para a qual o Amazon Cognito direcionará você ao acessar o menu **Clientes da aplicação**, selecionar um cliente da aplicação, navegar até a guia **Páginas de login** e selecionar **Visualizar página de login**. Para obter mais informações sobre domínios do grupo de usuários, consulte [Como configurar um domínio de grupo de usuários](cognito-user-pools-assign-domain.md). Para obter mais informações sobre clientes de aplicativos, incluindo cliente IDs e retorno de chamada URLs, consulte[Configurações específicas da aplicação com clientes de aplicação](user-pool-settings-client-apps.md).

O link de exemplo a seguir configura o redirecionamento silencioso para um provedor social por meio do [Autorizar endpoint](authorization-endpoint.md) com um parâmetro de consulta `identity_provider`. Esse URL ignora o login interativo do grupo de usuários com login gerenciado e leva diretamente à página de login do IdP.

```
https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/authorize?identity_provider={{Facebook|Google|LoginWithAmazon|SignInWithApple}}&response_type=code&client_id={{1example23456789}}&redirect_uri={{https://www.example.com}}
```