- 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.
Autenticación de usuarios vs. Connected Accounts
/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
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.

- La aplicación cliente realiza una solicitud
POSTal endpoint/me/v1/connected-accounts/connectde 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. - La API My Account crea un
auth_sessiony unconnect_uriúnicos que contienen unticketpara redirigir al usuario a un navegador web. La aplicación cliente guarda elauth_sessionpara verificarlo más adelante. Si DPoP está configurado, la API My Account valida el JWT de prueba de DPoP. - La aplicación cliente redirige al usuario al
connect_uricon elticketcomo parámetro de consulta para la autenticación y autorización del usuario en el navegador. La aplicación cliente también puede pasar uncode_challengeocode_challenge_methoda la URL, como en el Flujo de código de autorización con PKCE. - El usuario conecta la cuenta y autoriza los permisos de la conexión en la pantalla de consentimiento.
- 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_uricon unconnect_codede un solo uso. - La aplicación cliente presenta el
connect_code, elcode_verifier(si corresponde) y elauth_sessionoriginal a la API My Account realizando una solicitudPOSTal endpoint/me/v1/connected-accounts/complete. Para obtener más información, lea Completar una solicitud de Connected Accounts. - La API My Account valida la solicitud confirmando lo siguiente:
- Que el
auth_sessioncoincide 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_codede un solo uso - El
code_verifier(si se usa el flujo PKCE)
- Que el
- Después de validar correctamente la solicitud, el Servidor de autorización de Auth0 agrega la cuenta al array
connected_accountsdel perfil del usuario y almacena los tokens de acceso y de actualización de la cuenta conectada en Token Vault. - La API My Account completa el flujo enviando un código de estado
200a la aplicación cliente, lo que indica que la cuenta se conectó correctamente.
Requisitos previos
- 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
- Vaya a Applications > APIs y active la API My Account.
- Una vez activada, seleccione Auth0 My Account API y, a continuación, la pestaña Application Access.
- Busque su aplicación cliente y seleccione Edit para configurar sus políticas de acceso a la aplicación.
- Seleccione User Access y, en Authorization, seleccione Authorized.
- En los permisos, seleccione All para todos los alcances de Connected Accounts de la aplicación.
- 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.
- 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
- Auth0 Dashboard
- Management API
Para configurar MRRT con el Auth0 Dashboard:
- Vaya a Applications > Applications y seleccione su aplicación.
- En Multi-Resource Refresh Token, seleccione Edit Configuration.
- Para habilitar MRRT con API My Account, active My Account API.
Configurar Connected Accounts
- Vaya a Authentication > Social Connections o Enterprise Connections y seleccione la conexión.
- Seleccione Applications y luego habilite la conexión para su aplicación cliente.
- Auth0 Dashboard
- Management API
Para configurar Connected Accounts con Auth0 Dashboard:
- Vaya a Authentication > Social Connections o Enterprise Connections.
- Seleccione Create Connection o una conexión existente.
- En Purpose, active Connected Accounts for Token Vault. Según la configuración de Purpose, es posible que deba habilitar
offline_accessen 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. - Haga clic en Save.
Obtener un token de acceso para Connected Accounts
Obtener un Token de actualización
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/:
/token:
Canjear un Token de actualización por un Token de acceso para la API My Account
Iniciar solicitud de Connected Accounts
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.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
POST al endpoint /me/v1/connected-accounts/complete con los siguientes parámetros:
Gestionar cuentas conectadas
/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
GET al endpoint /me/v1/connected-accounts/connections para obtener una lista de conexiones vinculadas al perfil del usuario:
Consultar cuentas conectadas
GET al endpoint /me/v1/connected-accounts/accounts para obtener una lista de cuentas conectadas vinculadas al perfil del usuario:
GET al endpoint /users/{userId}/connected-accounts:
Consultar cuentas conectadas para una conexión específica
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:
google-oauth2:
Eliminar una cuenta conectada
DELETE al endpoint /me/v1/connected-accounts/accounts/{connectedAccountId} para eliminar una cuenta conectada con un ID determinado: