

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

# Configurar o Google como um IdP do banco de identidades
<a name="google"></a>

Os bancos de identidades do Amazon Cognito trabalham com o Facebook para fornecer autenticação federada aos usuários da aplicação móvel. Esta seção explica como inscrever e configurar a aplicação com o Google como IdP.

## Android
<a name="set-up-google-1.android"></a>

**nota**  
Se a sua aplicação usar o Google e estiver disponível em várias plataformas móveis, você deverá configurá-lo como um [provedor OpenID Connect](open-id.md). Adicione todos os clientes criados IDs como valores adicionais de público para uma melhor integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte [Identidade em vários clientes](https://developers.google.com/accounts/docs/CrossClientAuth).

**Como configurar o Google**

Para ativar o Login do Google para Android, crie um projeto de console do Google Developers para a aplicação.

1. Vá para o [console do Google Developers](https://console.developers.google.com/) e crie um novo projeto.

1. Escolha **APIs & Serviços e**, em seguida, **tela de OAuth consentimento**. Personalize as informações que o Google mostra aos usuários quando ele solicita o consentimento deles para compartilhar os dados do perfil com sua aplicação.

1. Escolha **Credentials** (Credenciais) e, em seguida, **Create credentials** (Criar credenciais). Escolha a **ID OAuth do cliente**. Selecione **Android** como **Application type** (Tipo de aplicação). Crie um ID de cliente distinto para cada plataforma em que você desenvolve sua aplicação.

1. Em **Credenciais** (Credenciais), escolha **Manage service accounts** (Gerenciar contas de serviço). Escolha **Create service account** (Criar conta de serviço). Insira os detalhes de sua conta de serviço e, em seguida, escolha **Create and continue** (Criar e continuar).

1. Conceda à conta de serviço acesso ao seu projeto. Conceda aos usuários acesso à conta de serviço conforme a aplicação exigir.

1. Escolha sua nova conta de serviço, a guia **Keys** (Chaves) e **Add key** (Adicionar chave). Crie e baixe uma nova chave JSON.

Para obter mais informações sobre como usar o console Google Developers, consulte [Como criar e gerenciar projetos](https://cloud.google.com/resource-manager/docs/creating-managing-projects) na documentação do Google Cloud.

Para obter mais informações sobre como integrar o Google ao aplicativo Android, consulte [Autenticar usuários com Login com o Google](https://developer.android.com/identity/sign-in/credential-manager-siwg) na documentação do Google Identity.

**Como adicionar um provedor de identidades (IdP) Google**

1. Selecione **Bancos de identidades** no [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Selecione um banco de identidades.

1. Selecione a guia **Acesso do usuário**.

1. Selecione **Adicionar provedor de identidade**.

1. Selecione **Google**.

1. Insira o **ID do cliente** do OAuth projeto que você criou no [Google Cloud Platform](https://console.cloud.google.com/). Para mais informações, consulte [Configuração OAuth 2.0](https://support.google.com/cloud/answer/6158849) na *Ajuda do Console do Google Cloud Platform*.

1. Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina **Configurações de perfil**.

   1. Você pode atribuir aos usuários desse IdP o **Perfil padrão** que você configurou ao definir seu **Perfil autenticado** ou **Escolher perfil com regras**.

     1. Se você escolheu **Escolher perfil com regras**, insira a **Declaração** de origem da autenticação do usuário, o **Operador** pelo qual deseja comparar a declaração, o **Valor** que gerará uma correspondência com essa opção de perfil e o **Perfil** que deseja atribuir quando houver correspondência com a **Atribuição de função**. Selecione **Adicionar outra** para criar uma regra adicional com base em uma condição diferente.

     1. Selecione uma **Resolução de perfil**. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu **Perfil autenticado**.

1. Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure **Atributos para controle de acesso**.

   1. Para não aplicar nenhuma tag de entidade principal, selecione **Inativo**.

   1. Para aplicar tags de entidade principal com base em declarações `sub` e `aud`, selecione **Usar mapeamentos padrão**.

   1. Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione **Usar mapeamentos personalizados**. Depois, insira a **Chave de tag** que você deseja obter de cada **declaração** e representar em uma tag.

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

**Usar o Google**

Para habilitar o login com o Google na aplicação, siga as instruções na [documentação do Google para Android](https://developers.google.com/identity/sign-in/android/start). Quando um usuário faz login, ele solicita um token de autenticação OpenID Connect do Google. Em seguida, o Amazon Cognito usa o token para autenticar o usuário e gerar um identificador exclusivo.

O código de exemplo a seguir mostra como recuperar o token de autenticação do Google Play Service:

```
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String token = GoogleAuthUtil.getToken(getApplicationContext(), accounts[0].name,
        "audience:server:client_id:YOUR_GOOGLE_CLIENT_ID");
Map<String, String> logins = new HashMap<String, String>();
logins.put("accounts.google.com", token);
credentialsProvider.setLogins(logins);
```

## iOS – Objective-C
<a name="set-up-google-1.ios-objc"></a>

**nota**  
Se a sua aplicação usar o Google e estiver disponível em várias plataformas móveis, configure-o como um [provedor OpenID Connect](open-id.md). Adicione todos os clientes criados IDs como valores adicionais de público para uma melhor integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte [Identidade em vários clientes](https://developers.google.com/accounts/docs/CrossClientAuth).

**Como configurar o Google**

Para habilitar o Login do Google para iOS, crie um projeto de console do Google Developers para a aplicação.

1. Vá para o [console do Google Developers](https://console.developers.google.com/) e crie um novo projeto.

1. Escolha **APIs & Serviços e**, em seguida, **tela de OAuth consentimento**. Personalize as informações que o Google mostra aos usuários quando ele solicita o consentimento deles para compartilhar os dados do perfil com sua aplicação.

1. Escolha **Credentials** (Credenciais) e, em seguida, **Create credentials** (Criar credenciais). Escolha a **ID OAuth do cliente**. Selecione **iOS** como **Application type** (Tipo de aplicação). Crie um ID de cliente distinto para cada plataforma em que você desenvolve sua aplicação.

1. Em **Credenciais** (Credenciais), escolha **Manage service accounts** (Gerenciar contas de serviço). Escolha **Create service account** (Criar conta de serviço). Insira os detalhes de sua conta de serviço e escolha **Create and continue** (Criar e continuar).

1. Conceda à conta de serviço acesso ao seu projeto. Conceda aos usuários acesso à conta de serviço conforme a aplicação exigir.

1. Escolha sua nova conta de serviço. Escolha a guia **Keys** (Chaves) e **Add key** (Adicionar chave). Crie e baixe uma nova chave JSON.

Para obter mais informações sobre como usar o console Google Developers, consulte [Como criar e gerenciar projetos](https://cloud.google.com/resource-manager/docs/creating-managing-projects) na documentação do Google Cloud.

Para mais informações sobre a integração do Google ao aplicativo iOS, consulte a [Google Sign-In for iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) na documentação do Google Identity.

**Como adicionar um provedor de identidades (IdP) Google**

1. Selecione **Bancos de identidades** no [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Selecione um banco de identidades.

1. Selecione a guia **Acesso do usuário**.

1. Selecione **Adicionar provedor de identidade**.

1. Selecione **Google**.

1. Insira o **ID do cliente** do OAuth projeto que você criou no [Google Cloud Platform](https://console.cloud.google.com/). Para mais informações, consulte [Configuração OAuth 2.0](https://support.google.com/cloud/answer/6158849) na *Ajuda do Console do Google Cloud Platform*.

1. Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina **Configurações de perfil**.

   1. Você pode atribuir aos usuários desse IdP o **Perfil padrão** que você configurou ao definir seu **Perfil autenticado** ou **Escolher perfil com regras**.

     1. Se você escolheu **Escolher perfil com regras**, insira a **Declaração** de origem da autenticação do usuário, o **Operador** pelo qual deseja comparar a declaração, o **Valor** que gerará uma correspondência com essa opção de perfil e o **Perfil** que deseja atribuir quando houver correspondência com a **Atribuição de função**. Selecione **Adicionar outra** para criar uma regra adicional com base em uma condição diferente.

     1. Selecione uma **Resolução de perfil**. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu **Perfil autenticado**.

1. Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure **Atributos para controle de acesso**.

   1. Para não aplicar nenhuma tag de entidade principal, selecione **Inativo**.

   1. Para aplicar tags de entidade principal com base em declarações `sub` e `aud`, selecione **Usar mapeamentos padrão**.

   1. Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione **Usar mapeamentos personalizados**. Depois, insira a **Chave de tag** que você deseja obter de cada **declaração** e representar em uma tag.

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

**Usar o Google**

Para habilitar o login com o Google no aplicativo, siga a [documentação do Google para iOS](https://developers.google.com/identity/sign-in/ios/start/). A autenticação bem-sucedida resulta em um token de autenticação OpenID Connect, que o Amazon Cognito usa para autenticar o usuário e gerar um identificador exclusivo.

A autenticação bem-sucedida resulta em um objeto `GTMOAuth2Authentication` que contém um `id_token`, que o Amazon Cognito usa para autenticar o usuário e gerar um identificador exclusivo:

```
- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error {
        NSString *idToken = [auth.parameters objectForKey:@"id_token"];
        credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyGoogle): idToken };
    }
```

## iOS – Swift
<a name="set-up-google-1.ios-swift"></a>

**nota**  
Se a sua aplicação usar o Google e estiver disponível em várias plataformas móveis, configure-o como um [provedor OpenID Connect](open-id.md). Adicione todos os clientes criados IDs como valores adicionais de público para uma melhor integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte [Identidade em vários clientes](https://developers.google.com/accounts/docs/CrossClientAuth).

**Como configurar o Google**

Para habilitar o Login do Google para iOS, crie um projeto de console do Google Developers para a aplicação.

1. Vá para o [console do Google Developers](https://console.developers.google.com/) e crie um novo projeto.

1. Escolha **APIs & Serviços e**, em seguida, **tela de OAuth consentimento**. Personalize as informações que o Google mostra aos usuários quando ele solicita o consentimento deles para compartilhar os dados do perfil com sua aplicação.

1. Escolha **Credentials** (Credenciais) e, em seguida, **Create credentials** (Criar credenciais). Escolha a **ID OAuth do cliente**. Selecione **iOS** como **Application type** (Tipo de aplicação). Crie um ID de cliente distinto para cada plataforma em que você desenvolve sua aplicação.

1. Em **Credenciais** (Credenciais), escolha **Manage service accounts** (Gerenciar contas de serviço). Escolha **Create service account** (Criar conta de serviço). Insira os detalhes de sua conta de serviço e escolha **Create and continue** (Criar e continuar).

1. Conceda à conta de serviço acesso ao seu projeto. Conceda aos usuários acesso à conta de serviço conforme a aplicação exigir.

1. Escolha sua nova conta de serviço, a guia **Keys** (Chaves) e **Add key** (Adicionar chave). Crie e baixe uma nova chave JSON.

Para obter mais informações sobre como usar o console Google Developers, consulte [Como criar e gerenciar projetos](https://cloud.google.com/resource-manager/docs/creating-managing-projects) na documentação do Google Cloud.

Para mais informações sobre a integração do Google ao aplicativo iOS, consulte a [Google Sign-In for iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) na documentação do Google Identity.

Escolha **Manage Identity Pools** (Gerenciar grupos de identidades) na [página inicial do console do Amazon Cognito](https://console.aws.amazon.com/cognito/home):

**Configurar o provedor externo no console do Amazon Cognito**

1. Escolha o nome do grupo de identidades no qual deseja habilitar o Google como provedor externo. A página **Dashboard** (Painel) do grupo de identidades será exibida.

1. No canto superior direito da página **Dashboard (Painel)**, selecione **Edit identity pool (Editar grupo de identidades)**. A página Edit identity pool (Editar grupo de identidades) será exibida.

1. Role para baixo e escolha **Authentication providers** (Provedores de autenticação) para expandir a seção.

1. Escolha a guia **Google**.

1. Selecione **Unlock (Desbloquear)**.

1. Insira o ID de cliente do Google que você obteve do Google e escolha **Save Changes** (Salvar alterações).

**Usar o Google**

Para habilitar o login com o Google no aplicativo, siga a [documentação do Google para iOS](https://developers.google.com/identity/sign-in/ios/start/). A autenticação bem-sucedida resulta em um token de autenticação OpenID Connect, que o Amazon Cognito usa para autenticar o usuário e gerar um identificador exclusivo.

A autenticação bem-sucedida resulta em um objeto `GTMOAuth2Authentication` que contém um `id_token`. O Amazon Cognito usa esse token para autenticar o usuário e gerar um identificador exclusivo:

```
func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!) {
    if error != nil {
      print(error.localizedDescription)
    }
    else {
      let idToken = auth.parameters.objectForKey("id_token")
      credentialsProvider.logins = [AWSCognitoLoginProviderKey.Google.rawValue: idToken!]
    }
}
```

## JavaScript
<a name="set-up-google-1.javascript"></a>

**nota**  
Se a sua aplicação usar o Google e estiver disponível em várias plataformas móveis, você deverá configurá-lo como [provedor OpenID Connect](open-id.md). Adicione todos os clientes criados IDs como valores adicionais de público para uma melhor integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte [Identidade em vários clientes](https://developers.google.com/accounts/docs/CrossClientAuth).

**Como configurar o Google**

Para ativar o login do Google em um aplicativo JavaScript da web, crie um projeto de console do Google Developers para seu aplicativo.

1. Vá para o [console do Google Developers](https://console.developers.google.com/) e crie um novo projeto.

1. Escolha **APIs & Serviços e**, em seguida, **tela de OAuth consentimento**. Personalize as informações que o Google mostra aos usuários quando ele solicita o consentimento deles para compartilhar os dados do perfil com sua aplicação.

1. Escolha **Credentials** (Credenciais) e, em seguida, **Create credentials** (Criar credenciais). Escolha a **ID OAuth do cliente**. Selecione **Web application** (Aplicação Web) como **Application type** (Tipo de aplicação). Crie um ID de cliente distinto para cada plataforma em que você desenvolve sua aplicação.

1. Em **Credenciais** (Credenciais), escolha **Manage service accounts** (Gerenciar contas de serviço). Escolha **Create service account** (Criar conta de serviço). Insira os detalhes de sua conta de serviço e escolha **Create and continue** (Criar e continuar).

1. Conceda à conta de serviço acesso ao seu projeto. Conceda aos usuários acesso à conta de serviço conforme a aplicação exigir.

1. Escolha sua nova conta de serviço, a guia **Keys** (Chaves) e **Add key** (Adicionar chave). Crie e baixe uma nova chave JSON.

Para obter mais informações sobre como usar o console Google Developers, consulte [Como criar e gerenciar projetos](https://cloud.google.com/resource-manager/docs/creating-managing-projects) na documentação do Google Cloud.

Para obter mais informações sobre como integrar o Google à aplicação Web, consulte [Sign in With Google](https://developers.google.com/identity/gsi/web/guides/overview) na documentação do Google Identity.

**Configurar o provedor externo no console do Amazon Cognito**

**Como adicionar um provedor de identidades (IdP) Google**

1. Selecione **Bancos de identidades** no [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Selecione um banco de identidades.

1. Selecione a guia **Acesso do usuário**.

1. Selecione **Adicionar provedor de identidade**.

1. Selecione **Google**.

1. Insira o **ID do cliente** do OAuth projeto que você criou no [Google Cloud Platform](https://console.cloud.google.com/). Para mais informações, consulte [Configuração OAuth 2.0](https://support.google.com/cloud/answer/6158849) na *Ajuda do Console do Google Cloud Platform*.

1. Para alterar o perfil que o Amazon Cognito solicita ao emitir credenciais para usuários que se autenticaram com esse provedor, defina **Configurações de perfil**.

   1. Você pode atribuir aos usuários desse IdP o **Perfil padrão** que você configurou ao definir seu **Perfil autenticado** ou **Escolher perfil com regras**.

     1. Se você escolheu **Escolher perfil com regras**, insira a **Declaração** de origem da autenticação do usuário, o **Operador** pelo qual deseja comparar a declaração, o **Valor** que gerará uma correspondência com essa opção de perfil e o **Perfil** que deseja atribuir quando houver correspondência com a **Atribuição de função**. Selecione **Adicionar outra** para criar uma regra adicional com base em uma condição diferente.

     1. Selecione uma **Resolução de perfil**. Quando as declarações do usuário não correspondem às suas regras, você pode negar ou emitir credenciais para seu **Perfil autenticado**.

1. Para alterar as tags de identidade principal que o Amazon Cognito atribui ao emitir credenciais para usuários que se autenticaram com esse provedor, configure **Atributos para controle de acesso**.

   1. Para não aplicar nenhuma tag de entidade principal, selecione **Inativo**.

   1. Para aplicar tags de entidade principal com base em declarações `sub` e `aud`, selecione **Usar mapeamentos padrão**.

   1. Para criar seu próprio esquema personalizado de atributos para as tags de entidade principal, selecione **Usar mapeamentos personalizados**. Depois, insira a **Chave de tag** que você deseja obter de cada **declaração** e representar em uma tag.

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

**Usar o Google**

Para habilitar o login com o Google no aplicativo, siga a [documentação do Google para Web](https://developers.google.com/identity/gsi/web/guides/overview).

A autenticação bem-sucedida resulta em um objeto de resposta contendo um `id_token`, que o Amazon Cognito usa para autenticar o usuário e gerar um identificador exclusivo:

```
function signinCallback(authResult) {
  if (authResult['status']['signed_in']) {

     // Add the Google access token to the Amazon Cognito credentials login map.
     AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'IDENTITY_POOL_ID',
        Logins: {
           'accounts.google.com': authResult['id_token']
        }
     });

     // Obtain AWS credentials
     AWS.config.credentials.get(function(){
        // Access AWS resources here.
     });
  }
}
```