SAML bağlantısı için IdP kaynaklı oturum açmayı ayarlayın
PUT /v1/connections/{connection_id}/idp-initiated · izin connections:write
Kurumsal bir SAML bağlantısı için IdP kaynaklı oturum açmaya (kimlik sağlayıcının uygulama portalından gönderilen, istenmemiş bir SAML yanıtı) izin verir veya bunu kapatır ve kullanıcıların açabileceği uygulamaları belirler. Varsayılan olarak kapalıdır.
- Tam değiştirme: Her istek üç alanın tümünü yazar. Gönderilmeyen
idp_initiated_default_application_idve boş biridp_initiated_allowed_application_idstemizlenir. - Hedefler: Her uygulama bu ortamda bulunmalı, kullanıcıları bir tarayıcı üzerinden oturum açtırmalı (makineden makineye, yönetim veya istemci kimliği meta veri belgesi istemcisi değil) ve bir
initiate_login_urideğerine sahip olmalıdır. Oturum açıldıktan sonra tarayıcı,issparametresiyle birlikte bu adrese yönlendirilir ve uygulama kendi yetkilendirme isteğinistateve PKCE ile başlatır. - RelayState: Kimlik sağlayıcı bir RelayState gönderdiğinde, bu değer yalnızca uygulamanın
client_iddeğerine bayt bayt eşitse ve uygulama varsayılan uygulama ya da izin verilen listedeki bir uygulama ise bir uygulamayı seçer. RelayState hiçbir zaman URL olarak değerlendirilmez. - Güvenlik: Bu ayar, kullanıcılarınızın başlatmadığı yanıtları kabul eder. Bu nedenle bir kontrol paneli kullanıcısının yeni bir adım doğrulaması yapması ve
ownerveyaadminrolüne sahip olması gerekir. Yönetici Portalı bu ayarı değiştiremez.
İstek
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
connection_id |
path | evet | Kurumsal SAML bağlantı kimliği (conn_…). |
If-Match |
header | hayır | Bağlantının ETag değeri. Eski bir değer 412 ile sonuçlanır. |
allow_idp_initiated |
boolean | evet | İstenmemiş SAML yanıtlarını kabul eder. true olduğunda idp_initiated_default_application_id gereklidir. |
idp_initiated_default_application_id |
string | null | etkinleştirildiğinde | RelayState boş olduğunda kullanılan uygulama (app_…). |
idp_initiated_allowed_application_ids |
array | hayır | RelayState'in seçebileceği uygulamalar (app_…); benzersiz olmalı, en fazla 20 adet. |
Yanıt
Bağlantıyla birlikte 200 OK (bkz. Bir bağlantıyı alın) ve yeni ETag değeri döner. Bağlantı, kaydedilen değerleri allow_idp_initiated, idp_initiated_default_application_id ve idp_initiated_allowed_application_ids alanlarında gösterir.
Hatalar
| HTTP | kod | Ne zaman |
|---|---|---|
| 404 | not_found |
Bağlantı bu ortamda mevcut değil. |
| 412 | precondition_failed |
If-Match geçerli sürümle eşleşmiyor. |
| 422 | validation_failed |
Bağlantı kurumsal bir SAML bağlantısı değil, etkinken varsayılan uygulama eksik ya da bir uygulama hedef kurallarını karşılamıyor. errors[] ilgili alanı gösterir. |
| 400 | unknown_field |
İstek gövdesinde bilinmeyen bir alan var. |
| 401 | unauthenticated |
Kimlik bilgisi eksik, geçersiz ya da iptal edilmiş. |
| 403 | insufficient_permissions |
Kimlik bilgisi gerekli izne sahip değil. |
| 403 | step_up_required |
Bir kontrol paneli kullanıcısı yakın zamanda adım doğrulaması tamamlamadı. |
| 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/idp-initiated" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"allow_idp_initiated":true,"idp_initiated_default_application_id":"app_01j9xp6q0r1s5t7v9w1x3y5z7c","idp_initiated_allowed_application_ids":["app_01j9xp6q0r1s5t7v9w1x3y5z7c"]}'
keenauth connections idp-initiated put conn_01j9xp6q0r1s5t7v9w1x3y5z7b --data '{"allow_idp_initiated":false}'