subject 충돌 해결

POST /v1/connections/{connection_id}/subject-conflicts/{conflict_id}:resolve · 권한 users:write

열려 있는 SSO subject 충돌(연결의 subject 충돌 목록 조회 참조)에 대해 관리자의 결정을 적용합니다. 새 subject가 누구의 것인지 ID 공급자의 관리자와 확인한 후에만 결정하십시오.

resolution 의미 KeenAuth의 동작
same_person 새 subject가 같은 사람의 것입니다(예: ID 공급자에서 계정을 다시 만든 경우). 이 연결에서 사용자의 기존 ID를 새 subject로 교체합니다. 다음 로그인부터 사용자는 새 subject로 로그인합니다.
different_person 이메일 주소가 다른 사람에게 할당되었습니다. 레코드를 닫고 아무것도 연결하지 않습니다. 새 사람이 기존 계정에 들어갈 수 없습니다.

different_person을 선택한 후 새 사람이 다음 번에 로그인하면 새 레코드가 생성됩니다. 새 사람이 로그인하도록 하려면 기존 계정의 이메일 주소를 변경하거나, 해당 계정을 차단 또는 삭제하십시오. 그 후에는 일반 로그인 규칙이 적용됩니다.

ID 변경, 해당 이벤트 및 감사 기록은 하나의 트랜잭션으로 기록됩니다. 감사 행위자는 호출을 수행한 자격 증명입니다.

같은 결정을 반복하면 아무것도 기록하지 않고 레코드를 반환합니다. 이미 해결된 레코드에 다른 결정을 내리면 409 conflict를 반환합니다. 재시도 시 원래 응답을 돌려받으려면 Idempotency-Key를 보내십시오.

요청

필드 유형 필수 설명
connection_id path 예 연결 ID (conn_…).
conflict_id path 예 subject 충돌 ID (sscf_…).
resolution body 예 same_person 또는 different_person.
{ "resolution": "same_person" }

응답

해결된 레코드와 함께 200 OK를 반환합니다:

{
  "id": "sscf_01j9xr4a6b8c0d2e4f6g8h0j2k",
  "connection_id": "conn_01j9xp6q0r1s5t7v9w1x3y5z7b",
  "user_id": "usr_01j9xm2n4p6q8r0s2t4v6w8x0y",
  "status": "resolved",
  "resolution": "same_person",
  "created_at": "2026-10-28T10:00:00Z",
  "last_seen_at": "2026-10-28T10:05:00Z",
  "expires_at": "2026-11-27T10:00:00Z",
  "closed_at": "2026-10-28T11:00:00Z"
}

오류

HTTP code 발생 조건
400 unknown_field / malformed_request 본문에 알 수 없는 필드가 있거나 올바른 JSON이 아닙니다.
401 unauthenticated 자격 증명이 없거나, 유효하지 않거나, 취소되었습니다.
403 insufficient_permissions 자격 증명에 users:write 권한이 없습니다.
403 user_not_active same_person: 사용자가 차단되었거나 삭제 중입니다. 레코드는 열린 상태로 유지됩니다.
404 not_found 이 환경에 연결 또는 레코드가 없거나, 레코드가 다른 연결에 속하거나, 만료되었습니다.
409 conflict 레코드가 다른 결정으로 이미 해결되었습니다. 또는 same_person의 경우 연결이 활성 상태가 아니거나, 새 subject가 이제 다른 사용자에 연결되어 있거나, 사용자의 ID 한도에 도달했습니다. same_person인 경우 레코드는 열린 상태로 유지됩니다.
422 validation_failed resolution이 없거나 두 값 중 하나가 아닙니다(errors[].pointer = /resolution).
429 rate_limited 요청 한도를 초과했습니다. Retry-After 기간이 지난 후 다시 시도하십시오.
503 service_unavailable 종속 서비스를 일시적으로 사용할 수 없습니다. Retry-After 기간이 지난 후 다시 시도하십시오.

예제

curl -X POST "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/subject-conflicts/sscf_01j9xr4a6b8c0d2e4f6g8h0j2k:resolve" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"resolution":"different_person"}'
keenauth connections subject-conflicts resolve conn_01j9xp6q0r1s5t7v9w1x3y5z7b sscf_01j9xr4a6b8c0d2e4f6g8h0j2k \
  --resolution different_person --yes