Configurar Google como un IdP de grupo de identidades - Amazon Cognito

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configurar Google como un IdP de grupo de identidades

Amazon Cognito se integra con Google para ofrecer autenticación federada a sus usuarios de aplicación móvil. En esta sección se explica cómo registrar y configurar su aplicación con Google como IdP.

Android

nota

Si su aplicación utiliza Google y está disponible en varias plataformas móviles, debe configurarla como proveedor de OpenID Connect. Agregue todos los ID de cliente creados como valores de audiencia adicionales para permitir una mejor integración. Para obtener más información sobre el modelo de identidad de varios clientes de Google, consulte Cross-client Identity.

Configuración de Google

Para activar el inicio de sesión de Google para Android, cree un proyecto de consola de Google Developers para su aplicación.

  1. Vaya a la consola de Google Developers y cree un proyecto.

  2. Elija APIs & Services (API y servicios) y luego OAuth consent screen (Pantalla de consentimiento de OAuth). Personalice la información que Google muestra a sus usuarios cuando Google solicita su consentimiento para compartir sus datos de perfil con su aplicación.

  3. Elija Credentials (Credenciales) y luego Create credentials (Crear credenciales). Elija OAuth client ID (ID de cliente de OAuth). Seleccione Android en Application type (Tipo de aplicación). Cree un ID de cliente independiente para cada plataforma en la que desarrolle la aplicación.

  4. Desde Credentials (Credenciales), elija Manage service accounts (Administrar cuentas de servicios). Elija Create service account (Crear cuenta de servicio). Ingrese los detalles de su cuenta de servicio y, a continuación, seleccione Create and continue (Crear y continuar).

  5. Conceda a la cuenta de servicio acceso a su proyecto. Conceda a los usuarios acceso a la cuenta de servicio según lo requiera su aplicación.

  6. Elija la nueva cuenta de servicio y luego la pestaña Keys (Claves) y Add key (Agregar clave). Cree y descargue una nueva clave JSON.

Para ver más información acerca de cómo utilizar la consola de Google Developers, consulte Crea y administra proyectos en la documentación de Google Cloud.

Para obtener más información sobre cómo integrar Google en tu aplicación de Android, consulta Cómo autenticar a los usuarios mediante el inicio de sesión con Google en la documentación de Google Identity.

Para agregar un proveedor de identidades (IdP) de Google
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Seleccione Google.

  5. Ingrese el ID de cliente del proyecto de OAuth que creó en la Plataforma de Google Cloud. Para obtener más información, consulte Configurar OAuth 2.0 en la Ayuda de la consola de Google Cloud Platform.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Uso de Google

Para habilitar el inicio de sesión con Google en su aplicación, siga las instrucciones de la documentación de Google para Android. Cuando un usuario inicia sesión, solicita un token de autenticación de OpenID Connect a Google. Luego Amazon Cognito utiliza el token para autenticar al usuario y generar un identificador único.

En el siguiente código de muestra se muestra cómo recuperar el token de autenticación de 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

Si su aplicación utiliza Google y está disponible en varias plataformas móviles, configure Google como proveedor de OpenID Connect. Agregue todos los ID de cliente creados como valores de audiencia adicionales para permitir una mejor integración. Para obtener más información sobre el modelo de identidad de varios clientes de Google, consulte Cross-client Identity.

Configuración de Google

Para habilitar el inicio de sesión de Google para iOS, cree un proyecto de consola de Google Developers para su aplicación.

  1. Vaya a la consola de Google Developers y cree un proyecto.

  2. Elija APIs & Services (API y servicios) y luego OAuth consent screen (Pantalla de consentimiento de OAuth). Personalice la información que Google muestra a sus usuarios cuando Google solicita su consentimiento para compartir sus datos de perfil con su aplicación.

  3. Elija Credentials (Credenciales) y luego Create credentials (Crear credenciales). Elija OAuth client ID (ID de cliente de OAuth). Seleccione iOS en Application type (Tipo de aplicación). Cree un ID de cliente independiente para cada plataforma en la que desarrolle la aplicación.

  4. Desde Credentials (Credenciales), elija Manage service accounts (Administrar cuentas de servicios). Elija Create service account (Crear cuenta de servicio). Ingrese los detalles de su cuenta de servicio y seleccione Create and continue (Crear y continuar).

  5. Conceda a la cuenta de servicio acceso a su proyecto. Conceda a los usuarios acceso a la cuenta de servicio según lo requiera su aplicación.

  6. Elija la nueva cuenta de servicio. Elija la pestaña Keys (Claves) y Add key (Agregar clave). Cree y descargue una nueva clave JSON.

