Skip to main content
Connected Accounts para Token Vault permite que las aplicaciones accedan de forma segura a API externas en nombre del usuario mediante Token Vault. Mientras que la autenticación de usuario estándar gestiona el inicio de sesión del usuario a través de un Proveedor de identidad social o empresarial, Connected Accounts vincula un perfil de usuario con servicios externos como Google, GitHub, Slack y otros, lo que facilita el acceso delegado a API externas en nombre del usuario. Una vez que un usuario conecta correctamente su cuenta y autoriza el acceso a un proveedor externo compatible, Auth0:
  • Asocia la cuenta con el usuario como cuenta conectada.
  • Almacena en Token Vault los tokens de acceso y de actualización del proveedor externo para la cuenta conectada.
Connected Accounts para Token Vault crea y administra un perfil de usuario unificado de Auth0 vinculado a varias cuentas externas, lo que permite una autorización sin fricciones. A continuación, la aplicación recupera las credenciales almacenadas en Token Vault para interactuar con API externas en nombre del usuario.

Autenticación de usuarios vs. Connected Accounts

Cuando configura Connected Accounts para una conexión social o de empresa compatible, Auth0 usa el flujo de Connected Accounts (endpoint /me/v1/connected-accounts) para recuperar y almacenar tokens de acceso y tokens de actualización en Token Vault, en lugar de usar el flujo de inicio de sesión social o de empresa (endpoint /authorize). Después de completar correctamente el flujo de Connected Accounts, Auth0 agrega la cuenta del usuario al array connected_accounts del perfil de usuario. En cambio, en el flujo de inicio de sesión social o de empresa, Auth0 agrega la cuenta del usuario al array identities del perfil de usuario. La siguiente tabla explica las diferencias entre los flujos de autenticación de usuarios y Connected Accounts: Puede habilitar la autenticación de usuarios, Connected Accounts o ambos para conexiones sociales o de empresa compatibles. La siguiente tabla explica el comportamiento de las distintas configuraciones de propósito, incluida la forma de pasar alcances a la conexión:

Cómo funciona

El flujo de Connected Accounts usa la API My Account para crear y administrar cuentas conectadas de un usuario en proveedores externos compatibles. Antes de que el usuario pueda iniciar una solicitud de Connected Accounts desde la aplicación cliente, esta debe obtener un token de acceso con los alcances de Connected Accounts para acceder a la API My Account.
Si su aplicación usa Organizaciones, autentique al usuario con la organización de destino antes de iniciar el flujo de Connected Accounts. Token Vault almacena la cuenta conectada en el perfil de Auth0 del usuario, por lo que cada miembro de la organización conecta y autoriza su propia cuenta externa.
El siguiente diagrama de secuencia ilustra el flujo de Connected Accounts de extremo a extremo:
Cuando un usuario inicia sesión mediante Auth0 con un proveedor externo compatible, inicia una solicitud de Connected Accounts desde la aplicación cliente:
  1. La aplicación cliente realiza una solicitud POST al endpoint /me/v1/connected-accounts/connect de la API My Account, pasando alcances y otros parámetros que se enviarán al proveedor externo. Para obtener más información, lea Iniciar una solicitud de Connected Accounts.
  2. La API My Account crea un auth_session y un connect_uri únicos que contienen un ticket para redirigir al usuario a un navegador web. La aplicación cliente guarda el auth_session para verificarlo más adelante. Si DPoP está configurado, la API My Account valida el JWT de prueba de DPoP.
  3. La aplicación cliente redirige al usuario al connect_uri con el ticket como parámetro de consulta para la autenticación y autorización del usuario en el navegador. La aplicación cliente también puede pasar un code_challenge o code_challenge_method a la URL, como en el Flujo de código de autorización con PKCE.
  4. El usuario conecta la cuenta y autoriza los permisos de la conexión en la pantalla de consentimiento.
  5. Después de que el usuario autoriza correctamente la conexión, el proveedor externo redirige al usuario a la API My Account, que a su vez lo redirige a la aplicación cliente mediante el redirect_uri con un connect_code de un solo uso.
  6. La aplicación cliente presenta el connect_code, el code_verifier (si corresponde) y el auth_session original a la API My Account realizando una solicitud POST al endpoint /me/v1/connected-accounts/complete. Para obtener más información, lea Completar una solicitud de Connected Accounts.
  7. La API My Account valida la solicitud confirmando lo siguiente:
    • Que el auth_session coincide con el ID emitido originalmente para el usuario
    • Que la solicitud proviene del mismo dispositivo que inició el flujo de Connected Accounts
    • El JWT de prueba de DPoP (si está configurado)
    • El connect_code de un solo uso
    • El code_verifier (si se usa el flujo PKCE)
  8. Después de validar correctamente la solicitud, el Servidor de autorización de Auth0 agrega la cuenta al array connected_accounts del perfil del usuario y almacena los tokens de acceso y de actualización de la cuenta conectada en Token Vault.
  9. La API My Account completa el flujo enviando un código de estado 200 a la aplicación cliente, lo que indica que la cuenta se conectó correctamente.

