La disponibilidad varía según el plan de Auth0
Tu plan de Auth0 o tu acuerdo personalizado determinan si esta característica está disponible. Para obtener más información, consulta Precios.
- Autenticación: Usa tu base de datos como en Auth0 para autenticar usuarios. (Esto se conoce como autenticación heredada).
- Importar usuarios: Usa la migración automática (migración gradual o diferida)
- Acceso mediante proxy a un inquilino de Auth0: Usa la arquitectura multiinquilino de Auth0.
-
Usa el endpoint Create connections con la estrategia
auth0. -
Ve a Auth0 Dashboard > Authentication > Database, crea la conexión y habilita la opción Use my own database para permitir la edición del script de Action de base de datos.

Cómo funciona

Práctica recomendada
Los scripts de Action pueden implementarse como funciones anónimas; sin embargo, esto dificulta la depuración cuando se debe interpretar la pila de llamadas generada como resultado de una condición de error excepcional. Por comodidad, recomendamos asignar un nombre de función a cada script de Action.
Escenario de autenticación heredada
Las conexiones de base de datos personalizadas también se usan fuera del flujo de Universal Login. Por ejemplo, se invoca el script de Action
changePassword de una conexión cuando se realiza una operación de cambio de contraseña para un usuario que reside en un almacén de identidades heredado.Escenario de migración automática
Práctica recomendada
La creación de un usuario en un escenario de migración automática normalmente ocurre después de que finalice el script de Action
login. Por lo tanto, recomendamos que no intente eliminar ningún usuario de un almacén de identidades heredado como una operación en línea (es decir, dentro del script login), sino que realice la eliminación como un proceso independiente. Esto evitará la eliminación accidental de un usuario si se produce un error durante el proceso de migración.login y/o getUser, y a que el usuario se vuelva a migrar desde el almacén de identidades heredado.
Práctica recomendada
Recomendamos marcar cualquier identidad de usuario heredada como migrada antes de que finalice
login o getUser, y antes de cualquier eliminación posterior del almacén heredado.Tamaño
El límite de 100 kB no incluye ningún módulo de
npm al que se haga referencia en una instrucción require.Entorno
módulos de npm
npm no solo reducen el tamaño general del código del script de Action, sino que también proporcionan acceso a una amplia variedad de funcionalidades predefinidas.
Muchos módulos de npm disponibles públicamente son compatibles de forma predeterminada. La lista se ha compilado y revisado para detectar posibles problemas de seguridad. Si necesita un módulo de npm que no sea compatible de forma predeterminada, puede enviar una solicitud a través del portal de soporte de Auth0 o de su representante de Auth0. Auth0 evaluará su solicitud para determinar si es adecuada. Actualmente, Auth0 no admite el uso de módulos de npm desde repositorios privados.
Variables
configuration, disponible globalmente. Para obtener más información, consulte la sección Agregar parámetros de configuración en Crear conexiones de base de datos personalizadas.
Práctica recomendada
El objeto
configuration debe tratarse como de solo lectura y usarse para almacenar información confidencial, como credenciales o claves de API para acceder a repositorios de identidades externos. Esto evita tener valores sensibles codificados de forma fija en un script de Action.configuration también puede usarse para admitir cualquier estrategia de Software Development Life Cycle (SDLC) que utilice, ya que le permite definir variables con valores específicos de cada inquilino. Esto evita valores codificados de forma fija en un script de Action, que pueden cambiar según el inquilino que lo ejecute.
objeto global
global, al que se puede acceder desde todos los scripts de Action que se ejecutan dentro de esa instancia. El objeto global actúa como una variable global exclusiva del contenedor y puede usarse para definir información o funciones que se utilicen en todos los scripts de Action que se ejecutan en la instancia del contenedor.
Esto significa que el objeto global puede usarse para almacenar en caché recursos costosos, siempre que esos recursos no sean específicos de un usuario. Por ejemplo, podría usarlo para almacenar un para una API de registros de terceros que proporciona funcionalidad no específica del usuario. O bien podría almacenar un Token de acceso para su propia API no específica del usuario definida en Auth0 y obtenida mediante el flujo de credenciales del cliente.
Cada vez que se recicla un contenedor Webtask, o cada vez que se crea una nueva instancia de contenedor Webtask, se restablece el objeto global que define. Por lo tanto, cualquier asignación declarada dentro del objeto global asociado a un contenedor también debe contemplar la inicialización.
Práctica recomendada
Para proporcionar flexibilidad de rendimiento, los contenedores Webtask sin servidor se aprovisionan en Auth0 de forma ad hoc y también están sujetos a varias políticas de reciclaje. En general, recomendamos no asumir que la vida útil de un objeto
global sea superior a 20 minutos.Seguridad
Acceder al almacenamiento de identidades heredado mediante una API personalizada
Práctica recomendada
Recomendamos implementar una API para aplicar el principio de mínimo privilegio a su almacén de identidades heredado (base de datos), en lugar de simplemente habilitar acceso general por internet.
global a fin de mejorar el rendimiento. Después, la API puede ofrecer un conjunto acotado de endpoints protegidos que realicen únicamente la funcionalidad de administración heredada necesaria (por ejemplo, read user, change password).
Práctica recomendada
De forma predeterminada, Auth0 le proporcionará un token para cualquier API si se autentica correctamente e incluye la audiencia adecuada. Restringir el acceso a la API del almacén de identidades heredado limitando la asignación de tokens de acceso mediante el uso de una Rule evitará el uso no autorizado y mitigará diversos escenarios de ataque, como aquellos en los que se intercepta la redirección a
/authorize y se agrega la audiencia de la API.