Özne çakışmasını çözme

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

Açık bir SSO özne çakışmasına yönetici kararı uygular (bkz. Bir bağlantının özne çakışmalarını listeleme). Karar vermeden önce, yeni öznenin kime ait olduğunu kimlik sağlayıcının yöneticisiyle doğrulayın.

resolution Anlamı KeenAuth ne yapar
same_person Yeni özne aynı kişiye aittir (örneğin, hesap kimlik sağlayıcıda yeniden oluşturulmuştur). Kullanıcının bu bağlantıdaki eski kimliğini yeni özneyle değiştirir. Kullanıcı bir sonraki oturum açmada yeni özneyle giriş yapar.
different_person E-posta adresi başka birine verilmiştir. Kaydı kapatır ve hiçbir şeyi bağlamaz. Yeni kişi mevcut hesaba hiçbir zaman erişemez.

different_person kararının ardından, yeni kişinin bir sonraki oturum açma girişimi yeni bir kayıt açar. Yeni kişinin oturum açabilmesi için mevcut hesabın e-posta adresini değiştirin ya da bu hesabı engelleyin veya silin; ardından normal oturum açma kuralları uygulanır.

Kimlik değişikliği, ilgili olaylar ve denetim kaydı tek bir işlemde yazılır. Denetim kaydındaki işlemi yapan, çağrıyı gerçekleştiren kimlik bilgisidir.

Aynı kararı tekrar göndermek hiçbir şey yazmadan kaydı döndürür. Çözümlenmiş bir kayıt için farklı bir karar 409 conflict döndürür. Yeniden denemelerde özgün yanıtı geri almak için bir Idempotency-Key gönderin.

İstek

Alan Tür Zorunlu Açıklama
connection_id yol evet Bağlantı kimliği (conn_…).
conflict_id yol evet Özne çakışması kimliği (sscf_…).
resolution gövde evet same_person veya different_person.
{ "resolution": "same_person" }

Yanıt

Çözümlenmiş kayıtla birlikte 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"
}

Hatalar

HTTP code Ne zaman
400 unknown_field / malformed_request Gövdede bilinmeyen bir alan var veya geçerli JSON değil.
401 unauthenticated Kimlik bilgisi eksik, geçersiz veya iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde users:write izni yok.
403 user_not_active same_person: kullanıcı engellenmiş veya silinmek üzere. Kayıt açık kalır.
404 not_found Bağlantı veya kayıt bu ortamda yok, kayıt başka bir bağlantıya ait ya da süresi dolmuş.
409 conflict Kayıt diğer kararla çözümlenmiş; ya da same_person için bağlantı aktif değil, yeni özne artık başka bir kullanıcıya bağlı veya kullanıcının kimlik sınırına ulaşılmış. same_person durumlarında kayıt açık kalır.
422 validation_failed resolution eksik ya da iki değerden biri değil (errors[].pointer = /resolution).
429 rate_limited Hız sınırı aşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin.

Örnek

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