IdP-Signaturzertifikat zu einer Verbindung hinzufügen
POST /v1/connections/{connection_id}/certificates · Berechtigung connections:write
Fügt einer Enterprise-SAML-Verbindung ein Signaturzertifikat des Identity Providers hinzu. Verwenden Sie es, um das Zertifikat von Hand hochzuladen oder um Zertifikate zu rotieren: Fügen Sie zuerst das neue Zertifikat hinzu, stellen Sie den Identity Provider um und löschen Sie danach das alte. Die Rotation wirkt sofort, auch bei einer aktiven Verbindung.
Das Zertifikat ist ein PEM-Block CERTIFICATE (höchstens 8 KiB). Es darf nicht abgelaufen sein und muss einen RSA-Schlüssel mit mindestens 2048 Bit oder einen ECDSA-Schlüssel P-256, P-384 oder P-521 haben. Wird es abgelehnt, nennt die Antwort den Grund nicht, und weder der Grund noch der Zertifikatsinhalt werden protokolliert. Eine Verbindung hat höchstens 3 aktive Zertifikate. Ein von der Verbindung gelöschtes Zertifikat kann nicht erneut hinzugefügt werden. Die Anfrage nimmt keinen If-Match-Header an. Schreibvorgänge werden als connection.idp_certificate_added auditiert.
Anfrage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
connection_id |
Pfad | ja | ID der Enterprise-SAML-Verbindung (conn_…). |
certificate |
Zeichenkette | ja | Ein PEM-Zertifikat (-----BEGIN CERTIFICATE----- …), höchstens 8 KiB. |
Antwort
201 Created mit dem neuen Zertifikat (siehe Zertifikate auflisten). Ist dasselbe Zertifikat bereits an der Verbindung hinterlegt, lautet die Antwort 200 OK mit dem registrierten Zertifikat; es wird nichts geschrieben oder auditiert.
{"id": "conncert_01j9xq2m4n6p8r0s2t4v6w8y0a", "sha256_fingerprint": "3b0c…", "not_before": "2026-01-01T00:00:00Z", "not_after": "2028-01-01T00:00:00Z", "source": "manual"}
Fehler
| HTTP | code | Wann |
|---|---|---|
| 404 | not_found |
Die Verbindung existiert in dieser Umgebung nicht oder ist keine Enterprise-Verbindung. |
| 409 | conflict |
Die Verbindung ist keine SAML-Verbindung, hat noch keine SAML-Konfiguration, hat bereits 3 aktive Zertifikate oder das Zertifikat wurde zuvor von ihr gelöscht. |
| 422 | validation_failed |
Das Zertifikat fehlt, ist zu groß oder wird nicht akzeptiert; errors[] verweist auf /certificate. Staging- und Produktionsumgebungen lehnen außerdem ein Zertifikat ab, das dem öffentlichen Testschlüssel des lokalen Mock-Servers entspricht. |
| 400 | unknown_field |
Der Körper enthält ein unbekanntes Feld. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Den Anmeldedaten fehlt die erforderliche Berechtigung. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; wiederholen Sie nach der Frist aus Retry-After. |
| 503 | service_unavailable |
Eine Abhängigkeit ist vorübergehend nicht verfügbar; wiederholen Sie nach der Frist aus Retry-After. |
Beispiel
jq -Rs '{certificate: .}' idp-signing.pem > cert.json
curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/certificates" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d @cert.json
keenauth connections certificates add conn_01j9xp6q0r1s5t7v9w1x3y5z7b --certificate-file idp-signing.pem