Requisitos previos

Antes de configurar Connected Accounts, asegúrese de lo siguiente:
  • Configurar el Token Vault para que su aplicación cliente almacene de forma segura los tokens de acceso y de actualización asociados a cada cuenta conectada en el Token Vault.
  • Configurar la API My Account, que los usuarios autenticados usan para conectar y administrar cuentas.
  • Configurar Multi-Resource Refresh Token (MRRT) para obtener un token de acceso para la API My Account.
  • (Opcional) Configurar DPoP para la API My Account y su aplicación cliente a fin de aplicar restricción por remitente a los tokens de acceso y evitar su robo. De forma predeterminada, la API My Account puede aceptar tokens de acceso vinculados a DPoP.

Configurar la API My Account

Para usar Connected Accounts, configure la API My Account en el Auth0 Dashboard:
  1. Vaya a Applications > APIs y active la API My Account.
  2. Una vez activada, seleccione Auth0 My Account API y, a continuación, la pestaña Application Access.
  3. Busque su aplicación cliente y seleccione Edit para configurar sus políticas de acceso a la aplicación.
  4. Seleccione User Access y, en Authorization, seleccione Authorized.
  5. En los permisos, seleccione All para todos los alcances de Connected Accounts de la aplicación.
  6. Seleccione Save. Esto crea un client grant que permite a su aplicación cliente acceder a la API My Account con los alcances de Connected Accounts en nombre del usuario.
  7. Si usa Multi-Resource Refresh Token, vaya a la pestaña Settings. En Access Settings, seleccione Allow Skipping User Consent.

Configurar el Token de actualización multirrecurso

Configure el Token de actualización multirrecurso (MRRT) para obtener un único token de actualización de larga duración que pueda intercambiarse por nuevos tokens de acceso para API My Account y otras API sin que el usuario tenga que volver a autenticarse. Puede configurar MRRT con el Auth0 Dashboard o la Management API.
Para configurar MRRT con el Auth0 Dashboard:
  1. Vaya a Applications > Applications y seleccione su aplicación.
  2. En Multi-Resource Refresh Token, seleccione Edit Configuration.
  3. Para habilitar MRRT con API My Account, active My Account API.

Configurar Connected Accounts

Antes de configurar Connected Accounts para una conexión, asegúrese de haber autorizado la conexión para su aplicación cliente. En Auth0 Dashboard:
  1. Vaya a Authentication > Social Connections o Enterprise Connections y seleccione la conexión.
  2. Seleccione Applications y luego habilite la conexión para su aplicación cliente.
Puede configurar Connected Accounts con Auth0 Dashboard o con la Management API.
Para configurar Connected Accounts con Auth0 Dashboard:
  1. Vaya a Authentication > Social Connections o Enterprise Connections.
  2. Seleccione Create Connection o una conexión existente.
  3. En Purpose, active Connected Accounts for Token Vault. Según la configuración de Purpose, es posible que deba habilitar offline_access en Auth0 Dashboard para permitir que la aplicación cliente obtenga un token de actualización del proveedor externo durante el flujo de Connected Accounts. Para obtener más información, consulte Autenticación de usuarios frente a Connected Accounts.
  4. Haga clic en Save.

Obtener un token de acceso para Connected Accounts

