¿Cómo puedo configurar Google como proveedor de identidades federado en un grupo de usuarios de Amazon Cognito?

7 minutos de lectura
0

Quiero usar Google como proveedor de identidad federado (IdP) en un grupo de usuarios de Amazon Cognito.

Solución

Los grupos de usuarios de Amazon Cognito permiten iniciar sesión a través de un tercero (federación). Esto incluye los IdP sociales, como Google o Facebook. Para obtener más información, consulte Adding social identity providers to a user pool.

Creación de un grupo de usuarios de Amazon Cognito con un cliente de aplicación y un nombre de dominio

  1. Cree un grupo de usuarios.
    Nota: Durante la creación, el atributo estándar email se selecciona de forma predeterminada. Para obtener más información, consulte Atributos de grupo de usuarios.
  2. Cree un cliente de aplicación en el grupo de usuarios. Para obtener más información, consulte Add an app to turn on the hosted web UI.
  3. Agregue un nombre de dominio para el grupo de usuarios.

Creación de un proyecto de la consola de API de Google

Si ya tiene un proyecto, cree otro nuevo:

  1. Inicie sesión en la consola de API de Google con su cuenta de Google. Para obtener más información, consulte Manage APIs in the API console en el sitio web de Ayuda de Google.
  2. En Panel (API y servicios), seleccione CREATE.
  3. En Nuevo proyecto, introduzca un Nombre de proyecto.
  4. En Ubicación, seleccione BROWSE y, a continuación, elija una ubicación.
  5. Seleccione CREATE.

Para obtener más información, consulte la documentación Acceder con Google para la Web en el sitio web de Google Identity.

Configuración de la pantalla de consentimiento de OAuth

  1. En la consola de API de Google, en el panel de navegación izquierdo, seleccione Pantalla de consentimiento de OAuth.
  2. Complete el formulario de la pantalla de consentimiento. Como mínimo, haga lo siguiente:
    En Nombre de la aplicación, introduzca un nombre.
    En Dominios autorizados, introduzca amazoncognito.com.
    Importante: Debe introducir este dominio o no podrá usar su dominio de Amazon Cognito más adelante al crear un ID de cliente de OAuth.
  3. Seleccione Guardar. Se le redirigirá a la página Credenciales.

Para obtener más información, consulte Completa la pantalla de consentimiento de OAuth en el sitio web de Google Workspace.

Obtención de las credenciales de cliente de OAuth 2.0

  1. En la consola de API de Google, en la página Credenciales, seleccione Crear credenciales. Luego, seleccione ID de cliente de OAuth.
  2. En la página Crear ID de cliente de OAuth, en Tipo de aplicación, seleccione Aplicación web.
  3. Siga estos pasos:
    Introduzca un nombre para su ID de cliente de OAuth.
    En Orígenes autorizados de JavaScript, introduzca su dominio de Amazon Cognito. Por ejemplo: https://yourDomainPrefix.auth.region.amazoncognito.com.
    Nota: Sustituya yourDomainPrefix y region con los valores de su grupo de usuarios. Encontrará estos valores en la consola de Amazon Cognito, en la página Nombre de dominio de su grupo de usuarios.
    En URI de redireccionamiento autorizados, introduzca https://yourDomainPrefix.auth.region.amazoncognito.com/oauth2/idpresponse.
    Nota: Sustituya yourDomainPrefix y region con los valores de su grupo de usuarios. Consulte el paso anterior para obtener más información.
  4. En el cuadro de diálogo Cliente de OAuth, busque el ID y el secreto del cliente, y anótelos para más adelante. Los necesitará para configurar Google en su grupo de usuarios de Amazon Cognito.

Para obtener más información, consulte Cómo usar OAuth 2.0 para acceder a las API de Google en el sitio web de Google Identity.

