Federe bir kimliği kullanıcıya bağlayın

POST /v1/users/{user_id}/identities · izin users:write

Federe bir kimliği (sosyal, SAML veya OIDC bağlantısının harici konusu) kullanıcıya bağlar; böylece kullanıcı bu bağlantıyla giriş yapabilir. linked_via her zaman admin_api değerindedir. Bağlantı, bu ortamın etkin bir bağlantısı olmalı ve türü type ile eşleşmelidir. Aynı kimlik zaten bu veya başka bir kullanıcıya bağlıysa istek 409 ile başarısız olur ve sahibi açıklanmaz. Harici konu kişisel veridir: şifreli olarak saklanır, hiçbir zaman geri döndürülmez ve yönetim denetim kaydı user.identity_linked (işlemi yapan: API anahtarı) bunu içermez. İki kullanıcıyı birleştirme (source_user_id) kullanılamaz; bilinmeyen bir alan 400 unknown_field döndürür.

İstek

Parametre Konum Zorunlu Açıklama
user_id path evet usr_ öneki taşıyan kullanıcı kimliği.
Alan Tür Zorunlu Açıklama
type string evet social, saml veya oidc; bağlantıyla eşleşmelidir (sosyal bağlantı için social, aynı stratejideki kurumsal bağlantı için saml/oidc).
connection_id string evet conn_ öneki taşıyan bağlantı kimliği.
subject string evet Kimlik sağlayıcıdaki harici konu (OIDC sub, SAML NameID), en fazla 1024 bayt UTF-8.

Yanıt

GET /v1/users/{user_id}/identities tarafından döndürülen biçimde, yeni kimlikle birlikte 201 Created.

{
  "id": "idn_0a1b2c3d4e5f6g7h8j9k0m1n2r",
  "type": "oidc",
  "connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s",
  "provider": null,
  "linked_via": "admin_api",
  "created_at": "2026-01-15T09:30:00Z"
}

Hatalar

Her hata, kararlı bir code içeren bir application/problem+json gövdesidir.

HTTP code Ne zaman
400 malformed_request, unknown_field Gövde geçerli JSON değilse veya bilinmeyen bir alan içeriyorsa.
409 conflict Kimlik zaten bir kullanıcıya bağlıysa (errors[]: identity_already_linked) veya kullanıcı kullanıcı başına kimlik sınırına ulaştıysa (errors[]: identity_limit_reached).
415 unsupported_media_type Gövde Content-Type: application/json olmadan gönderildiyse.
422 validation_failed Bir alan eksik veya geçersizse (/type, /connection_id, /subject) ya da bağlantı, bu ortamın type ile eşleşen etkin bir bağlantısı değilse (errors[]: /connection_id, connection_unavailable).
404 not_found Kullanıcı bu ortamda yoksa, siliniyorsa veya kimlik biçimi hatalıysa.
401 unauthenticated API anahtarı eksik, geçersiz veya iptal edilmişse.
403 insufficient_permissions Anahtarın users:write izni yoksa.
429 rate_limited Hız sınırı aşıldıysa; Retry-After değerine uyun.
503 service_unavailable Bir bağımlılık geçici olarak kullanılamıyorsa; daha sonra yeniden deneyin.

Örnek

curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/identities \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type": "oidc", "connection_id": "conn_0a1b2c3d4e5f6g7h8j9k0m1n2s", "subject": "248289761001"}'

Kişisel veriler

Bu uç nokta kişisel veri içerir: bağlı kimlikler. KeenAuth API'lerinde kişisel veriler neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.