- Add packages/smart-ide-upstreams (versioned dist) for resolveUpstream + listUpstreamKeys - Wire smart-ide-global-api and smart-ide-sso-gateway via file: dependency - Add systemd user unit templates and install-smart-ide-gateway-systemd-user.sh (SSO After/Requires global API) - Update docs and VERSION 0.0.3
2.8 KiB
SSO — front plateforme et docv (filière Enso)
Objectif
Permettre au front web de la plateforme smart_ide (déployé par environnement : test, pprod, prod) de déléguer l’authentification à docv via OpenID Connect (OIDC) , sans coupler le monorepo au code du dépôt Enso tant que celui-ci n’est pas disponible sur la machine de documentation.
Rôles
| Composant | Rôle |
|---|---|
| Navigateur utilisateur | Redirection vers docv (authorization endpoint) |
| docv / IdP Enso | Émet id_token / access_token, expose JWKS |
| Front SPA | Échange code OAuth (PKCE recommandé), stocke session |
| Backend API (orchestrateur ou BFF) | Valide JWT (signature JWKS, iss, aud, exp), mappe rôles → droits policy |
| smart-ide-sso-gateway (monorepo) | Point d’entrée optionnel : validation JWT + proxy via smart-ide-global-api vers les micro-services avec jetons techniques — sso-gateway-service.md |
Flux (authorization code + PKCE)
sequenceDiagram
participant Browser
participant Front as Front_SPA
participant Docv as docv_IdP
participant API as smart_ide_API
Browser->>Front: open app
Front->>Docv: redirect authorize
Docv->>Browser: login consent
Browser->>Front: callback code
Front->>Docv: token endpoint
Docv->>Front: access_token id_token
Front->>API: API calls Authorization Bearer
API->>API: validate JWT JWKS
Intégrations IA côté backend docv (services smart_ide, clones, AnythingLLM) : docv-ai-integration.md.
Gestion documentaire, chemins ../projects/<projet>/data, DOCV_PROJECTS_ROOT : docv-service-integration.md.
Paramètres à fixer avec le dépôt Enso
issuer(URL stable par env)client_id/client_secretou client public + PKCE- Scopes : au minimum
openid,profile,email; scopes métier docv si besoin - Audience (
aud) attendue par l’APIsmart_ide - Mapping rôles / groupes → profils OpenShell (lecture seule, deploy pprod, etc.)
Environnements
Un client OAuth par env (test / pprod / prod) ou un seul client avec claims d’environnement — à trancher avec la sécurité Enso. Les URLs de callback du front diffèrent par déploiement.
Références internes
- sso-gateway-service.md — passerelle OIDC → smart-ide-global-api → micro-services
- platform-target.md — matrice test / pprod / prod
- deployment-target.md — TLS, pas de HTTP de contournement
Suite
Lorsque le dépôt Enso (ex. /home/desk/code/enso/) est accessible, compléter ce document avec les chemins d’endpoints réels et captures d’écran des écrans docv concernés.