This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/KEYCLOAK_SETUP.md
lionsdev 4d196dafc5 feat: Configuration Keycloak avec realm dédié
- Création du realm 'lions-user-manager' dédié à l'application
- Configuration du client frontend uniquement (lions-user-manager-client)
- Backend utilise directement l'Admin API (admin/admin) sans client séparé
- Création de l'utilisateur de test: testuser/test123
- Création des rôles: admin, user_manager, user_viewer, auditor, sync_manager
- Mise à jour des configurations pour utiliser le bon realm
- Scripts de setup: setup-keycloak-correct.sh
- Documentation: KEYCLOAK_SETUP.md

Corrections par rapport à la première tentative:
- Utilisation d'un realm dédié au lieu de 'master'
- Pas de client pour le backend (utilise directement Admin API)
- Configuration OIDC correcte pour le frontend
2025-12-04 21:56:29 +00:00

5.1 KiB

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.

cd lions-user-manager-server-impl-quarkus
mvn quarkus:dev

Configuration dans application-dev.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.

cd lions-user-manager-client-quarkus-primefaces-freya
mvn quarkus:dev

Configuration dans application-dev.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

🔧 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:

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)

# 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:

# 1. Supprimer les clients existants (via Admin Console ou API)
# 2. Relancer le script
bash setup-keycloak-simple.sh

📚 Documentation complémentaire


Date de configuration: 2025-12-04 Script utilisé: setup-keycloak-simple.sh