Télécharger les métadonnées SAML SP d'une connexion

GET /v1/connections/{connection_id}/sp-metadata · autorisation connections:read

Télécharge le document de métadonnées signé du fournisseur de service (SP) SAML 2.0 d'une connexion SAML d'entreprise : le fichier que l'administrateur du fournisseur d'identité importe chez ce dernier. Il s'agit du même document que celui servi à l'adresse publique des métadonnées de la connexion (https://<hôte SP>/saml/<conn_…>/metadata) :

Les clés SP sont créées au premier usage si elles n'existent pas encore. Le document ne contient aucun secret. Les lectures ne sont pas auditées.

Avec revision_id, vous obtenez à la place le document d'une révision en brouillon. Pour une migration de l'hôte SP, il contient les points de terminaison du nouvel hôte : transmettez-le à l'administrateur du fournisseur d'identité avant de publier la révision.

Requête

Champ Type Obligatoire Description
connection_id chemin oui ID de la connexion d'entreprise (conn_…).
revision_id requête non Une révision en brouillon de la connexion (connrev_…).

Réponse

200 OK avec le document XML dans le corps de la réponse :

En-tête Valeur
Content-Type application/samlmetadata+xml
Content-Disposition attachment; filename="<conn_…>-sp-metadata.xml"
Cache-Control no-store
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
    ID="_…" entityID="https://acme.eu.keenauth.app/saml/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/metadata"
    validUntil="2026-11-02T10:00:00Z" cacheDuration="PT24H">
  <ds:Signature>…</ds:Signature>
  <md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    …
  </md:SPSSODescriptor>
</md:EntityDescriptor>

Erreurs

HTTP code Cas
404 not_found La connexion n'existe pas dans cet environnement ou n'est pas une connexion d'entreprise.
409 conflict La connexion n'est pas une connexion SAML, ou n'a pas encore de configuration SAML.
422 validation_failed revision_id est mal formé ou répété (invalid_value, repeated), ou n'est pas une révision en brouillon de cette connexion (not_found) ; errors[] pointe vers /revision_id.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant ne dispose pas de l'autorisation requise.
429 rate_limited La limite de débit a été dépassée ; réessayez après la durée indiquée par Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après la durée indiquée par Retry-After.

Exemple

curl -o sp-metadata.xml "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/sp-metadata" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
keenauth connections sp-metadata conn_01j9xp6q0r1s5t7v9w1x3y5z7b --file sp-metadata.xml

Sans --file, la CLI écrit le XML sur la sortie standard. Un fichier existant n'est jamais écrasé.