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.