Saltar al contenido principal

Casos de uso comunes

En esta sección, proporcionaremos algunos ejemplos para ayudarte a entender algunos escenarios donde reclamos personalizados en el token de acceso pueden ser útiles, ofreciéndote algunas referencias. De esta manera, cuando enfrentes dificultades en la gestión de accesos, podrás evaluar si los reclamos personalizados en el token de acceso pueden brindarte comodidad.

Hacer posible el control de acceso basado en atributos (ABAC)

Control de acceso basado en atributos (ABAC) es un modelo de control de acceso que utiliza atributos (como roles de usuario, propiedades de recursos y condiciones ambientales) para tomar decisiones de control de acceso. Es una forma flexible y dinámica de gestionar el acceso a recursos protegidos.

Supón que estás desarrollando una aplicación, y el lanzamiento de la app se divide en dos fases: beta pública y lanzamiento oficial. Incluso después del lanzamiento oficial de la app, quieres que los usuarios antiguos que participaron en la beta pública sigan usando las funciones de pago.

Después del lanzamiento oficial de la app, utilizas la función de control de acceso basado en roles (RBAC) de Logto para implementar el control de acceso al uso de funciones de pago. Para comprobar fácilmente si un usuario ya usaba la app durante la fase beta pública, puedes usar el método getCustomJwtClaims() para añadir un reclamo createdAt en la carga útil del token.

Luego, al realizar el control de acceso en tus APIs protegidas, necesitas permitir tokens de acceso que cumplan cualquiera de las siguientes condiciones:

  1. Con el contexto RBAC, tener el alcance para acceder a recursos de pago.
  2. Que el createdAt sea anterior a la hora de finalización de la fase beta pública.

Si no existiera la función de reclamos personalizados en el token, al verificar permisos para la autorización, sería necesario llamar a la Management API de Logto para comprobar si el usuario con el token de acceso actual tiene los permisos correspondientes al rol requerido por un determinado recurso de API.

En un escenario similar, supón que tu app muestra felicitaciones de cumpleaños en la página de inicio de sesión si se acerca el cumpleaños del usuario. Puedes usar reclamos personalizados en el token para añadir un campo de cumpleaños a la carga útil del token, que puede usarse para determinar si mostrar un mensaje específico.

Bloquear manualmente la emisión de tokens

Supón que Joe dirige un juego en línea y utiliza Logto como sistema de gestión de identidad y acceso (IAM).

Supón que este juego requiere recargas para comprar tiempo de juego. Joe registra el saldo de cada usuario en su servicio de juego y lo descuenta continuamente a medida que se acumula el tiempo de juego. Joe quiere forzar a los jugadores a cerrar sesión cuando su saldo se agote para animarlos a recargar.

En este punto, Joe también puede usar la función de reclamos personalizados en el token proporcionada por Logto para lograr esto:

  1. En el script, se puede usar una llamada a una API externa obtener datos externos para recuperar el saldo actual del jugador desde el servidor de juegos de Joe.
  2. Si el saldo es menor o igual a 0, se puede usar el método api.denyAccess() para bloquear la emisión del token.

En este momento, como no se puede obtener un nuevo token de acceso válido, el jugador será forzado a cerrar sesión en el juego.