Antes de iniciar una solicitud de Connected Accounts, obtén un token de acceso para la API My Account con los alcances de Connected Accounts. En las siguientes secciones se explica cómo usar Multi-Resource Refresh Token (MRRT) para obtener un token de acceso para la API My Account.

Obtener un Token de actualización

Después de configurar MRRT para la aplicación cliente, inicie el flujo de código de autorización e intercambie el code de autorización resultante por un Token de actualización. A continuación se muestra una solicitud del flujo de código de autorización para un cliente confidencial que incluye offline_scope para devolver un Token de actualización y un code de autorización de un solo uso para el identificador de la API My Account https://{yourDomain}/me/:
Intercambie el code de autorización de un solo uso por un token de actualización en el endpoint /token:

Canjear un Token de actualización por un Token de acceso para la API My Account

Una vez que hayas obtenido un Token de actualización, canjéalo por un Token de acceso para la API My Account con los alcances de Connected Accounts mediante el tipo de concesión de token de actualización:

Iniciar solicitud de Connected Accounts

Para iniciar una solicitud de Connected Accounts, realice una solicitud POST al endpoint /me/v1/connected-accounts/connect de la API de My Account con los siguientes parámetros:
Para una conexión social de Google, asegúrese de seleccionar offline_access en el Auth0 Dashboard al configurar la conexión. Esto es necesario para que su aplicación cliente pueda obtener un Token de actualización del Servidor de autorización de Auth0.
Si la operación se realiza correctamente, la API My Account devuelve una respuesta similar a la siguiente:
En el navegador web, vaya a connect_uri con el ticket como parámetro de consulta. Autorice la lista de alcances en la pantalla de consentimiento y, a continuación, extraiga y guarde el connect_code del fragmento de la URL.

Completar una solicitud de Connected Accounts

Para completar una solicitud de Connected Accounts, realiza una solicitud POST al endpoint /me/v1/connected-accounts/complete con los siguientes parámetros:
Si la operación se realiza correctamente, la API My Account devuelve una respuesta como la siguiente:

Gestionar cuentas conectadas

Para gestionar las cuentas conectadas de un usuario, usa la colección /me/v1/connected-accounts. Antes de usar la colección /connected-accounts, obtén un token de acceso para Connected Accounts.

Consultar las conexiones de cuentas vinculadas

Realiza una solicitud GET al endpoint /me/v1/connected-accounts/connections para obtener una lista de conexiones vinculadas al perfil del usuario:
Si la operación se realiza correctamente, la API My Accounts devuelve una respuesta similar a la siguiente:

Consultar cuentas conectadas

Realiza una solicitud GET al endpoint /me/v1/connected-accounts/accounts para obtener una lista de cuentas conectadas vinculadas al perfil del usuario:
Si la solicitud se realiza correctamente, la API My Accounts devuelve una respuesta como la siguiente:
También puede usar la Management API para obtener una lista de cuentas conectadas de un perfil de usuario haciendo una solicitud GET al endpoint /users/{userId}/connected-accounts:
Si la operación se realiza correctamente, la Management API devuelve una respuesta como la siguiente:

Consultar cuentas conectadas para una conexión específica

Realice una solicitud GET al endpoint /me/v1/connected-accounts/accounts y pase el nombre de la conexión como parámetro de consulta para devolver una lista de cuentas conectadas filtradas por una conexión específica vinculada a un perfil de usuario:
Si la operación se realiza correctamente, la API My Accounts devuelve una respuesta como la siguiente, filtrada por las conexiones google-oauth2:

Eliminar una cuenta conectada

Realice una solicitud DELETE al endpoint /me/v1/connected-accounts/accounts/{connectedAccountId} para eliminar una cuenta conectada con un ID determinado:
Cuando eliminas una cuenta conectada, Auth0 elimina del Token Vault los tokens de acceso y de actualización del proveedor externo. Esto no revoca automáticamente los tokens del proveedor externo, y el token de actualización todavía podría usarse para obtener nuevos tokens de acceso. Debes revocar manualmente los tokens del proveedor externo si se han compartido o copiado en otro sitio. Si la operación se completa correctamente, la API My Accounts devuelve una respuesta como la siguiente: