IdP-initiierte Anmeldung für eine SAML-Verbindung festlegen
PUT /v1/connections/{connection_id}/idp-initiated · Berechtigung connections:write
Erlaubt oder deaktiviert die IdP-initiierte Anmeldung (eine unaufgeforderte SAML-Antwort, die vom App-Portal des Identitätsanbieters gesendet wird) für eine SAML-Verbindung für Unternehmen und legt fest, in welche Anwendungen Benutzer gelangen dürfen. Standardmäßig ist sie deaktiviert.
- Vollständiger Ersatz: Jede Anfrage schreibt alle drei Felder. Ein weggelassenes
idp_initiated_default_application_idund ein leeresidp_initiated_allowed_application_idswerden gelöscht. - Ziele: Jede Anwendung muss in dieser Umgebung existieren, Benutzer über einen Browser anmelden (nicht Machine-to-Machine, Management oder Client mit Client-ID-Metadatendokument) und ein
initiate_login_uribesitzen. Nach der Anmeldung wird der Browser mitissan diese Adresse weitergeleitet, und die Anwendung startet ihre eigene Autorisierungsanfrage mitstateund PKCE. - RelayState: Sendet der Identitätsanbieter einen RelayState, wählt dieser nur dann eine Anwendung aus, wenn er byte-genau der
client_iddieser Anwendung entspricht und die Anwendung die Standardanwendung oder in der Liste der erlaubten Anwendungen ist. Der RelayState wird niemals als URL behandelt. - Sicherheit: Diese Einstellung akzeptiert Antworten, die Ihre Benutzer nicht angestoßen haben. Daher benötigt ein Dashboard-Benutzer eine aktuelle Step-up-Authentifizierung und die Rolle
owneroderadmin. Das Admin-Portal kann diese Einstellung nicht ändern.
Anfrage
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
connection_id |
Pfad | ja | ID der SAML-Verbindung für Unternehmen (conn_…). |
If-Match |
Header | nein | Das ETag der Verbindung. Ein veralteter Wert schlägt mit 412 fehl. |
allow_idp_initiated |
boolean | ja | Unaufgeforderte SAML-Antworten akzeptieren. true erfordert idp_initiated_default_application_id. |
idp_initiated_default_application_id |
string | null | bei Aktivierung | Anwendung (app_…), die verwendet wird, wenn der RelayState leer ist. |
idp_initiated_allowed_application_ids |
array | nein | Anwendungen (app_…), die ein RelayState auswählen darf; eindeutig, höchstens 20. |
Antwort
200 OK mit der Verbindung (siehe Verbindung abrufen) und ihrem neuen ETag. Die Verbindung zeigt die gespeicherten Werte in allow_idp_initiated, idp_initiated_default_application_id und idp_initiated_allowed_application_ids an.
Fehler
| HTTP | Code | Wann |
|---|---|---|
| 404 | not_found |
Die Verbindung existiert in dieser Umgebung nicht. |
| 412 | precondition_failed |
If-Match stimmt nicht mit der aktuellen Version überein. |
| 422 | validation_failed |
Die Verbindung ist keine SAML-Verbindung für Unternehmen, die Standardanwendung fehlt bei aktivierter Option, oder eine Anwendung erfüllt die Zielregeln nicht; errors[] verweist auf das Feld. |
| 400 | unknown_field |
Der Body enthält ein unbekanntes Feld. |
| 401 | unauthenticated |
Die Anmeldedaten fehlen, sind ungültig oder widerrufen. |
| 403 | insufficient_permissions |
Die Anmeldedaten besitzen nicht die erforderliche Berechtigung. |
| 403 | step_up_required |
Ein Dashboard-Benutzer hat keine aktuelle Step-up-Authentifizierung abgeschlossen. |
| 429 | rate_limited |
Das Ratenlimit wurde überschritten; wiederholen Sie die Anfrage nach dem Zeitraum aus Retry-After. |
| 503 | service_unavailable |
Ein Dienst ist vorübergehend nicht verfügbar; wiederholen Sie die Anfrage nach dem Zeitraum aus Retry-After. |
Beispiel
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}'