Intégrations
Liste les providers SSO disponibles (pour la page login).
Liste les providers SSO disponibles (pour la page login).
Endpoint PUBLIC (pré-login, pas de JWT) — audit pro-ready 2026-06-23
(finding high) + campagne MUST Vague 0 (2026-07-02) : l'ancienne
réponse retournait un item PAR intégration directory de TOUTES les
orgs, chacun avec son `integration_id` interne → énumération
cross-tenant (ids internes + nombre d'orgs équipées) sur un endpoint
sans auth. Fix, réponse minimale strictement pré-login :
- `{provider, name}` uniquement — plus AUCUN identifiant interne ;
- dédupliquée par provider (au plus 1 entrée microsoft + 1 google) —
ne révèle plus combien d'orgs ont un SSO configuré ;
- intégrations ACTIVES uniquement (`is_active=True`, comportement
historique conservé — une intégration désactivée ne doit pas faire
apparaître de bouton SSO sur la page login) ;
- Home Realm Discovery optionnelle : `?email=user@acme.fr` masque les
intégrations dont `credentials["domain"]` est configuré et ne
correspond pas au domaine de l'email. Une intégration SANS domaine
configuré reste visible (aucune restriction déclarée) — le flux
existant (frontend appelle sans `email`) est inchangé.
Le flux authorize (`GET /auth/sso/<provider>/authorize`) ne consomme
pas d'id côté client : il résout l'intégration côté serveur via
`_find_directory_integration()` — retirer `integration_id` ne casse
donc rien (vérifié : `frontend/src/features/auth/{sign-in,sign-up}`
n'utilisent que `provider` + `name`).
get/api/v1/integrations/sso-providers
Request
- Base URL: https://erp.eyeot.fr/api/v1
- URL: https://erp.eyeot.fr/api/v1/api/v1/integrations/sso-providers
- Auth: none declared
Response
Succès — payload {data, meta} (cf. API-GUIDE §3.1)
Changes
No recorded changes to this operation across all 1 revision of this API.