Bağlantının öznitelik eşlemelerini değiştir

PUT /v1/connections/{connection_id}/attribute-mappings · izin connections:write

Kurumsal bağlantının öznitelik eşleme listesini tamamen değiştirir. Kuralların sırası önemsizdir; yanıt hedefe göre sıralıdır. If-Match zorunludur: yoksa istek 428 ile, liste okunduktan sonra değiştiyse (ya da değer eşleşmiyorsa) 412 ile başarısız olur ve hiçbir şey yazılmaz. Aynı listeyi göndermek yazma yapmaz. Değişiklik bir sonraki girişten itibaren geçerlidir ve son başarılı bağlantı testini geçersiz kılmaz. Yazma connection.attribute_mappings_replaced olarak audit'e düşer (eklenen, silinen ve değişen hedefler); girişlerden gelen öznitelik değerleri audit'e asla yazılmaz.

İstek

Alan Tür Zorunlu Açıklama
connection_id yol evet Kurumsal bağlantı kimliği (conn_…).
If-Match başlık evet Son okumadaki ETag. Yoksa 428, eskiyse 412.
attribute_mappings dizi evet Tam yeni liste, en çok 28 kural.
attribute_mappings[].target string evet email (her listede zorunlu), given_name, family_name, name, locale, zoneinfo, phone, groups ya da user_metadata.<anahtar> (anahtar [a-z0-9_]{1,40}; kayıtlı OIDC claim adları ve idp_ öneki kullanılamaz; en çok 20 anahtar). Hedef başına tek kural. app_metadata eşlemeyle yazılamaz.
attribute_mappings[].source_name string evet 1–512 bayt; denetim ya da çift yönlü metin karakteri, baş ve sonda boşluk yok.
attribute_mappings[].source_name_format string | null hayır SAML NameFormat (mutlak URI). Bir kaynak adı yalnız tek biçimle okunabilir.
attribute_mappings[].overwrite string evet always, if_empty ya da never.
attribute_mappings[].profile string hayır Hazır profil adı; verilmezse generic.

Yanıt

200 OK; saklanan liste (bkz. Öznitelik eşlemelerini getir) ve yeni ETag.

Hatalar

HTTP code Ne zaman
404 not_found Bağlantı bu ortamda yok ya da kurumsal bağlantı değil.
409 conflict Bağlantının protokolünde öznitelik eşlemesi yok (LDAP).
412 precondition_failed If-Match güncel sürümle eşleşmiyor ya da liste eşzamanlı değişti.
422 validation_failed Bir kural yukarıdaki kuralları bozuyor. Her kırık kural bir errors[] öğesidir; işaretçi /attribute_mappings/<sıra>/<alan>, liste kurallarında /attribute_mappings'tir (email_required, too_many_metadata_keys).
428 precondition_required If-Match başlığı yok.
400 unknown_field Gövdede bilinmeyen alan var.
401 unauthenticated Kimlik bilgisi yok, geçersiz ya da iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde gerekli izin yok.
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 PUT "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/attribute-mappings" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "6f1c…"' \
  -d '{"attribute_mappings":[{"target":"email","source_name":"email","overwrite":"always"},{"target":"user_metadata.department","source_name":"department","overwrite":"if_empty"}]}'
keenauth connections attribute-mappings put conn_01j9xp6q0r1s5t7v9w1x3y5z7b --data @mappings.json --if-match '"6f1c…"'