Usar proveedores de identidad social con un grupo de usuarios - 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.

Usar proveedores de identidad social con un grupo de usuarios

Los usuarios de web y aplicaciones móviles pueden iniciar sesión a través de proveedores de identidad de redes sociales como Facebook, Google, Amazon y Apple. Con la IU web alojada e incorporada, Amazon Cognito proporciona el control y la administración de los tokens de los usuarios autenticados por todos los proveedores de identidad. De esta forma, los sistemas backend pueden estandarizar un conjunto de tokens para los grupos de usuarios. Debe habilitar la IU alojada para que se integre con los proveedores de identidad social compatibles. Cuando Amazon Cognito crea su interfaz de usuario alojada, crea puntos de enlace OAuth 2.0 que Amazon Cognito, usted OIDC y las redes sociales IdPs utilizan para intercambiar información. Para obtener más información, consulte la referencia de autenticación API de grupos de usuarios de Amazon Cognito.

Puede añadir un IDP social en Amazon AWS Management Console Cognito o utilizar Amazon AWS CLI Cognito. API

Información general sobre la autenticación con inicio de sesión por redes sociales
nota

El inicio de sesión a través de un tercero (federación) está disponible en los grupos de usuarios de Amazon Cognito. Esta característica es independiente de la federación a través de grupos de identidades de Amazon Cognito (identidades federadas).

Requisitos previos

Antes de comenzar, necesitará lo siguiente:

  • Un grupo de usuarios con un cliente de aplicación y un dominio de grupo de usuarios. Para obtener más información, consulte Crear un grupo de usuarios.

  • Un IdP para redes sociales.

Paso 1: Registrarse en un proveedor de identidad social

Antes de crear un proveedor de identidad social con Amazon Cognito, debe registrar su aplicación en él para recibir un ID y un secreto del cliente.

  1. Cree una cuenta de desarrollador con Facebook.

  2. Inicie sesión con sus credenciales de Facebook.

  3. En el menú My Apps (Mis aplicaciones), elija Create New App (Crear nueva aplicación).

  4. Escriba un nombre para la aplicación de Facebook y, a continuación, elija Create App ID (Crear ID de aplicación).

  5. En la barra de navegación de la izquierda, elija Settings (Configuración) y luego Basic (Básica).

  6. Tome nota del valor de App ID (ID de aplicación) y de App Secret (Secreto de la aplicación). Los usará en la sección siguiente.

  7. Elija + Add Platform (+ Agregar plataforma) en la parte inferior de la página.

  8. Elija Website (Sitio web).

  9. En Sitio web, introduzca la ruta a la página de inicio de sesión de su aplicación en el sitio. URL

    https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
  10. Elija Guardar cambios.

  11. Ingrese la ruta de acceso a la raíz del dominio del grupo de usuarios en App Domains (Dominios de aplicación).

    https://mydomain.us-east-1.amazoncognito.com
  12. Elija Guardar cambios.

  13. En la barra de navegación elija Products (Productos) y, a continuación, Set up (Configurar) para el producto con Facebook Login (Inicio de sesión con Facebook).

  14. En la barra de navegación elija Facebook Login (Inicio de sesión con Facebook) y, a continuación, Settings (Configuración).

    Introduce la ruta al /oauth2/idpresponse punto final del dominio de tu grupo de usuarios en Valid OAuth Redirect URIs.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. Elija Guardar cambios.

  1. Cree una cuenta de desarrollador con Amazon.

  2. Inicie sesión con las credenciales de Amazon.

  3. Debe crear un perfil de seguridad de Amazon para recibir un ID y un secreto de cliente de Amazon.

    Elija Apps and Services (Aplicaciones y servicios) en la barra de navegación de la parte superior de la página y, a continuación, elija Login with Amazon (Inicio de sesión con Amazon).

  4. Elija Create a Security Profile (Crear un perfil de seguridad).

  5. Introduzca un nombre de perfil de seguridad, una descripción del perfil de seguridad y un aviso de privacidad de consentimiento URL.

  6. Seleccione Save (Guardar).

  7. Elija Client ID (ID de cliente) y Client Secret (Secreto de cliente) para mostrar el ID de cliente y el secreto. Los usará en la sección siguiente.

  8. Coloque el cursor sobre el engranaje, elija Web Settings (Configuración de web) y, a continuación, elija Edit (Editar).

  9. Escriba el dominio del grupo de usuarios en Allowed Origins (Orígenes permitidos).

    https://mydomain.us-east-1.amazoncognito.com
  10. Introduzca el dominio de su grupo de usuarios con el /oauth2/idpresponse punto final en Allowed Return URLs.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  11. Seleccione Save (Guardar).