Configuración de Google como IdP federado en su grupo de usuarios

  1. En la consola de Amazon Cognito, seleccione Grupos de usuarios.
  2. Seleccione el grupo de usuarios que desee usar.
  3. Seleccione la pestaña Experiencia de inicio de sesión.
  4. En la sección Inicio de sesión con el proveedor de identidades federadas, seleccione Agregar proveedor de identidades.
  5. Seleccione Google. A continuación, en Configurar la federación de Google con este grupo de usuarios:
    En ID de cliente, pegue el ID de cliente que anotó en un paso anterior.
    En Secreto de cliente, pegue el secreto del cliente que anotó en un paso anterior.
    En Ámbitos autorizados, introduzca el OpenID de correo electrónico del perfil.
  6. En Asignar atributos entre Google y su grupo de usuarios:
    En Atributo de grupo de usuarios del atributo email, realice la asignación al atributo de Google de email.
    Seleccione Agregar otro atributo y asigne el valor en Atributo de grupo de usuarios de username al valor en Atributo de Google de username.
  7. Seleccione Agregar proveedor de identidades.

Cambio de la configuración del cliente de la aplicación para el grupo de usuarios

Nota: En la configuración del cliente de la aplicación, se debe poder escribir en los atributos del grupo de usuarios asignado. Para obtener más información, consulte Specifying identity provider attribute mappings for your user pool.

  1. En la consola de Amazon Cognito, seleccione su grupo de usuarios.
  2. Seleccione la pestaña Integración de aplicaciones.
  3. En Lista de clientes de aplicación, seleccione Crear un cliente de aplicación.
  4. En tipo de aplicación, seleccione Cliente público. A continuación, introduzca un nombre para el cliente de la aplicación.
    En Flujos de autenticación, seleccione ALLOW_USER_PASSWORD_AUTH y ALLOW_REFRESH_TOKEN_AUTH.
    En URL de devolución de llamadas permitidas, introduzca la URL a la que desee que se redirija a los usuarios cuando inicien una sesión. Para realizar pruebas, introduzca cualquier URL válida, como https://www.example.com/.
    En Direcciones URL de cierre de sesión, introduzca la URL a la que desee que se redirija a los usuarios cuando cierren una sesión. Para realizar pruebas, introduzca cualquier URL válida, como https://www.example.com/.
    En Proveedores de identidad, seleccione Grupo de usuarios de Cognito y Google.
    En Tipo de concesión de OAuth 2.0, seleccione Concesión implícita.
    En Ámbitos de OpenID Connect, seleccione email, openid y profile.
    Importante:
    El flujo de OAuth de concesión implícita es únicamente para fines de prueba. Se recomienda utilizar la concesión de códigos de autorización para los sistemas de producción.
  5. Seleccione Crear un cliente de aplicación.

Para obtener más información, consulte App client settings terminology.

Construcción de la URL del punto de enlace

Con los valores de su grupo de usuarios, cree esta URL del punto de enlace de inicio de sesión para la interfaz de usuario web alojada de Amazon Cognito: https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

Nota: Sustituya yourDomainPrefix y region con los valores de su grupo de usuarios. Encontrará estos valores en la consola de Amazon Cognito, en la página Nombre de dominio de su grupo de usuarios. Sustituya yourClientId por el ID de cliente de la aplicación Amazon Cognito y sustituya redirectUrl por la URL de devolución de llamada de su cliente de aplicación. Puede encontrarlos en la consola de Amazon Cognito, en la página Configuración del cliente de aplicación de su grupo de usuarios.

Para obtener más información, consulte How do I configure the hosted web UI for Amazon Cognito? y Login endpoint.

Prueba de la URL del punto de enlace

  1. Introduzca la URL del punto de enlace de inicio de sesión que ha construido en su navegador web.
  2. En la página web de su punto de enlace de inicio de sesión, seleccione Continuar con Google.
    Nota: Si se le redirige a la URL de devolución de llamadas del cliente de la aplicación Amazon Cognito, ya habrá iniciado sesión en su cuenta de Google en el navegador. Los tokens del grupo de usuarios aparecen en la URL de la barra de direcciones del navegador web.
  3. En Iniciar sesión con Google, seleccione su cuenta de Google e inicie sesión.

Una vez que se haya autenticado correctamente, se le redirigirá a la URL de devolución de llamadas del cliente de la aplicación Amazon Cognito. Los tokens web JSON (JWT) emitidos por el grupo de usuarios aparecen en la URL de la barra de direcciones del navegador web.
Nota: En una aplicación web real, la URL del punto de enlace de inicio de sesión la genera un SDK de JavaScript. Además, se analizan los tokens JWT en la URL.

Información relacionada

Adding user pool sign-in through a third party

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 10 meses