Configurando o Google como um IdP do pool de identidades - 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á.

Configurando o Google como um IdP do pool de identidades

O Amazon Cognito se integra com o Google para fornecer autenticação federada para os usuários do aplicativo móvel. Esta seção explica como inscrever e configurar a aplicação com o Google como IdP.

Android

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. Adicione todos os IDs de cliente criados como valores de público extras para melhorar a integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte Identidade em vários clientes.

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 e crie um novo projeto.

  2. Escolha APIs & Services (APIs e serviços) e, em seguida, OAuth consent screen (Tela de consentimento OAuth). 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.

  3. Escolha Credentials (Credenciais) e, em seguida, Create credentials (Criar credenciais). Escolha OAuth client ID (ID de cliente OAuth). 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.

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

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

  6. 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 na documentação do Google Cloud.

Para obter mais informações sobre como integrar o Google ao seu aplicativo Android, consulte Autenticar usuários com o Sign in with Google na documentação do Google Identity.

Como adicionar um provedor de identidades (IdP) Google
  1. Selecione Bancos de identidades no console do Amazon Cognito. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Google.

  5. Insira o ID do cliente do projeto OAuth que você criou no Google Cloud Platform. Para ter mais informações, consulte Configurar o OAuth 2.0 na Ajuda do console da Google Cloud Platform.

  6. 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 você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.

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

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

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

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

  8. Selecione Save Changes (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. 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

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. Adicione todos os IDs de cliente criados como valores de público extras para melhorar a integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte Identidade em vários clientes.

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 e crie um novo projeto.

  2. Escolha APIs & Services (APIs e serviços) e, em seguida, OAuth consent screen (Tela de consentimento OAuth). 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.

  3. Escolha Credentials (Credenciais) e, em seguida, Create credentials (Criar credenciais). Escolha OAuth client ID (ID de cliente OAuth). 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.

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

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

  6. 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 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 na documentação do Google Identity.

Como adicionar um provedor de identidades (IdP) Google
  1. Selecione Bancos de identidades no console do Amazon Cognito. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Google.

  5. Insira o ID do cliente do projeto OAuth que você criou no Google Cloud Platform. Para ter mais informações, consulte Configurar o OAuth 2.0 na Ajuda do console da Google Cloud Platform.

  6. 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 você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.

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

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

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

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

  8. Selecione 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. 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

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. Adicione todos os IDs de cliente criados como valores de público extras para melhorar a integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte Identidade em vários clientes.

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 e crie um novo projeto.

  2. Escolha APIs & Services (APIs e serviços) e, em seguida, OAuth consent screen (Tela de consentimento OAuth). 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.

  3. Escolha Credentials (Credenciais) e, em seguida, Create credentials (Criar credenciais). Escolha OAuth client ID (ID de cliente OAuth). 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.

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

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

  6. 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 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 na documentação do Google Identity.

Escolha Manage Identity Pools (Gerenciar grupos de identidades) na página inicial do console do Amazon Cognito:

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.

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

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

  4. Escolha a guia Google.

  5. Selecione Unlock (Desbloquear).

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

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. Adicione todos os IDs de cliente criados como valores de público extras para melhorar a integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte Identidade em vários clientes.

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 e crie um novo projeto.

  2. Escolha APIs & Services (APIs e serviços) e, em seguida, OAuth consent screen (Tela de consentimento OAuth). 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.

  3. Escolha Credentials (Credenciais) e, em seguida, Create credentials (Criar credenciais). Escolha OAuth client ID (ID de cliente OAuth). 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.

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

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

  6. 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 na documentação do Google Cloud.

Para obter mais informações sobre como integrar o Google à aplicação Web, consulte Sign in With Google 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. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Google.

  5. Insira o ID do cliente do projeto OAuth que você criou no Google Cloud Platform. Para ter mais informações, consulte Configurar o OAuth 2.0 na Ajuda do console da Google Cloud Platform.

  6. 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 você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.

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

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

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

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

  8. Selecione Save Changes (Salvar alterações).

Usar o Google

Para habilitar o login com o Google no aplicativo, siga a documentação do Google para Web.

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. }); } }