Para ver más información acerca de cómo utilizar la consola de Google Developers, consulte Crea y administra proyectos en la documentación de Google Cloud.

Para ver más información acerca de cómo integrar Google en su aplicación iOS, consulte el tema sobre inicio de sesión con Google para iOS en la documentación de Google Identity.

Para agregar un proveedor de identidades (IdP) de Google
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Seleccione Google.

  5. Ingrese el ID de cliente del proyecto de OAuth que creó en la Plataforma de Google Cloud. Para obtener más información, consulte Configurar OAuth 2.0 en la Ayuda de la consola de Google Cloud Platform.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Uso de Google

Para habilitar el inicio de sesión con Google en su aplicación, siga la documentación de Google para iOS. Si la autenticación tiene éxito, se genera un token de autenticación de OpenID Connect que Amazon Cognito utiliza para autenticar al usuario y generar un identificador único.

Si la autenticación tiene éxito, se genera un objeto GTMOAuth2Authentication, que contiene un id_token y que Amazon Cognito utiliza para autenticar al usuario y generar un identificador único:

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

iOS - Swift

nota

Si su aplicación utiliza Google y está disponible en varias plataformas móviles, configure Google como proveedor de OpenID Connect. Agregue todos los ID de cliente creados como valores de audiencia adicionales para permitir una mejor integración. Para obtener más información sobre el modelo de identidad de varios clientes de Google, consulte Cross-client Identity.

Configuración de Google

Para habilitar el inicio de sesión de Google para iOS, cree un proyecto de consola de Google Developers para su aplicación.

  1. Vaya a la consola de Google Developers y cree un proyecto.

  2. Elija APIs & Services (API y servicios) y luego OAuth consent screen (Pantalla de consentimiento de OAuth). Personalice la información que Google muestra a sus usuarios cuando Google solicita su consentimiento para compartir sus datos de perfil con su aplicación.

  3. Elija Credentials (Credenciales) y luego Create credentials (Crear credenciales). Elija OAuth client ID (ID de cliente de OAuth). Seleccione iOS en Application type (Tipo de aplicación). Cree un ID de cliente independiente para cada plataforma en la que desarrolle la aplicación.

  4. Desde Credentials (Credenciales), elija Manage service accounts (Administrar cuentas de servicios). Elija Create service account (Crear cuenta de servicio). Ingrese los detalles de su cuenta de servicio y seleccione Create and continue (Crear y continuar).

  5. Conceda a la cuenta de servicio acceso a su proyecto. Conceda a los usuarios acceso a la cuenta de servicio según lo requiera su aplicación.

  6. Elija la nueva cuenta de servicio y luego la pestaña Keys (Claves) y Add key (Agregar clave). Cree y descargue una nueva clave JSON.

Para ver más información acerca de cómo utilizar la consola de Google Developers, consulte Crea y administra proyectos en la documentación de Google Cloud.

Para ver más información acerca de cómo integrar Google en su aplicación iOS, consulte el tema sobre inicio de sesión con Google para iOS en la documentación de Google Identity.

Elija Manage Identity Pools (Administrar grupos de identidades) de la página de inicio de la consola de Amazon Cognito:

Configuración del proveedor externo en la consola de Amazon Cognito
  1. Elija el nombre del grupo de identidades donde desee habilitar Google como proveedor externo. Se mostrará la página Dashboard (Panel) de su grupo de identidades.

  2. En la esquina superior derecha de la página Dashboard (Panel), elija Edit identity pool (Editar grupo de identidades). Se visualizará la página Edit identity pool.

  3. Desplácese hacia abajo y elija Authentication providers (Proveedores de autenticación) para expandir la sección.

  4. Elija la pestaña Google .

  5. Elija Unlock (Desbloquear).

  6. Introduzca el ID de cliente de Google que Google le ha entregado y, a continuación, elija Save Changes (Guardar cambios).

