Imposta l'accesso avviato dall'IdP per una connessione SAML
PUT /v1/connections/{connection_id}/idp-initiated · autorizzazione connections:write
Consente o disattiva l'accesso avviato dall'IdP (una risposta SAML non richiesta inviata dal portale delle applicazioni del provider di identità) per una connessione SAML enterprise, e imposta le applicazioni in cui l'utente può atterrare. È disattivato per impostazione predefinita.
- Sostituzione completa: ogni richiesta scrive tutti e tre i campi. Un
idp_initiated_default_application_idomesso e unidp_initiated_allowed_application_idsvuoto vengono cancellati. - Destinazioni: ogni applicazione deve esistere in questo ambiente, far accedere gli utenti tramite browser (non client machine-to-machine, di gestione o client con documento di metadati di ID client) e avere un
initiate_login_uri. Dopo l'accesso il browser viene inviato a quell'indirizzo coniss, e l'applicazione avvia la propria richiesta di autorizzazione constatee PKCE. - RelayState: quando il provider di identità invia un RelayState, seleziona un'applicazione solo se è uguale byte per byte al
client_iddi quell'applicazione e l'applicazione è quella predefinita o è nell'elenco consentito. Il RelayState non viene mai trattato come URL. - Sicurezza: questa impostazione accetta risposte che i tuoi utenti non hanno avviato, quindi un utente della dashboard ha bisogno di un'autenticazione di step-up recente e del ruolo
owneroadmin. L'Admin Portal non può modificarla.
Richiesta
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
connection_id |
path | sì | ID della connessione SAML enterprise (conn_…). |
If-Match |
header | no | L'ETag della connessione. Un valore obsoleto fallisce con 412. |
allow_idp_initiated |
boolean | sì | Accetta risposte SAML non richieste. true richiede idp_initiated_default_application_id. |
idp_initiated_default_application_id |
string | null | quando abilitato | Applicazione (app_…) usata quando il RelayState è vuoto. |
idp_initiated_allowed_application_ids |
array | no | Applicazioni (app_…) che un RelayState può selezionare; univoche, al massimo 20. |
Risposta
200 OK con la connessione (vedi Ottieni una connessione) e il nuovo ETag. La connessione mostra i valori memorizzati in allow_idp_initiated, idp_initiated_default_application_id e idp_initiated_allowed_application_ids.
Errori
| HTTP | code | Quando |
|---|---|---|
| 404 | not_found |
La connessione non esiste in questo ambiente. |
| 412 | precondition_failed |
If-Match non corrisponde alla versione corrente. |
| 422 | validation_failed |
La connessione non è una connessione SAML enterprise, l'applicazione predefinita manca quando è abilitato, oppure un'applicazione non rispetta le regole di destinazione; errors[] indica il campo. |
| 400 | unknown_field |
Il corpo contiene un campo sconosciuto. |
| 401 | unauthenticated |
La credenziale manca, non è valida o è stata revocata. |
| 403 | insufficient_permissions |
La credenziale non ha l'autorizzazione richiesta. |
| 403 | step_up_required |
Un utente della dashboard non ha completato un'autenticazione di step-up recente. |
| 429 | rate_limited |
È stato superato il limite di richieste; riprova dopo il periodo indicato in Retry-After. |
| 503 | service_unavailable |
Una dipendenza non è disponibile temporaneamente; riprova dopo il periodo indicato in Retry-After. |
Esempio
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}'