Saltar al contenido principal

Casos de uso comunes (Common use cases)

En esta sección, proporcionaremos algunos ejemplos para ayudarte a entender escenarios donde las reclamaciones personalizadas de token pueden ser útiles, ofreciéndote algunas referencias. De esta manera, cuando enfrentes dificultades en la gestión de acceso, podrás evaluar si las reclamaciones personalizadas de token 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 estaba usando la app durante la fase beta pública, puedes usar el método getCustomJwtClaims() para añadir una reclamación 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 de RBAC, tener el alcance para acceder a recursos de pago.
  2. Que el createdAt sea anterior al final de la fase beta pública.

Si no existiera la función de reclamaciones personalizadas de token, al verificar permisos para la autorización (Authorization), 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 reclamaciones personalizadas de token para añadir un campo de cumpleaños en 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).

Imagina 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 que los jugadores cierren sesión cuando su saldo se agote para animarlos a recargar.

En este punto, Joe también puede usar la función de reclamaciones personalizadas de token que proporciona 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.