Aggiungi un certificato di firma IdP a una connessione
POST /v1/connections/{connection_id}/certificates · permesso connections:write
Aggiunge a una connessione SAML enterprise un certificato di firma del provider di identità. Usala per caricare il certificato a mano o per ruotare i certificati: aggiungi prima il nuovo certificato, passa il provider di identità a quello nuovo, poi elimina il vecchio. La rotazione ha effetto immediato, anche su una connessione attiva.
Il certificato è un unico blocco PEM CERTIFICATE (al massimo 8 KiB). Non deve essere scaduto e deve avere una chiave RSA di almeno 2048 bit oppure una chiave ECDSA P-256, P-384 o P-521. Quando viene rifiutato, la risposta non indica il motivo e né il motivo né il contenuto del certificato vengono registrati. Una connessione ha al massimo 3 certificati attivi. Un certificato eliminato dalla connessione non può essere aggiunto di nuovo. La richiesta non accetta l'header If-Match. Le scritture vengono registrate come connection.idp_certificate_added.
Richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
connection_id |
percorso | sì | ID della connessione SAML enterprise (conn_…). |
certificate |
stringa | sì | Un certificato PEM (-----BEGIN CERTIFICATE----- …), al massimo 8 KiB. |
Risposta
201 Created con il nuovo certificato (vedi Elenca i certificati). Quando lo stesso certificato è già presente sulla connessione, la risposta è 200 OK con il certificato registrato; non viene scritto né tracciato nulla.
{"id": "conncert_01j9xq2m4n6p8r0s2t4v6w8y0a", "sha256_fingerprint": "3b0c…", "not_before": "2026-01-01T00:00:00Z", "not_after": "2028-01-01T00:00:00Z", "source": "manual"}
Errori
| HTTP | code | Quando |
|---|---|---|
| 404 | not_found |
La connessione non esiste in questo ambiente o non è una connessione enterprise. |
| 409 | conflict |
La connessione non è una connessione SAML, non ha ancora una configurazione SAML, ha già 3 certificati attivi, oppure il certificato è stato eliminato da essa in precedenza. |
| 422 | validation_failed |
Il certificato manca, è troppo grande o non viene accettato; errors[] indica /certificate. Gli ambienti di staging e produzione rifiutano anche un certificato uguale alla chiave pubblica di prova del server mock locale. |
| 400 | unknown_field |
Il corpo contiene un campo sconosciuto. |
| 401 | unauthenticated |
La credenziale è mancante, non valida o revocata. |
| 403 | insufficient_permissions |
La credenziale non ha il permesso richiesto. |
| 429 | rate_limited |
È stato superato il limite di frequenza; riprova dopo il periodo indicato da Retry-After. |
| 503 | service_unavailable |
Una dipendenza è temporaneamente non disponibile; riprova dopo il periodo indicato da Retry-After. |
Esempio
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