Saltar al contenido principal

Control de acceso a nivel de aplicación

El control de acceso a nivel de aplicación te permite restringir quién puede iniciar sesión en una aplicación específica. En lugar de permitir que todos los usuarios registrados en tu tenant de Logto accedan a cada aplicación, puedes crear reglas de permiso para cada aplicación basadas en usuarios, roles de usuario, organizaciones o roles de organización.

Utiliza el control de acceso a nivel de aplicación cuando quieras:

  • Hacer que una aplicación interna esté disponible solo para empleados o administradores.
  • Limitar una Aplicación Protegida a un grupo seleccionado de usuarios.
  • Permitir solo a clientes o socios específicos acceder a una aplicación OIDC / OAuth de terceros.
  • Lanzar una nueva aplicación a un grupo piloto antes de abrirla a todos.

Cómo funciona

Cuando el control de acceso a nivel de aplicación está deshabilitado, todos los usuarios registrados en tu tenant de Logto pueden iniciar sesión en la aplicación.

Cuando está habilitado, un usuario solo puede acceder a la aplicación si cumple al menos una de las reglas configuradas. Si el usuario no cumple ninguna regla, Logto deniega el intento de inicio de sesión y muestra una página de acceso denegado antes de que la aplicación reciba tokens.

El control de acceso a nivel de aplicación se evalúa durante el flujo de autorización y la renovación de tokens. Esto significa que:

  • Los usuarios sin acceso son bloqueados antes de que puedan completar el inicio de sesión en la aplicación.
  • Las concesiones existentes de la aplicación se verifican nuevamente cuando se utilizan tokens de actualización para solicitar nuevos tokens.
  • La actualización de reglas afecta las futuras comprobaciones de autorización y renovación de tokens, sin cambiar la sesión global de Logto del usuario.
nota:

El control de acceso a nivel de aplicación es independiente del Control de acceso basado en roles (RBAC). RBAC controla lo que un usuario puede hacer después de la autenticación emitiendo permisos (alcances) en los tokens de acceso. El control de acceso a nivel de aplicación controla si un usuario puede acceder o no a una aplicación en particular.

Tipos de reglas

Puedes configurar las siguientes reglas de permiso:

Tipo de reglaQué permite
UsuariosUsuarios específicos pueden acceder a la aplicación.
Roles de usuarioLos usuarios asignados a roles de usuario seleccionados pueden acceder a la aplicación.
OrganizacionesTodos los miembros actuales y futuros de las organizaciones seleccionadas pueden acceder a la aplicación.
Roles de organizaciónLos miembros con roles de organización seleccionados en organizaciones seleccionadas pueden acceder a la aplicación.

Las reglas son aditivas. Un usuario solo necesita cumplir una regla para acceder a la aplicación.

Por ejemplo, si una aplicación tiene tanto una regla de rol de usuario "Equipo de soporte" como una regla de rol de organización "BigTree - Admin", un usuario puede acceder a la aplicación si tiene asignado el rol de Equipo de soporte, o si es Admin en la organización BigTree.

Configurar el control de acceso a nivel de aplicación

  1. Ve a Consola > Aplicaciones.
  2. Abre la aplicación que deseas restringir.
  3. Navega a la pestaña Reglas.
  4. En Reglas de permiso personalizadas, haz clic en Agregar reglas.
  5. Elige un tipo de regla:
    • Usuarios
    • Roles de usuario
    • Organizaciones
    • Roles de organización
  6. Selecciona los usuarios, roles, organizaciones o roles de organización que deberían poder acceder a la aplicación.
  7. Activa Habilitar control de acceso.
  8. Haz clic en Guardar cambios.
important:

Debes configurar al menos una regla de permiso antes de habilitar el control de acceso. Esto previene habilitar accidentalmente el control de acceso sin usuarios permitidos para acceder a la aplicación.

Editar o eliminar reglas

Puedes actualizar la lista de permisos desde la pestaña Reglas de la aplicación.

  • Para agregar más reglas, haz clic en Agregar otra debajo de la tabla de reglas.
  • Para eliminar una regla, haz clic en el botón de eliminar en la fila de la regla y confirma la acción.
  • Después de agregar o eliminar reglas, haz clic en Guardar cambios para aplicar la actualización.

Si el control de acceso está habilitado, Logto requiere que al menos una regla permanezca configurada. Para eliminar todas las reglas, primero desactiva Habilitar control de acceso y luego guarda los cambios.

Cómo afectan los cambios de reglas a los usuarios

El control de acceso a nivel de aplicación no termina la sesión global de Logto del usuario. Un usuario puede seguir conectado a Logto y a otras aplicaciones.

Para la aplicación que está siendo restringida:

  • Un usuario que ya no cumpla ninguna regla de permiso será bloqueado la próxima vez que pase por el flujo de autorización de la aplicación.
  • Si el usuario ya tiene concesiones relacionadas con la aplicación, Logto verifica las reglas nuevamente cuando la aplicación utiliza un token de actualización para solicitar nuevos tokens. Si el usuario ya no tiene acceso, Logto deniega la solicitud de token.

Esto mantiene las decisiones de acceso vinculadas a la aplicación mientras se evita la interrupción innecesaria de aplicaciones no relacionadas.

Relación con los permisos de aplicaciones de terceros

Para aplicaciones de terceros, el control de acceso a nivel de aplicación y la gestión de permisos resuelven problemas diferentes:

  • Control de acceso a nivel de aplicación determina si un usuario puede iniciar sesión en la aplicación de terceros.
  • Gestión de permisos determina qué alcances de perfil de usuario, alcances de recursos de API y alcances de organización puede solicitar la aplicación de terceros en la pantalla de consentimiento.

Si ambos están configurados, el usuario debe pasar el control de acceso a nivel de aplicación antes de poder autorizar la aplicación de terceros.

Relación con Aplicación Protegida

Para Aplicación Protegida, el control de acceso a nivel de aplicación restringe quién puede pasar la capa de autenticación de Logto y llegar al servidor de origen protegido.

Las reglas de autenticación de Aplicación Protegida aún determinan qué rutas requieren autenticación. El control de acceso a nivel de aplicación determina qué usuarios autenticados de Logto pueden acceder a la aplicación Aplicación Protegida.

Mejores prácticas

  • Comienza con reglas de rol de usuario o de rol de organización cuando sea posible. Son más fáciles de mantener que largas listas de usuarios individuales.
  • Usa reglas de organización cuando todos en una organización deban acceder a la aplicación.
  • Usa reglas de rol de organización cuando solo miembros específicos de una organización deban acceder a la aplicación.
  • Revisa las reglas de acceso cuando los usuarios cambien de rol, se unan a organizaciones o abandonen organizaciones.
  • Mantén separados los permisos RBAC y el control de acceso a nivel de aplicación en tu modelo mental: el control de acceso a nivel de aplicación responde "¿Puede este usuario acceder a esta aplicación?", mientras que RBAC responde "¿Qué puede hacer este usuario después de acceder a las APIs o funciones de la organización?"