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) :
entityID,validUntil(7 jours à l'avance) etcacheDuration(PT24H) ;- les certificats de signature et de chiffrement (deux de chaque pendant la fenêtre annuelle de rotation des clés) ;
- les formats NameID pris en charge, le service d'assertion consumer (HTTP-POST) et les points de terminaison de déconnexion unique ;
- une signature XML enveloppée réalisée avec la clé de signature SP active de la connexion.
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é.