Entonces, estoy construyendo un sistema API. Quiero usar KeyCloak para la autenticación y la administración de usuarios porque tiene un buen control de acceso. Lo estoy integrando con Ktor y quiero que mi usuario use su propia interfaz de usuario. O al menos, quiero hacer la interfaz de usuario.
He leído sobre la personalización de temas, pero eso no es lo que quiero. También llegué a saber que la interfaz de usuario KeyCloak está estrechamente integrada dentro de su código. Solo esperaba saber si al menos cuando una de las aplicaciones del cliente es una aplicación móvil, ¿podría usar, por ejemplo, la interfaz de usuario de Android para todo el flujo de inicio de sesión?
Si no es posible, lo que creo que es poco probable, ¿hay alguna otra biblioteca o marco para el control de acceso, preferiblemente uno que funcione con Ktor?
Si no desea utilizar la interfaz de usuario de Keycloak ni crear sus propios temas personalizados, puede aprovechar el flujo de concesión de credenciales de contraseña del propietario del recurso .
Para ello, cree un nuevo cliente confidential o utilice uno existente. Asegúrese de cambiar el interruptor Direct Access Grants Enabled a ON.
Después de esto, obtenga un token de su cliente (página web, CLI, móvil). Aquí estoy usando curl y jq por simplicidad:
KCHOST=https://yourkeycloak.com REALM=your-realm CLIENT_ID=your-confidential-client CLIENT_SECRET=xxxxxxx-yyyyyyyy-zzzzzzzzz ACCESS_TOKEN=`curl \ -d "client_id=$CLIENT_ID" -d "client_secret=$CLIENT_SECRET" \ -d "grant_type=client_credentials" \ "$KCHOST/auth/realms/$REALM/protocol/openid-connect/token" | jq -r '.access_token'`PS Para la depuración, he creado una herramienta CLI llamada brauzie que puede ayudarlo a obtener y analizar sus tokens JWT (ámbitos, roles, etc.). Podría ser utilizado tanto para clientes públicos como confidenciales. También podría usar Postman y https://jwt.io
HTH :)