Unity

Como configurar o Google

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

  1. Vá para o console do Google Developers e crie um novo projeto.

  2. Escolha APIs & Services (APIs e serviços) e, em seguida, OAuth consent screen (Tela de consentimento OAuth). 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.

  3. Escolha Credentials (Credenciais) e, em seguida, Create credentials (Criar credenciais). Escolha OAuth client ID (ID de cliente OAuth). 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.

  4. Para Unity, crie um ID de cliente OAuth adicional para Android e outro para iOS.

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

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

  7. 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 na documentação do Google Cloud.

Criar um provedor OpenID no console do IAM

  1. Crie um provedor OpenID no console do IAM. Para obter informações sobre como configurar um provedor OpenID, consulte Usar provedores de identidade do OpenID Connect.

  2. Ao receber a solicitação para o URL do provedor, insira "https://accounts.google.com".

  3. Quando solicitado a informar um valor no campo Público, insira qualquer um dos três IDs de cliente criados nas etapas anteriores.

  4. Escolha o nome do provedor e adicione mais dois públicos com os outros dois IDs de cliente.

Configurar o provedor externo no console do Amazon Cognito

Escolha Manage Identity Pools (Gerenciar grupos de identidades) na página inicial do console do Amazon Cognito:

Como adicionar um provedor de identidades (IdP) Google
  1. Selecione Bancos de identidades no console do Amazon Cognito. Selecione um banco de identidades.

  2. Selecione a guia Acesso do usuário.

  3. Selecione Adicionar provedor de identidade.

  4. Selecione Google.

  5. Insira o ID do cliente do projeto OAuth que você criou no Google Cloud Platform. Para ter mais informações, consulte Configurar o OAuth 2.0 na Ajuda do console da Google Cloud Platform.

  6. 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 você deseja comparar a declaração, o Valor que gerará uma correspondência com essa opção de perfil e o Perfil que você deseja atribuir quando houver correspondência com a Atribuição de perfil. Selecione Adicionar outra para criar uma regra adicional com base em uma condição diferente.

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

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

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

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

  8. Selecione Save Changes (Salvar alterações).

Instalar o Unity Google Plugin

  1. Adicione o plugin do Unity da Google Play Games ao projeto Unity.

  2. Em Unity, no menu Windows, use os três IDs para as plataformas Android e iOS para configurar o plugin.

Usar o Google

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

void Start() { PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder().Build(); PlayGamesPlatform.InitializeInstance(config); PlayGamesPlatform.DebugLogEnabled = true; PlayGamesPlatform.Activate(); Social.localUser.Authenticate(GoogleLoginCallback); } void GoogleLoginCallback(bool success) { if (success) { string token = PlayGamesPlatform.Instance.GetIdToken(); credentials.AddLogin("accounts.google.com", token); } else { Debug.LogError("Google login failed. If you are not running in an actual Android/iOS device, this is expected."); } }

Xamarin

nota

O Amazon Cognito não comporta nativamente o Google na plataforma Xamarin. No momento, a integração requer o uso de uma visualização da web para passar pelo fluxo de login do navegador. Para saber como a integração com o Google funciona com outros SDKs, selecione outra plataforma.

Para habilitar o login com o Google na aplicação, será autentique os usuários e obtenha deles um token OpenID Connect. O Amazon Cognito usa esse token para gerar um identificador exclusivo do usuário que está associado a uma identidade do Cognito. Infelizmente, o Google SDK para Xamarin não permite que você recupere o token OpenID Connect. Por isso, use um cliente alternativo ou o fluxo da Web em uma visualização da Web.

Depois que tiver o token, você poderá configurá-lo em CognitoAWSCredentials:

credentials.AddLogin("accounts.google.com", token);
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. Adicione todos os IDs de cliente criados como valores de público extras para melhorar a integração. Para saber mais sobre o modelo de identidade entre clientes do Google, consulte Identidade em vários clientes.