Docs Menu
Docs Home
/ /
Servicios de aplicaciones Atlas

Autenticar y administrar usuarios

Atlas App Services gestiona la autenticación de los usuarios finales de su aplicación. App Services:

  • Utiliza reglas de acceso a datos basadas en roles para determinar permisos de lectura y escritura.

  • Asocia cada solicitud con un usuario autenticado

  • Evalúa los permisos para cada objeto incluido en la solicitud.

A través de las cuentas de usuario, puede almacenar y acceder a metadatos y datos personalizados para cada usuario.

Los usuarios inician sesión a través de proveedores de autenticación. Cada proveedor representa un método de autenticación específico.

App Services incluye proveedores integrados para casos de uso comunes, como Facebook y Google. Los proveedores personalizados permiten integrar cualquier sistema de autenticación externo.

El siguiente diagrama muestra cómo su aplicación cliente, Atlas App Services y los proveedores de autenticación interactúan para autenticar a los usuarios:

Una descripción general del proceso de autorización.

En App Services, un proveedor de autenticación es un servicio modular. Estos servicios proporcionan verificación de identidad y mantienen información sobre los usuarios de la aplicación.

Los usuarios se autentican proporcionando un conjunto de credenciales a un proveedor de autenticación. Con credenciales válidas, el proveedor devuelve una identidad única asociada al usuario. App Services los inicia sesión como... usuario activo.

App Services incluye proveedores de autenticación integrados para casos de uso comunes. Esto incluye:

Puede configurar proveedores personalizados para integrar sistemas de autenticación externos.

  • JWT personalizado: el proveedor acepta tokens web JSON firmados por el sistema externo.

  • Función personalizada: el proveedor le permite definir una lógica de inicio de sesión personalizada en una función Atlas.

Importante

Las aplicaciones requieren autenticación de usuario

Cada aplicación debe tener al menos un proveedor de autenticación configurado y habilitado. Sin al menos un proveedor, ninguna aplicación cliente puede conectarse. Para saber cómo configurar y habilitar proveedores de autenticación, consulte: Proveedores de autenticación.

Una cuenta de usuario representa un usuario único e independiente de tu aplicación. App Services crea el usuario cuando un proveedor de autenticación valida una identidad única. Puedes obtener metadatos de usuario, como el correo electrónico o la fecha de nacimiento, de los proveedores de autenticación. Puedes asociar cada usuario con datos personalizados.

App Services almacena metadatos de inicio de sesión de un usuario en una identidad del proveedor de autenticación. App Services utiliza estos metadatos para autenticar al usuario.

Al iniciar sesión por primera vez con un proveedor de autenticación, App Services crea un objeto de identidad. Cada objeto contiene un ID único y metadatos específicos del proveedor sobre el usuario. En los siguientes inicios de sesión, App Services actualiza los datos de identidad existentes.

Una sola cuenta de usuario puede tener más de una identidad. Los SDK de Realm permiten vincular identidades a cuentas de usuario existentes. Esto permite a los usuarios iniciar sesión en una sola cuenta con más de un proveedor. Para obtener más información, consulte la documentación sobre la vinculación de identidades para su SDK de cliente.

En los SDK de Realm, se puede iniciar sesión con más de un usuario, pero solo una cuenta puede estar activa a la vez. El usuario activo es una cuenta asociada a una solicitud de aplicación.

App Services ejecuta las solicitudes de las aplicaciones cliente como el usuario activo. App Services reemplaza las referencias dinámicas al usuario, por ejemplo: %%user en una expresión JSON - con el usuario activo.

Puede utilizar un usuario activo específico o el usuario del sistema para ejecutar funciones.

El usuario del sistema es un usuario interno con privilegios avanzados. Este usuario ignora todas las reglas. Puede ejecutar funciones como usuario del sistema en lugar de que el usuario realice una solicitud. Los disparadores se ejecutan en el contexto del usuario del sistema.

El usuario del sistema es útil para tareas administrativas. Esto incluye:

  • Tareas que necesitan eludir reglas y consultas

  • Tareas que necesitan acceso irrestricto a las operaciones CRUD de MongoDB y de agregación.

Importante

Advertencia de seguridad

Las reglas no se aplican al usuario del sistema. Las funciones que se ejecutan como usuario del sistema pueden representar una vulnerabilidad de seguridad. Asegúrese de no exponer estas funciones a usuarios no autorizados.

Por ejemplo, utilice el contexto de la función para comprobar si el usuario activo puede llamar a la función del sistema. Defina una condición para determinar si el usuario tiene los permisos adecuados, por ejemplo:

exports = function() {
const activeUser = context.user
const adminUserId = context.values.get("adminUserId");
if(activeUser.id == adminUserId) {
// The user can only execute code here if they're an admin.
} else {
throw Error("This user is not allowed to execute the system function")
}
}

Una sesión de usuario representa el periodo de tiempo en el que un usuario autenticado puede interactuar con tu aplicación. Las sesiones de usuario comienzan cuando un usuario inicia sesión a través de un SDK o se autentica mediante HTTPS. Una sesión finaliza después de 30 minutos, a menos que una solicitud del SDK o la API la actualice.

Para aprender a crear, trabajar y revocar sesiones de usuario, consulte Gestionar sesiones de usuario.

  • App Services admite la autenticación y las cuentas de usuario a través de diversos proveedores de autenticación. Puedes asociar usuarios con más de un proveedor de autenticación.

  • Servicios de aplicación admite tener más de un usuario con sesión iniciada al mismo tiempo. Solo hay un usuario activo a la vez.

  • El usuario del sistema es un usuario especial que ignora todas las reglas.

  • Los SDK de Realm administran los tokens de acceso y actualización que componen una sesión de usuario.

Volver

Modelos de implementación y regiones

En esta página