연결에 IdP 서명 인증서 추가
POST /v1/connections/{connection_id}/certificates · 권한 connections:write
엔터프라이즈 SAML 연결에 IdP의 서명 인증서를 추가합니다. 인증서를 직접 업로드하거나 인증서를 교체(로테이션)할 때 사용합니다. 먼저 새 인증서를 추가하고, IdP를 새 인증서로 전환한 다음, 이전 인증서를 삭제하세요. 교체는 활성 연결에서도 즉시 적용됩니다.
인증서는 하나의 PEM CERTIFICATE 블록(최대 8 KiB)이어야 합니다. 만료되지 않아야 하며, 2048비트 이상의 RSA 키 또는 ECDSA P-256, P-384, P-521 키를 가져야 합니다. 거부되면 응답은 이유를 알려 주지 않으며, 이유와 인증서 내용은 기록되지 않습니다. 연결당 활성 인증서는 최대 3개입니다. 연결에서 삭제된 인증서는 다시 추가할 수 없습니다. 이 요청은 If-Match 헤더를 받지 않습니다. 쓰기 작업은 connection.idp_certificate_added로 감사됩니다.
요청
| 필드 | 유형 | 필수 | 설명 |
|---|---|---|---|
connection_id |
경로 | 예 | 엔터프라이즈 SAML 연결 ID(conn_…). |
certificate |
문자열 | 예 | PEM 인증서 하나(-----BEGIN CERTIFICATE----- …), 최대 8 KiB. |
응답
새 인증서와 함께 201 Created를 반환합니다(인증서 목록 참고). 같은 인증서가 이미 연결에 있으면 등록된 인증서와 함께 200 OK를 반환하며, 아무것도 기록되거나 감사되지 않습니다.
{"id": "conncert_01j9xq2m4n6p8r0s2t4v6w8y0a", "sha256_fingerprint": "3b0c…", "not_before": "2026-01-01T00:00:00Z", "not_after": "2028-01-01T00:00:00Z", "source": "manual"}
오류
| HTTP | code | 발생 조건 |
|---|---|---|
| 404 | not_found |
이 환경에 연결이 없거나 엔터프라이즈 SAML 연결이 아닙니다. |
| 409 | conflict |
연결이 SAML 연결이 아니거나, SAML 설정이 아직 없거나, 활성 인증서가 이미 3개이거나, 이 인증서가 전에 연결에서 삭제되었습니다. |
| 422 | validation_failed |
인증서가 없거나, 너무 크거나, 허용되지 않습니다. errors[]가 /certificate를 가리킵니다. 스테이징 및 운영 환경은 로컬 모의 서버의 공개 테스트 키에 해당하는 인증서도 거부합니다. |
| 400 | unknown_field |
본문에 알 수 없는 필드가 있습니다. |
| 401 | unauthenticated |
자격 증명이 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | insufficient_permissions |
자격 증명에 필요한 권한이 없습니다. |
| 429 | rate_limited |
요청 한도를 초과했습니다. Retry-After 기간이 지난 후 다시 시도하세요. |
| 503 | service_unavailable |
종속 서비스를 일시적으로 사용할 수 없습니다. Retry-After 기간이 지난 후 다시 시도하세요. |
예시
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