Saltar al contenido principal
La arquitectura multiinquilino es un enfoque en el que una única instancia de software se ejecuta en un servidor y puede ser utilizada por varios grupos de usuarios. Con un modelo multiinquilino, puede segmentar en grupos a los usuarios con características compartidas y otorgarles permisos y niveles de acceso independientes a su aplicación. Esto le permite crear y mantener experiencias adaptadas para distintos clientes, unidades de negocio u otros grupos de usuarios definidos. En Auth0, el mejor método para implementar la multiinquilinidad es Auth0 Organizations. Si es necesario, se pueden usar otras soluciones heredadas para dar cabida a distintos casos de uso empresariales. Si ofrece un producto o servicio business-to-business (B2B), configurar la multiinquilinidad para sus usuarios empresariales puede ser beneficioso para su caso de uso. Las secciones siguientes describen las opciones disponibles para implementar la multiinquilinidad en Auth0.
En este artículo se usa el término de arquitectura de software “inquilino” para referirse a un grupo de usuarios que pueden acceder a su aplicación. Cuando se hace referencia a su instancia de Auth0, se usa el término “Tenant de Auth0”.

Auth0 Organizations

Para la mayoría de los casos de uso multiinquilino, Auth0 Organizations es la solución ideal para usted y sus usuarios. Auth0 Organizations admite implementaciones B2B (de empresa a empresa) con una o más aplicaciones a las que los usuarios finales pueden acceder. Las características comunes de las implementaciones B2B incluyen:
  • Un producto que se otorga bajo licencia a otra empresa para que lo utilicen sus empleados.
  • Varias organizaciones que requieren su propia federación y una personalización ligera de la marca en la experiencia de autenticación.
  • Diferentes niveles de acceso a la aplicación para distintos grupos de usuarios.
Con Auth0 Organizations, puede crear grupos de usuarios diferenciados y adaptar sus experiencias con control de acceso basado en roles, páginas de inicio de sesión y plantillas de correo electrónico personalizadas, entre otras opciones. Para obtener más información sobre cómo usar Auth0 Organizations para implementar la multiinquilinidad, consulte Multiple Organization Architecture.

Soluciones heredadas

Si Auth0 Organizations no satisface los requisitos de su caso de uso, puede considerar las soluciones heredadas que se describen a continuación. Para obtener orientación sobre cómo elegir el enfoque más adecuado para sus requisitos específicos, póngase en contacto con nuestro equipo de Professional Services. Las soluciones heredadas incluyen:
  • Usar una conexión de Auth0 para representar cada inquilino.
  • Usar una aplicación de Auth0 para representar cada inquilino.
  • Usar un Tenant de Auth0 para representar cada inquilino.
  • Almacenar los datos del inquilino en el perfil del usuario.

Usar conexiones de Auth0

Pueden aplicarse límites de entidades. Para obtener más información, consulta la política de límites de entidades. Si tienes una suscripción Enterprise, no estarás limitado por los límites de entidades, pero podrías estarlo por una conexión que ya tenga miles de clientes habilitados.
Puedes representar cada uno de tus inquilinos con una conexión de Auth0 independiente. Este enfoque te permite admitir escenarios en los que:
  • Tienes distintos requisitos a nivel de conexión, como diferentes políticas de contraseñas, para cada uno de tus inquilinos.
  • Tienes bases de usuarios de distintas conexiones. Por ejemplo, un inquilino podría requerir que los usuarios proporcionen credenciales de username y contraseña, mientras que otro inquilino podría requerir que los usuarios inicien sesión mediante un empresarial.
Para hacer que un usuario inicie sesión mediante una conexión específica, llama al endpoint de inicio de sesión de la API de autenticación de Auth0 e incluye el parámetro connection.
Si usas Lock en tu aplicación, ten en cuenta que admite un máximo de 50 conexiones de base de datos por aplicación. Las conexiones sociales y empresariales no se ven afectadas por este límite, pero siguen estando sujetas a la política de límites de entidades.

Usar aplicaciones de Auth0

Pueden aplicarse límites de entidades. Para obtener más información, consulte la política de límites de entidades. Si tiene una suscripción Enterprise, no estará limitado por los límites de entidades, pero podría verse limitado por una conexión que ya tenga miles de clientes habilitados.
Puede representar cada uno de sus inquilinos con una aplicación de Auth0 independiente. Este enfoque le permite configurar cada aplicación de Auth0 de forma específica según los distintos requisitos del inquilino, como las conexiones disponibles. Deberá hacer un seguimiento de los inquilinos a los que pertenecen sus usuarios dentro de su aplicación. Cuando un usuario inicie sesión en su aplicación, deberá consultar esa información y dirigir al usuario a la aplicación de Auth0 adecuada para completar la autenticación. Para habilitar una conexión para varias aplicaciones con la de Auth0, llame al endpoint Update enabled clients for a connection y pase el ID de conexión correspondiente.

Usar Tenants de Auth0

Puede representar cada uno de sus inquilinos mediante un Tenant de Auth0 independiente. Este enfoque le permite compartir el acceso al con usuarios, con restricciones por inquilino, pero requiere que configure Auth0 de forma individual para cada inquilino. Esto significa que, además de administrar individualmente las características de cada Tenant de Auth0 (como marca, Actions y ), su aplicación tendrá que admitir varias configuraciones de Auth0.

Almacene los detalles del inquilino en el perfil del usuario

Puede almacenar los detalles del inquilino en el perfil del usuario y hacer que su aplicación lea esa información después de que el usuario inicie sesión. Este enfoque permite que todos sus usuarios, independientemente del inquilino al que pertenezcan, inicien sesión con una configuración uniforme (como las conexiones disponibles). Para implementar esto, puede almacenar los detalles del inquilino en el perfil de Auth0 del usuario, en el objeto app_metadata, con un identificador de su elección (por ejemplo, "tenant": "customer-group-12345"). Después de que el usuario inicie sesión, su aplicación recupera la variable tenant y muestra una versión adecuada según el valor devuelto.