Uso de Google

Para habilitar el inicio de sesión con Google en su aplicación, siga la documentación de Google para iOS. Si la autenticación tiene éxito, se genera un token de autenticación de OpenID Connect que Amazon Cognito utiliza para autenticar al usuario y generar un identificador único.

Una autenticación correcta da como resultado un objeto GTMOAuth2Authentication que contiene unid_token. Amazon Cognito utiliza este token para autenticar al usuario y generar un identificador único.

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

Si su aplicación utiliza Google y está disponible en varias plataformas móviles, debe configurar Google como proveedor de OpenID Connect. Agregue todos los ID de cliente creados como valores de audiencia adicionales para permitir una mejor integración. Para obtener más información sobre el modelo de identidad de varios clientes de Google, consulte Cross-client Identity.

Configuración de Google

Para habilitar el inicio de sesión con Google en una aplicación JavaScript web, crea un proyecto de consola de Google Developers para tu aplicación.

  1. Vaya a la consola de Google Developers y cree un proyecto.

  2. Elija APIs & Services (API y servicios) y luego OAuth consent screen (Pantalla de consentimiento de OAuth). Personalice la información que Google muestra a sus usuarios cuando Google solicita su consentimiento para compartir sus datos de perfil con su aplicación.

  3. Elija Credentials (Credenciales) y luego Create credentials (Crear credenciales). Elija OAuth client ID (ID de cliente de OAuth). Seleccione Web application (Aplicación web) en Application type (Tipo de aplicación). Cree un ID de cliente independiente para cada plataforma en la que desarrolle la aplicación.

  4. Desde Credentials (Credenciales), elija Manage service accounts (Administrar cuentas de servicios). Elija Create service account (Crear cuenta de servicio). Ingrese los detalles de su cuenta de servicio y seleccione Create and continue (Crear y continuar).

  5. Conceda a la cuenta de servicio acceso a su proyecto. Conceda a los usuarios acceso a la cuenta de servicio según lo requiera su aplicación.

  6. Elija la nueva cuenta de servicio y luego la pestaña Keys (Claves) y Add key (Agregar clave). Cree y descargue una nueva clave JSON.

Para ver más información acerca de cómo utilizar la consola de Google Developers, consulte Crea y administra proyectos en la documentación de Google Cloud.

Para ver más información acerca de cómo integrar Google en su aplicación web, consulte el tema sobre inicio de sesión con Google en la documentación de Google Identity.

Configuración del proveedor externo en la consola de Amazon Cognito

Para agregar un proveedor de identidades (IdP) de Google
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Seleccione Google.

  5. Ingrese el ID de cliente del proyecto de OAuth que creó en la Plataforma de Google Cloud. Para obtener más información, consulte Configurar OAuth 2.0 en la Ayuda de la consola de Google Cloud Platform.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Uso de Google

Para habilitar el inicio de sesión con Google en su aplicación, siga la documentación de Google para la web.

Si la autenticación tiene éxito, se genera un objeto de respuesta que contiene un id_token que Amazon Cognito utiliza para autenticar al usuario y generar un identificador único:

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

Configuración de Google

Para habilitar el inicio de sesión de Google para una aplicación Unity, cree un proyecto de consola de Google Developers para su aplicación.

  1. Vaya a la consola de Google Developers y cree un proyecto.

  2. Elija APIs & Services (API y servicios) y luego OAuth consent screen (Pantalla de consentimiento de OAuth). Personalice la información que Google muestra a sus usuarios cuando Google solicita su consentimiento para compartir sus datos de perfil con su aplicación.

  3. Elija Credentials (Credenciales) y luego Create credentials (Crear credenciales). Elija OAuth client ID (ID de cliente de OAuth). Seleccione Web application (Aplicación web) en Application type (Tipo de aplicación). Cree un ID de cliente independiente para cada plataforma en la que desarrolle la aplicación.

  4. Para Unity, crea un ID de cliente de OAuth adicional paraAndroid y otro para iOS.

  5. Desde Credentials (Credenciales), elija Manage service accounts (Administrar cuentas de servicios). Elija Create service account (Crear cuenta de servicio). Ingrese los detalles de su cuenta de servicio y seleccione Create and continue (Crear y continuar).

  6. Conceda a la cuenta de servicio acceso a su proyecto. Conceda a los usuarios acceso a la cuenta de servicio según lo requiera su aplicación.

  7. Elija la nueva cuenta de servicio y luego la pestaña Keys (Claves) y Add key (Agregar clave). Cree y descargue una nueva clave JSON.

