Aller au contenu principal

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