Skip to main content

La disponibilidad varía según el plan de Auth0

Tanto la implementación específica de Login como el plan de Auth0 o el acuerdo personalizado determinan si esta característica está disponible. Para obtener más información, consulta Precios.
Puedes vincular cuentas de usuario mediante varios métodos:
  • Action con una aplicación externa de vinculación
  • Auth0
  • biblioteca de Auth0.js

Action con una aplicación externa de vinculación

Puede usar una Action junto con una aplicación externa de vinculación para vincular cuentas de usuario con la Management API.
Auth0 no cambia automáticamente al usuario principal correcto después de vinculación de cuentas, por lo que este cambio debe realizarse en el código de Actions cuando vinculación de cuentas se complete correctamente.Cada vinculación manual de cuentas debe pedir al usuario que introduzca sus credenciales. Su inquilino debe solicitar autenticación para ambas cuentas antes de que se produzca la vinculación, para evitar que actores maliciosos accedan a cuentas de usuario legítimas.
Los siguientes pasos ilustran una implementación de ejemplo:
  1. La Action identifica las posibles cuentas de usuario para vincular (si existen).
  2. La Action redirige al usuario a una aplicación externa de vinculación con una carga útil de token que contiene las identidades de usuario candidatas:
  3. La aplicación externa de vinculación solicita al usuario que se autentique con las credenciales de la cuenta que desea vincular.
  4. La aplicación externa de vinculación redirige al usuario de vuelta a la Action con una carga útil de token que contiene las identidades del usuario principal y del usuario secundario:
  5. La Action valida la autenticidad y el contenido del token.
  6. La Action llama a la Management API para vincular las cuentas en función de los resultados de la aplicación externa de vinculación.
  7. La Action cambia al usuario principal si no coincide con event.user.user_id.

Ejemplo: Action para vincular cuentas

Management API

Puede usar el endpoint Vincular una cuenta de usuario de la Management API de dos maneras:
  • Vinculación de cuentas del lado del cliente iniciada por el usuario mediante con el scope update:current_user_identities.
  • Vinculación de cuentas del lado del servidor mediante tokens de acceso con el scope update:users.

Vinculación de cuentas del lado del cliente iniciada por el usuario

Para la vinculación de cuentas del lado del cliente iniciada por el usuario, necesitas un token de acceso que contenga los siguientes elementos en la carga útil:
  • update:current_user_identites scope
  • user_id de la cuenta principal como parte de la URL
  • de la cuenta secundaria, firmado con RS256 e incluido con un claim aud que identifique al cliente y coincida con el valor del claim azp del token de acceso usado en la solicitud.
Un token de acceso que contiene el scope update:current_user_identities solo puede usarse para actualizar la información del usuario que ha iniciado sesión. Por lo tanto, este método es adecuado para escenarios en los que el usuario inicia el proceso de vinculación.

Vinculación de cuentas del lado del servidor

Para la vinculación de cuentas del lado del servidor, necesita un token de acceso que contenga los siguientes elementos en la carga útil:
  • scope update:users
  • user_id de la cuenta principal como parte de la URL
  • user_id de la cuenta secundaria
  • token de ID de la cuenta secundaria, firmado con RS256, que incluya un claim aud que identifique al cliente y coincida con el valor del claim azp del token de acceso solicitante.
Los tokens de acceso que contienen el scope update:users pueden usarse para actualizar la información de cualquier usuario. Por lo tanto, este método está pensado para usarse únicamente en código del lado del servidor. El user_id y el provider de la cuenta de usuario secundaria pueden deducirse a partir de su identificador único. Por ejemplo, para el identificador google-oauth2|108091299999329986433:
  • provider es google-oauth2
  • user_id es 108091299999329986433
Como alternativa, puede enviar el token de ID de la cuenta secundaria en lugar de provider y user_id:

Biblioteca de Auth0.js

Puede usar la biblioteca de Auth0.js para realizar la vinculación de cuentas en el cliente. Lea Referencia de Auth0.js > User Management para obtener más información.

Más información