# Configuration Keycloak - lions-user-manager ## ✅ Configuration effectuée La configuration Keycloak a été effectuée avec succès via le script `setup-keycloak-simple.sh`. ## 📋 Clients créés ### 1. Client Backend: `lions-user-manager` - **Type**: Service Account (client credentials) - **Client ID**: `lions-user-manager` - **Secret**: `sD8hT13lG6c79WOWQk3dVzya5pfPhzw3` - **Port**: 8081 - **Redirect URIs**: `http://localhost:8081/*` - **Web Origins**: `http://localhost:8081`, `http://localhost:8080` - **Usage**: API REST backend pour gérer les utilisateurs Keycloak ### 2. Client Frontend: `lions-user-manager-client` - **Type**: Confidential (authorization code flow) - **Client ID**: `lions-user-manager-client` - **Secret**: `client-secret-lions-2025` - **Port**: 8080 - **Redirect URIs**: `http://localhost:8080/*`, `http://localhost:8081/*` - **Web Origins**: `*` - **Standard Flow**: Activé - **Direct Access Grants**: Activé - **Usage**: Interface web JSF/PrimeFaces ## 👥 Utilisateur de test - **Username**: `testuser` - **Password**: `test123` - **Email**: `test@lions.dev` - **Nom complet**: Test User - **Rôles**: `admin`, `user_manager` ## 🔐 Rôles créés Les rôles suivants ont été créés dans le realm `master`: 1. **admin** - Accès complet à toutes les fonctionnalités 2. **user_manager** - Gestion des utilisateurs et des rôles 3. **user_viewer** - Consultation en lecture seule 4. **auditor** - Consultation des logs d'audit 5. **sync_manager** - Gestion de la synchronisation ## 🚀 Démarrage des applications ### Backend (port 8081) Le backend est configuré avec OIDC désactivé car il utilise directement l'API Admin de Keycloak via service account. ```bash cd lions-user-manager-server-impl-quarkus mvn quarkus:dev ``` **Configuration dans `application-dev.properties`**: ```properties # OIDC désactivé pour le backend (utilise service account) quarkus.oidc.enabled=false # API Admin Keycloak lions.keycloak.server-url=http://localhost:8180 lions.keycloak.admin-username=admin lions.keycloak.admin-password=admin ``` ### Frontend (port 8080) Le frontend utilise OIDC pour l'authentification des utilisateurs. ```bash cd lions-user-manager-client-quarkus-primefaces-freya mvn quarkus:dev ``` **Configuration dans `application-dev.properties`**: ```properties # OIDC activé pour le frontend quarkus.oidc.auth-server-url=http://localhost:8180/realms/master quarkus.oidc.client-id=lions-user-manager-client quarkus.oidc.credentials.secret=client-secret-lions-2025 ``` ## 🌐 URLs d'accès - **Keycloak Admin**: http://localhost:8180/admin (admin/admin) - **Backend API**: http://localhost:8081 - **Frontend Web**: http://localhost:8080 - **Swagger UI**: http://localhost:8081/q/swagger-ui ## 🔧 Résolution des problèmes ### Problème: "Forbidden" sur http://localhost:8081 **Cause**: OIDC est désactivé dans le backend, ce qui provoque une erreur de sécurité. **Solution**: Le backend est accessible uniquement via les endpoints API qui ne nécessitent pas d'authentification utilisateur (il utilise le service account pour communiquer avec Keycloak). Testez plutôt: ```bash curl http://localhost:8081/api/users?realm=master ``` ### Problème: "Client not found" sur les pages XHTML **Cause**: Le client `lions-user-manager-client` n'était pas configuré dans Keycloak. **Solution**: ✅ Résolu par le script `setup-keycloak-simple.sh` ### Problème: Impossible de se connecter avec testuser **Vérifications**: 1. Vérifier que l'utilisateur existe dans Keycloak Admin Console 2. Vérifier que le mot de passe est `test123` 3. Vérifier que le compte est activé (`enabled: true`) ## 📝 Test de connexion ### Test via curl (backend) ```bash # 1. Obtenir un token avec le client backend curl -X POST http://localhost:8180/realms/master/protocol/openid-connect/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=lions-user-manager" \ -d "client_secret=sD8hT13lG6c79WOWQk3dVzya5pfPhzw3" \ -d "grant_type=client_credentials" # 2. Test avec authentification utilisateur curl -X POST http://localhost:8180/realms/master/protocol/openid-connect/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id=lions-user-manager-client" \ -d "client_secret=client-secret-lions-2025" \ -d "username=testuser" \ -d "password=test123" \ -d "grant_type=password" ``` ### Test via navigateur (frontend) 1. Ouvrir http://localhost:8080 2. Vous serez redirigé vers Keycloak pour l'authentification 3. Se connecter avec `testuser` / `test123` 4. Vous serez redirigé vers l'application ## 🔄 Réinitialisation de la configuration Pour réinitialiser et reconfigurer Keycloak: ```bash # 1. Supprimer les clients existants (via Admin Console ou API) # 2. Relancer le script bash setup-keycloak-simple.sh ``` ## 📚 Documentation complémentaire - [Keycloak Documentation](https://www.keycloak.org/documentation) - [Quarkus OIDC Guide](https://quarkus.io/guides/security-oidc-code-flow-authentication) - [PrimeFaces Documentation](https://www.primefaces.org/showcase/) --- **Date de configuration**: 2025-12-04 **Script utilisé**: `setup-keycloak-simple.sh`