Appearance
Tester le SSO en local
Ce guide sert a preparer un test local du portail auth avec des applications consommatrices comme outil-bdd et formulaires.
Objectif du test :
- le portail auth local emet un
app_access_tokencourt ; - les apps rafraichissent ce token silencieusement via
/session-status; - une session ouverte sur le portail auth donne acces aux apps sans ressaisir les identifiants ;
- une deconnexion centrale finit par deconnecter les apps consommatrices.
Regle importante sur les origins
En local, utiliser le meme hostname partout autant que possible.
Recommande :
text
http://localhost:5173 auth
http://localhost:8000 console-admin/back
http://localhost:4000 outil-bdd/front
http://localhost:3000 outil-bdd/back
http://localhost:9000 formulaires/front
http://localhost:3001 formulaires/backEviter de melanger localhost et 127.0.0.1 pendant les tests SSO. Pour le navigateur, ce sont deux origins differentes, et le refresh silencieux par iframe peut donner des resultats trompeurs.
Pour un test hybride avec AUTH et console-admin/back en staging mais une application consommatrice en local, l'origine locale doit etre autorisee explicitement cote console-admin/back staging avec AUTH_APP_ALLOWED_LOCAL_ORIGINS. Exemple : http://localhost:4000,http://localhost:9000. Cette variable remplace les anciennes allowlists front et ne doit contenir que des origins locales exactes.
Variables attendues
console-admin/back
env
PORT=8000
FRONT_URL=http://localhost:5173
ENVIRONMENT=default
APP_ACCESS_TOKEN_SECRET=...
AUTH_INTROSPECTION_SECRET=...
APP_ACCESS_TOKEN_TTL_SECONDS=300Pour une demo locale, APP_ACCESS_TOKEN_TTL_SECONDS=10 permet de rendre le refresh visible. Ne pas garder 10 en production.
console-admin/auth
env
VITE_API_URL=http://localhost:8000
VITE_DEFAULT_APPLICATION=bdd
VITE_DEFAULT_ENVIRONMENT=defaultoutil-bdd/front
env
PORT=4000
FRONT_URL=http://localhost:4000
BASE_URL=http://localhost:3000
AUTH_APP_URL=http://localhost:5173
APPLICATION=bdd
ENVIRONMENT=defaultoutil-bdd/back
env
PORT=3000
FRONT_URL=http://localhost:4000
AUTH_APP_URL=http://localhost:5173
APPLICATION=bdd
ENVIRONMENT=default
APP_ACCESS_TOKEN_SECRET=...APP_ACCESS_TOKEN_SECRET doit etre identique a celui de console-admin/back.
formulaires/front
env
FRONT_URL=http://localhost:9000
BASE_URL=http://localhost:3001
UPLOAD_URL=http://localhost:3001
AUTH_APP_URL=http://localhost:5173
APPLICATION=formulaires
ENVIRONMENT=defaultformulaires/back
env
PORT=3001
FRONT_URL=http://localhost:9000
AUTH_APP_URL=http://localhost:5173
APPLICATION=formulaires
ENVIRONMENT=default
APP_ACCESS_TOKEN_SECRET=...APP_ACCESS_TOKEN_SECRET doit etre identique a celui de console-admin/back.
Diagnostic automatique
Depuis console-admin :
bash
node scripts/check-local-sso.mjsAvec verification HTTP des serveurs locaux :
bash
node scripts/check-local-sso.mjs --httpLe script verifie :
- la presence des
.envattendus ; - les couples front/back ;
- les valeurs
AUTH_APP_URL,APPLICATION,ENVIRONMENT; - l'alignement de
APP_ACCESS_TOKEN_SECRETentre les backends ; - l'absence de melange risqué entre
localhostet127.0.0.1.
Le script ne modifie aucun fichier et n'affiche pas les secrets.
Ordre de lancement local
Lancer ou verifier les services :
bash
# console-admin/back
yarn start:dev
# console-admin/auth
yarn dev
# outil-bdd/back
yarn start:dev
# outil-bdd/front
yarn dev
# formulaires/back
yarn start:dev
# formulaires/front
yarn devScenario de validation
- Ouvrir
http://localhost:9000/forms. - Se connecter via
http://localhost:5173. - Attendre plus que le TTL du
app_access_token. - Naviguer dans Formulaires : l'utilisateur doit rester connecte si la session auth centrale existe.
- Ouvrir
http://localhost:4000. - L'utilisateur doit etre connecte sans ressaisir ses identifiants.
- Se deconnecter depuis une app ou le portail auth.
- Revenir sur l'autre app : elle doit rediriger vers le portail auth au prochain check, focus, refresh ou appel API.
Production
En production, mettre a jour :
APP_ACCESS_TOKEN_TTL_SECONDS, typiquement300,120ou60selon le compromis securite/UX ;APP_ACCESS_TOKEN_SECRETidentique surconsole-admin/back,outil-bdd/backetformulaires/back;AUTH_APP_URLsur chaque front/back consommateur ;APPLICATIONavec la cle technique de l'app ;ENVIRONMENTavec la cle d'environnement existante cote portail auth.
