POST/api/sso/:tenantSlug/saml/acs

Assertion Consumer Service : reçoit la réponse SAML signée par l'Identity-Provider via un POST de formulaire. Appelé exclusivement par l'Identity-Provider, pas par un client API.

La page « POST /api/sso/:tenantSlug/saml/acs — Référence API » traite la fonction désignée par cette URL. Le résumé existant est complété par le fonctionnement réel, les prérequis et les limites connues. Zentor ne possède pas de système de clé API pour développeurs. Le tableau de bord utilise des JWT de session valables douze heures et des jetons de renouvellement valables sept jours ; TOTP et SSO sont facultatifs. Les jetons d’intégration du Widget ne sont affichés en clair qu’une seule fois et sont limités aux origines autorisées. `POST /api/sso/:tenantSlug/saml/acs` correspond à l’opération précise décrite sur cette entrée d’aide. Le client a pour obligation de respecter la méthode HTTP, le chemin, le mode d’authentification, les champs obligatoires et les erreurs documentées. Zentor ne fournit pas de clé API développeur générale : la route est publique ou utilise le jeton Widget et la vérification d’origine prévus. Pour `/api/sso/:tenantSlug/saml/acs`, le statut HTTP et le corps JSON doivent être interprétés ensemble. Une erreur de validation, une ressource absente, une origine refusée, une valeur à usage unique expirée et une erreur serveur ne se traitent pas de la même manière. Un succès confirme uniquement cette étape, pas la livraison d’un e-mail, un paiement ou la fin d’un SSO. Les essais de `POST /api/sso/:tenantSlug/saml/acs` s’appuie surnt des données anonymisées. Aucun exemple public ne doit contenir de données client, d’UUID proches de la production, de JWT de session, de jeton Widget ni d’horodatage réel. La limite connue de la plateforme est de 2 000 requêtes par 15 minutes ; aucune limite distincte n’est prouvée pour cette route. Une requête POST non idempotente ne doit pas être répétée automatiquement à la suite de une coupure réseau ambiguë, car le premier appel peut avoir produit un effet. Les journaux peuvent conserver le statut et un code d’erreur sûr, jamais un mot de passe, un code de vérification ou un jeton de réinitialisation. Ce point concerne directement « POST /api/sso/:tenantSlug/saml/acs ». Pour « POST /api/sso/:tenantSlug/saml/acs — Référence API », les sources de vérité sont le registre API, la route backend correspondante et les tests. Un test négatif ou une analogie de code ne constitue pas une vérification complète en production. Le texte est tenu de distinguer schéma, test automatisé et observation live sûre.

Authentification et sécurité

Aucune authentification requise

Idempotent: Non

Paramètres

tenantSlug(path, string, requis)
SAMLResponse(body, string, requis)XML de réponse SAML signé par l'Identity-Provider (base64), envoyé en tant que POST de formulaire

Exemple de réponse

Redirection 302 vers <FRONTEND_URL>/login?sso_error=SSO_STATE_MISSING (exemple sans réponse SAML valide)

Codes d'erreur

302 SSO_STATE_MISSINGRedirection vers la connexion avec un paramètre de requête d'erreur.

Preuve de test en direct

Comportement de redirection (302) avec un SAMLResponse fictif vérifié en direct.

Chatbot de démonstration et SSO