169 lines
6.0 KiB
Markdown
169 lines
6.0 KiB
Markdown
# Checklist de Tests d'Intégration Keycloak
|
|
|
|
## 🔧 Prérequis
|
|
- [ ] Keycloak est démarré sur `https://security.lions.dev`
|
|
- [ ] Le realm `btpxpress` est configuré
|
|
- [ ] Les clients `btpxpress-frontend` et `btpxpress-backend` sont créés
|
|
- [ ] L'application frontend est démarrée sur `http://localhost:3000`
|
|
- [ ] L'application backend est démarrée sur `http://localhost:8080`
|
|
|
|
## 🚀 Tests d'Authentification
|
|
|
|
### 1. Accès Initial
|
|
- [ ] Aller sur `http://localhost:3000`
|
|
- [ ] Vérifier que la page d'accueil s'affiche (page publique)
|
|
- [ ] Cliquer sur un lien vers une page protégée (ex: Dashboard)
|
|
- [ ] Vérifier la redirection vers `/auth/login`
|
|
|
|
### 2. Page de Connexion
|
|
- [ ] Vérifier que la page de connexion s'affiche correctement
|
|
- [ ] Vérifier le bouton "Se connecter avec Keycloak"
|
|
- [ ] Cliquer sur le bouton de connexion
|
|
- [ ] Vérifier la redirection vers Keycloak
|
|
|
|
### 3. Authentification Keycloak
|
|
- [ ] Vérifier que la page de connexion Keycloak s'affiche
|
|
- [ ] Se connecter avec un utilisateur valide
|
|
- [ ] Vérifier la redirection vers l'application
|
|
- [ ] Vérifier l'affichage du dashboard ou de la page demandée
|
|
|
|
### 4. État Authentifié
|
|
- [ ] Vérifier que le menu utilisateur affiche les informations correctes
|
|
- [ ] Vérifier que le nom d'utilisateur est affiché
|
|
- [ ] Vérifier que l'email est affiché
|
|
- [ ] Vérifier que le rôle est affiché
|
|
|
|
## 🔒 Tests d'Autorisation
|
|
|
|
### 5. Protection des Routes
|
|
- [ ] Accéder à `/dashboard` - doit être accessible si authentifié
|
|
- [ ] Accéder à `/chantiers` - doit être accessible si authentifié
|
|
- [ ] Accéder à `/admin/utilisateurs` - doit être accessible seulement pour ADMIN/SUPER_ADMIN
|
|
- [ ] Accéder à `/admin/roles` - doit être accessible seulement pour ADMIN/SUPER_ADMIN
|
|
|
|
### 6. Gestion des Rôles
|
|
- [ ] Se connecter avec un utilisateur USER
|
|
- [ ] Essayer d'accéder à `/admin/utilisateurs`
|
|
- [ ] Vérifier la redirection vers `/auth/forbidden`
|
|
- [ ] Vérifier l'affichage de la page d'accès interdit
|
|
|
|
### 7. Menu Dynamique
|
|
- [ ] Vérifier que le menu affiche seulement les éléments autorisés
|
|
- [ ] Se connecter avec différents rôles et vérifier les menus
|
|
- [ ] Vérifier que les éléments admin ne s'affichent que pour les admins
|
|
|
|
## 🔄 Tests de Session
|
|
|
|
### 8. Rafraîchissement de Token
|
|
- [ ] Rester connecté pendant plus de 5 minutes
|
|
- [ ] Effectuer une action (ex: naviguer vers une nouvelle page)
|
|
- [ ] Vérifier que le token est rafraîchi automatiquement
|
|
- [ ] Vérifier qu'aucune déconnexion forcée n'a lieu
|
|
|
|
### 9. Expiration de Session
|
|
- [ ] Laisser la session expirer (configurer un timeout court si nécessaire)
|
|
- [ ] Essayer d'effectuer une action
|
|
- [ ] Vérifier la redirection vers la page de connexion
|
|
|
|
### 10. Déconnexion
|
|
- [ ] Cliquer sur "Se déconnecter" dans le menu utilisateur
|
|
- [ ] Vérifier la redirection vers `/auth/logout`
|
|
- [ ] Vérifier l'affichage de la page de déconnexion
|
|
- [ ] Vérifier la redirection automatique vers l'accueil
|
|
- [ ] Essayer d'accéder à une page protégée
|
|
- [ ] Vérifier la redirection vers la connexion
|
|
|
|
## 🌐 Tests API
|
|
|
|
### 11. Intégration Backend
|
|
- [ ] Ouvrir les outils de développement (F12)
|
|
- [ ] Aller dans l'onglet Network
|
|
- [ ] Effectuer une action qui appelle l'API (ex: charger la liste des chantiers)
|
|
- [ ] Vérifier que les requêtes contiennent l'en-tête `Authorization: Bearer <token>`
|
|
- [ ] Vérifier que les réponses sont correctes (200 OK)
|
|
|
|
### 12. Gestion des Erreurs API
|
|
- [ ] Simuler une erreur 401 (token expiré)
|
|
- [ ] Vérifier que l'application tente de rafraîchir le token
|
|
- [ ] Si le rafraîchissement échoue, vérifier la redirection vers la connexion
|
|
|
|
## 🔧 Tests de Compatibilité
|
|
|
|
### 13. Rétrocompatibilité
|
|
- [ ] Vérifier que l'ancien système JWT ne cause pas d'erreurs
|
|
- [ ] Vérifier que les anciens tokens sont ignorés
|
|
- [ ] Vérifier que le nettoyage des anciens tokens fonctionne
|
|
|
|
### 14. Navigation
|
|
- [ ] Tester la navigation entre les pages
|
|
- [ ] Vérifier que l'état d'authentification est maintenu
|
|
- [ ] Tester le bouton "Retour" du navigateur
|
|
- [ ] Tester le rafraîchissement de page (F5)
|
|
|
|
## 🚨 Tests d'Erreur
|
|
|
|
### 15. Keycloak Indisponible
|
|
- [ ] Arrêter Keycloak temporairement
|
|
- [ ] Essayer de se connecter
|
|
- [ ] Vérifier l'affichage d'un message d'erreur approprié
|
|
|
|
### 16. Configuration Incorrecte
|
|
- [ ] Modifier temporairement la configuration Keycloak (mauvais realm)
|
|
- [ ] Vérifier la gestion des erreurs de configuration
|
|
- [ ] Restaurer la configuration correcte
|
|
|
|
## 📱 Tests Multi-Navigateurs
|
|
|
|
### 17. Compatibilité Navigateurs
|
|
- [ ] Tester sur Chrome
|
|
- [ ] Tester sur Firefox
|
|
- [ ] Tester sur Safari (si disponible)
|
|
- [ ] Tester sur Edge
|
|
|
|
### 18. Mode Incognito
|
|
- [ ] Tester l'authentification en mode incognito
|
|
- [ ] Vérifier que la session ne persiste pas après fermeture
|
|
|
|
## ✅ Validation Finale
|
|
|
|
### 19. Workflow Complet
|
|
- [ ] Effectuer un workflow complet : connexion → navigation → actions → déconnexion
|
|
- [ ] Vérifier qu'aucune erreur n'apparaît dans la console
|
|
- [ ] Vérifier que les performances sont acceptables
|
|
|
|
### 20. Documentation
|
|
- [ ] Vérifier que la documentation est à jour
|
|
- [ ] Vérifier que les variables d'environnement sont documentées
|
|
- [ ] Vérifier que les instructions de déploiement sont correctes
|
|
|
|
## 📊 Résultats
|
|
|
|
| Test | Statut | Notes |
|
|
|------|--------|-------|
|
|
| Accès Initial | ⏳ | |
|
|
| Page de Connexion | ⏳ | |
|
|
| Authentification Keycloak | ⏳ | |
|
|
| État Authentifié | ⏳ | |
|
|
| Protection des Routes | ⏳ | |
|
|
| Gestion des Rôles | ⏳ | |
|
|
| Menu Dynamique | ⏳ | |
|
|
| Rafraîchissement de Token | ⏳ | |
|
|
| Expiration de Session | ⏳ | |
|
|
| Déconnexion | ⏳ | |
|
|
| Intégration Backend | ⏳ | |
|
|
| Gestion des Erreurs API | ⏳ | |
|
|
| Rétrocompatibilité | ⏳ | |
|
|
| Navigation | ⏳ | |
|
|
| Keycloak Indisponible | ⏳ | |
|
|
| Configuration Incorrecte | ⏳ | |
|
|
| Compatibilité Navigateurs | ⏳ | |
|
|
| Mode Incognito | ⏳ | |
|
|
| Workflow Complet | ⏳ | |
|
|
| Documentation | ⏳ | |
|
|
|
|
**Légende :**
|
|
- ✅ Réussi
|
|
- ❌ Échec
|
|
- ⏳ En attente
|
|
- ⚠️ Attention requise
|