Para obtener más información sobre la OAuth versión 2.0 en la plataforma Google Cloud, consulta Más información sobre la autenticación y la autorización en la documentación de Google Workspace para desarrolladores.

  1. Cree una cuenta de desarrollador con Google.

  2. Inicie sesión en la consola de Google Cloud Platform.

  3. En la barra de navegación superior, elija Select a project (Seleccionar un proyecto). Si ya tiene un proyecto en la plataforma de Google, este menú muestra tu proyecto predeterminado.

  4. Selecciona NEWPROJECT.

  5. Introduce un nombre para el producto y, a continuación, elige CREATE.

  6. En la barra de navegación izquierda, selecciona Servicios APIs y, a continuación, la pantalla de consentimiento de Oauth.

  7. Introduzca la información de la aplicación, un dominio de aplicaciones, dominios autorizados e información de contacto del desarrollador. Sus dominios autorizados deben incluir amazoncognito.com y la raíz de su dominio personalizado, por ejemplo example.com. Elige. SAVEANDCONTINUE

  8. 1. En Ámbitos, elija Añadir o eliminar ámbitos y elija, como mínimo, los siguientes OAuth ámbitos.

    1. .../auth/userinfo.email

    2. .../auth/userinfo.profile

    3. openid

  9. En Test Users (Usuarios de prueba), elija Add Users (Añadir usuarios). Introduce tu dirección de correo electrónico y cualquier otro usuario de prueba autorizado y, a continuación, selecciona. SAVEANDCONTINUE

  10. Vuelva a expandir la barra de navegación izquierda y elija Servicios APIs y, a continuación, Credenciales.

  11. Elija CREATECREDENTIALSy, a continuación, ID de OAuth cliente.

  12. Seleccione un tipo de aplicacióny asigne un nombre al cliente.

  13. En JavaScript Orígenes autorizados, selecciona ADDURI. Introduzca el dominio del grupo de usuarios.

    https://mydomain.us-east-1.amazoncognito.com
  14. En Redirección autorizada URIs, selecciona ADDURI. Introduzca la al punto de conexión /oauth2/idpresponse de su dominio de grupo de usuarios.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  15. Elige CREATE.

  16. Almacene de forma segura los valores en los que muestra Google EN Your client ID (ID de tu cliente y Your client secret (Secreto de tu cliente). Proporcione estos valores a Amazon Cognito cuando agregue un proveedor de IdP Google.

Para up-to-date obtener más información sobre cómo configurar el inicio de sesión con Apple, consulta Cómo configurar tu entorno para iniciar sesión con Apple en la documentación para desarrolladores de Apple.

  1. Cree una cuenta de desarrollador en Apple.

  2. Inicie sesión con las credenciales de Apple.

  3. En la barra de navegación de la izquierda, elija Certificates, Identifiers & Profiles (Certificados, identificadores y perfiles).

  4. En la barra de navegación de la izquierda, elija Identifiers (Identificadores).

  5. En la página Identifiers (Identificadores), elija el icono +.

  6. En la página Registrar un nuevo identificador, selecciona Aplicación yIDs, a continuación, selecciona Continuar.

  7. En la página Select a type (Seleccionar tipo), elija App y, a continuación, elija Continue (Continuar).

  8. En la página Register an App ID (Registrar un ID de aplicación), haga lo siguiente:

    1. En Description (Descripción), introduzca una descripción.

    2. En App ID Prefix (Prefijo de ID de aplicación), introduzca un ID del paquete. Anote el valor de laPrefijo de ID de aplicación. Utilizarás este valor después de elegir Apple como proveedor de identidad enPaso 2: Añadir un proveedor de identidad social al grupo de usuarios.

    3. En Capabilities (Funcionalidades), elija SignInWithApple y, a continuación, elija Edit (Editar).

    4. En la página Iniciar sesión con Apple: configuración del ID de la aplicación, elige configurar la aplicación como principal o agrupada con otra aplicación yIDs, a continuación, selecciona Guardar.

    5. Elija Continue (Continuar).

  9. En la página Confirm your App ID (Confirmar ID de Apple), elija Register (Registrarse).

  10. En la página Identifiers (Identificadores), elija el icono +.

  11. En la página Registrar un nuevo identificador, selecciona Servicios yIDs, a continuación, selecciona Continuar.

  12. En la página Register a Services ID (Registrar un ID de servicio), haga lo siguiente:

    1. En Description (Descripción), escriba una descripción.

    2. En Identifier (Identificador), escriba un identificador. Anote el ID de servicios, ya que necesitará este valor para configurar Apple como proveedor en su grupo de identidades de Paso 2: Añadir un proveedor de identidad social al grupo de usuarios.

    3. Seleccione Continue (Continuar), a continuación, Register (Registrarse).

  13. Elija el ID de servicios que acaba de crear en la página de identificadores.

    1. Seleccione SignInWithApple y, a continuación, elija Configure (Configurar).

    2. En la página Web Authentication Configuration (Configuración de autenticación web), seleccione el ID de aplicación creado anteriormente comoPrimary App ID (ID de aplicación principal).

    3. Selecciona el icono + situado junto al sitio web URLs.

    4. En Domains and subdomains (Dominios y subdominios), introduzca el dominio del grupo de usuarios sin un prefijo https://.

      mydomain.us-east-1.amazoncognito.com
    5. En Retorno URLs, introduce la ruta al /oauth2/idpresponse punto final del dominio de tu grupo de usuarios.

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
    6. Elija Next (Siguiente) y, a continuación, elija Done (Listo). No es necesario verificar el dominio.

    7. Elija Continue (Continuar) y, a continuación, elija Save (Guardar).

  14. En la barra de navegación de la izquierda, elija Keys (Claves).

  15. En la página Keys (Claves), elija el icono +.

  16. En la página Register a New Key (Registrar una nueva clave), haga lo siguiente:

    1. En Key Name (Nombre de clave), escriba un nombre de clave.

    2. Elija SignInWithApple y, a continuación, Configure (Configurar).

    3. En la página Configure Key (Configurar clave), seleccione el ID de aplicación creado anteriormente como Primary App ID (ID de aplicación principal). Seleccione Guardar.

    4. Seleccione Continue (Continuar) y, a continuación, Register (Registrarse).

  17. En la página Download Your Key (Descargar clave), elija Download (Descargar) para descargar la clave privada, anote el Key ID (ID de la clave) y, a continuación, Done (Listo). Necesitará esta clave privada y el valor de ID de clave que se muestra en esta página después de elegir Apple como proveedor de identidad en Paso 2: Añadir un proveedor de identidad social al grupo de usuarios.

Paso 2: Añadir un proveedor de identidad social al grupo de usuarios

Para configurar el IdP social de un grupo de usuarios con AWS Management Console
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, introduzca sus AWS credenciales.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Elija la pestaña Sign-in experience (Experiencia de inicio de sesión). Localice Federated sign-in (Inicio de sesión federado) y, a continuación, seleccione Add an identity provider (Añadir un proveedor de identidad).

  5. Elija un IdP para redes sociales: Facebook, Google, Login with Amazon o Apple.

  6. Elija uno de los siguientes pasos, según el IdP para redes sociales que haya seleccionado:

    • Google y Login with Amazon: Escriba la ID de cliente de aplicacióny el secreto del cliente de aplicación generado en la sección anterior.

    • Facebook: introduce el ID de cliente de la aplicación y el secreto del cliente de la aplicación generados en la sección anterior y, a continuación, selecciona una API versión (por ejemplo, la versión 2.12). Te recomendamos que elijas la versión más reciente posible, ya que cada Facebook API tiene un ciclo de vida y una fecha de descontinuación. El alcance y los atributos de Facebook pueden variar API de una versión a otra. Recomendamos que pruebe su inicio de sesión de identidad social con Facebook para asegurarse de que la federación funcione según lo previsto.

    • Inicio de sesión con Apple: escriba laID de servicio,ID de equipo,ID de clave, yClave privadagenerado en la sección anterior.

  7. Introduzca los nombres de los ámbitos autorizados que desea utilizar. Los ámbitos definen a qué atributos de usuario (como name y email) desea acceder con su aplicación. En el caso de Facebook, deben separarse con comas. En el caso de Google y Login with Amazon, deben separarse con espacios. Para SignInWithApple, marque las casillas de verificación de los ámbitos a los que desee acceder.

    Proveedor de identidad social Ámbitos de ejemplo
    Facebook public_profile, email
    Google profile email openid
    Login with Amazon profile postal_code
    Inicio de sesión con Apple email name

    Al usuario de la aplicación se le pedirá que esté de acuerdo con proporcionar estos atributos a su aplicación. Para obtener más información acerca de sus ámbitos, consulte la documentación de Google, Facebook, Login with Amazon o Inicio de sesión con Apple.

    En el caso de Sign in with Apple (Inicio de sesión con Apple), estos son escenarios de usuario en los que es posible que no se devuelvan los ámbitos.

    • Un usuario final se encuentra con errores después de salir de la página de inicio de sesión de Apple (puede ser un error interno de Amazon Cognito o de cualquier cosa que haya escrito el desarrollador).

    • El identificador de ID de servicio se utiliza en todos los grupos de usuarios u otros servicios de autenticación.

    • Un desarrollador añade ámbitos adicionales después de que el usuario final haya iniciado sesión (no se recupera ninguna información nueva).

    • Un desarrollador elimina al usuario y luego el usuario vuelve a iniciar sesión sin quitar la aplicación de su perfil de ID de Apple.

  8. Asigne atributos de su IdP a su grupo de usuarios. Para obtener más información, consulte Especificación de asignaciones de atributos del proveedor de identidad para su grupo de usuarios.

  9. Seleccione Crear.

  10. DelIntegración de clientes de aplicaciones, elija uno de los Clientes de aplicaciones en la lista y Edit hosted UI settings (Modificar la configuración de IU). Agregue el nuevo IdP social al cliente de aplicación en Identity providers (Proveedores de identidad).

  11. Elija Guardar cambios.

Paso 3: Probar la configuración del proveedor de identidad social

Puedes crear un inicio de sesión URL utilizando los elementos de las dos secciones anteriores. Úselo para probar la configuración del proveedor de identidad social.

https://mydomain.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com

Puede encontrar el dominio en la página de la consola Domain name (Nombre de dominio) del grupo de usuarios. El valor de client_id se encuentra en la página App client settings (Configuración del cliente de aplicación). Usa tu callback URL para el parámetro redirect_uri. Esta es la página a URL la que se redirigirá al usuario tras una autenticación correcta.

nota

Amazon Cognito cancela las solicitudes de autenticación que no se completan en 5 minutos y redirige al usuario a la IU alojada. La página muestra un mensaje de error Something went wrong.