- New service smart-ide-sso-gateway (port 37148): JWKS verify, /health, /v1/token/verify, /v1/upstreams, /proxy/<key>/... - CORS on JSON responses when SSO_CORS_ORIGIN is set; optional empty bearer for langextract upstream - Docs: feature, API, repo index; wire sso-docv-enso and services scope - Extend config/services.local.env.example with OIDC and gateway vars
2.0 KiB
Passerelle SSO — accès utilisateur aux API smart_ide
Rôle
Le service smart-ide-sso-gateway (services/smart-ide-sso-gateway/) centralise la validation OIDC (jeton utilisateur émis par docv / Enso) et le proxy vers les micro-services du monorepo avec leurs jetons techniques.
- Le navigateur ou un BFF présente un
access_tokenutilisateur (Authorization: Bearer). - La passerelle vérifie la signature (JWKS),
iss, éventuellementaud, puis appelle l’amont avec le Bearer de service ou la clé API attendue par chaque cible.
Les appels machine à machine sans contexte utilisateur (scripts, ia_dev) restent possibles en direct vers chaque service, comme avant : la passerelle est une option pour les parcours « utilisateur authentifié par docv ».
Lien avec docv / Enso
Le flux authorization code + PKCE et le rôle d’IdP restent décrits dans sso-docv-enso.md. La passerelle ne remplace pas docv : elle consomme les access_token déjà obtenus par le front ou un back de confiance.
Amonts proxy
Les clés exposées par GET /v1/upstreams et utilisées dans /proxy/<clé>/... sont : orchestrator, repos_devtools, ia_dev_gateway, anythingllm_devtools, tools_bridge, langextract, regex_search, claw_proxy, local_office. Les variables d’environnement sont les mêmes que pour le reste de la plateforme (config/services.local.env.example).
En-têtes vers l’amont
En plus de l’authentification de service, la passerelle peut envoyer :
X-OIDC-Sub— claimsubdu JWT utilisateur ;X-OIDC-Email— claimemailsi présent.
Les services amont peuvent s’en servir pour du journal ou des règles fines ; la politique d’autorisation métier reste de leur responsabilité.