Te recomendamos que pruebes esta resolución en un entorno controlado antes de enviarlo a producción, saludos.
Solución:
No especifica en su pregunta si el usuario actual está conectado. ¿Está validando acciones específicas del usuario o desea recuperar roles de usuario para la aplicación?
El usuario ha iniciado sesión y está realizando alguna acción.
Supongo que estás usando algún adaptador de keycloak. Luego, simplemente recupere el objeto de sesión y debería tener la información adicional en algún lugar allí.
De lo contrario, puede analizar la solicitud usted mismo. Cuando se usa OpenId Connect, el token de acceso siempre se envía para cada una de las solicitudes, en el Authorization
encabezamiento. El token está codificado en base64, puede decodificar el token usted mismo.
La aplicación está realizando alguna acción para algún usuario registrado, sin que él haya iniciado sesión.
Los tokens de acceso de usuario están destinados a proporcionar permisos a los usuarios. Como dices en tu pregunta: As a third party application, I want...
por lo que aquí no está actuando como un usuario registrado, sino como una aplicación, por lo que debe ir con las credenciales del cliente. Simplemente otorgue permisos al cliente para enumerar todos los usuarios y sus roles (probablemente sea suficiente con el view-users
rol, vea el enlace a continuación) e inicie sesión con la concesión de credenciales de cliente. Luego, puede manejar permisos detallados en la lógica comercial de su aplicación.
Ver también:
- Aclaración del flujo de credenciales de cliente de Keycloak
- Concesión de credenciales de cliente de seguridad keycloak spring
- Cómo obtener usuarios de Keycloak a través de REST sin cuenta de administrador
Aquí tienes las reseñas y valoraciones
Nos puedes asentar nuestra labor poniendo un comentario o valorándolo te damos la bienvenida.