Para ver más información acerca de cómo utilizar la consola de Google Developers, consulte Crea y administra proyectos en la documentación de Google Cloud.

Creación de un proveedor de OpenID en la consola de IAM

  1. Cree un proveedor de OpenID en la consola de IAM. Para ver instrucciones sobre cómo configurar un proveedor de OpenID, consulte la página sobre uso de proveedores de identidad OpenID Connect.

  2. Cuando se le solicite la URL de su proveedor, especifique "https://accounts.google.com".

  3. Cuando se le pida que introduzca un valor en el campo Audience (Público), introduzca uno de los tres ID de cliente que ha creado en los pasos anteriores.

  4. Elija el nombre del proveedor y agregue dos públicos más con los dos otros ID de cliente.

Configuración del proveedor externo en la consola de Amazon Cognito

Elija Manage Identity Pools (Administrar grupos de identidades) de la página de inicio de la consola de Amazon Cognito:

Para agregar un proveedor de identidades (IdP) de Google
  1. Elija Grupos de identidades en la consola de Amazon Cognito. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Seleccione Agregar proveedor de identidades.

  4. Seleccione Google.

  5. Ingrese el ID de cliente del proyecto de OAuth que creó en la Plataforma de Google Cloud. Para obtener más información, consulte Configurar OAuth 2.0 en la Ayuda de la consola de Google Cloud Platform.

  6. Para establecer el rol que Amazon Cognito solicita cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Configuración del rol.

    1. Puede asignar a los usuarios de ese IdP el Rol predeterminado que configuró al configurar el Rol autenticado o puede Elegir el rol con reglas.

      1. Si eligió Elegir rol con reglas, ingrese la Reclamación de origen de la autenticación del usuario, el Operador con el que desea comparar la afirmación, el Valor que hará que coincida con esta elección de rol y el Rol que desea asignar cuando la Asignación del rol coincida. Seleccione Agregar otra para crear una regla adicional en función de una condición diferente.

      2. Elija una Resolución de rol. Cuando las reclamaciones del usuario no coinciden con las reglas, puede denegar las credenciales o emitir credenciales para el Rol autenticado.

  7. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, configure Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  8. Seleccione Guardar cambios.

Instalación del complemento Unity Google

  1. Añada el complemento Google Play Games para Unity al proyecto de Unity.

  2. En Unity, en el menú de Windows, use los tres ID para las plataformas Android e iOS para configurar el complemento.

Uso de Google

En el siguiente código de muestra se muestra cómo recuperar el token de autenticación de 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

Amazon Cognito no es compatible con Google de forma nativa en la plataforma Xamarin. Actualmente, necesita el uso de una vista de web para seguir el flujo de inicio de sesión del navegador. Para obtener información acerca de cómo la integración de Google funciona con otros SDK, seleccione otra plataforma.

Para habilitar el inicio de sesión con Google en su aplicación, autentique a sus usuarios y obtenga un token de OpenID Connect para ellos. Amazon Cognito utiliza este token para generar un identificador de usuario único asociado a una identidad de Amazon Cognito. Puesto que el SDK de Google para Xamarin no le permite recuperar el token de OpenID Connect, utilice un cliente alternativo o el flujo web en una vista web.

Una vez que tenga el token, puede establecerlo en sus CognitoAWSCredentials:

credentials.AddLogin("accounts.google.com", token);
nota

Si su aplicación utiliza Google y está disponible en varias plataformas móviles, debe configurar Google como proveedor de OpenID Connect. Agregue todos los ID de cliente creados como valores de audiencia adicionales para permitir una mejor integración. Para obtener más información sobre el modelo de identidad de varios clientes de Google, consulte Cross-client Identity.