Authentification
L'authentification est entièrement centralisée via Keycloak OIDC. Aucun système de login local.
Stack
- Package :
socialiteproviders/keycloak - Middleware :
KeycloakAuthenticated - Callback :
GET /auth/callback - Logout :
GET /auth/logout
Variables d'environnement
KEYCLOAK_BASE_URL=https://keycloak.tarbouriech.tech
KEYCLOAK_REALM=tarbouriech
KEYCLOAK_CLIENT_ID=intranet
KEYCLOAK_CLIENT_SECRET=
KEYCLOAK_REDIRECT_URI=https://dashboard.tarbouriech.tech/auth/callback
Flux d'authentification
1. Utilisateur accède à une route protégée
2. KeycloakAuthenticated détecte l'absence de session
3. Redirection vers Keycloak (login SSO)
4. Keycloak authentifie (AD, LDAP ou local)
5. Callback /auth/callback reçoit le code
6. Token échangé, profil utilisateur chargé
7. Session Laravel créée, redirection vers la destination
Règles
- Les routes web protégées utilisent
keycloak.auth - Les routes API utilisent
api.key(Bearer token) - La session est régénérée après login
- Le logout invalide correctement la session ET le token Keycloak
- Les échecs d'authentification ne révèlent pas l'état du compte
Checklist
- ✅ La route nécessite l'authentification
- ✅ Le guard session ou token correspond au type de route
- ✅ Le logout invalide session et token correctement
- ✅ L'authentification échouée ne révèle pas l'état du compte