Gestire le sessioni IAP con la federazione delle identità della forza lavoro

Questa pagina fornisce indicazioni per la gestione di Identity-Aware Proxy (IAP) con le sessioni di federazione delle identità per la forza lavoro.

Quando configuri un pool di forza lavoro, puoi specificare la durata della sessione tra Google Cloud e un IdP. Puoi specificare una durata della sessione compresa tra 15 minuti e 12 ore. Questa impostazione corrisponde anche alla durata del cookie di sessione IAP. La durata predefinita della sessione è di un'ora.

Quando una sessione scade, l'utente finale viene reindirizzato all'IdP di terze parti per accedere. Se la sessione IdP di terze parti è ancora attiva, l'accesso avviene in modo silenzioso.

Per ulteriori informazioni sull'impostazione della durata della sessione, consulta Gestisci i provider di pool di identità per la forza lavoro.

Stabilisci una sessione utilizzando una richiesta AJAX

Quando utilizzi la federazione delle identità per la forza lavoro, puoi anche effettuare richieste AJAX per stabilire una sessione.

IAP si basa sui cookie per gestire le sessioni utente e su una sequenza di reindirizzamenti per stabilire una sessione durante l'accesso. Se la tua applicazione utilizza la condivisione delle risorse multiorigine (CORS) per effettuare richieste AJAX da un dominio di origine a un dominio di destinazione che ospita un'applicazione protetta da IAP, devi prima stabilire una sessione IAP sul dominio di destinazione fuori banda. I cookie non possono essere condivisi tra il dominio di origine e quello di destinazione.

Dopo aver stabilito una sessione nel dominio di destinazione, configura le richieste in modo che includano le credenziali, poiché i metodi JavaScript non allegano i cookie per impostazione predefinita:

  • Per gli oggetti XMLHttpRequest, imposta la proprietà withCredentials su true.
  • Per Fetch API, imposta l'opzione credentials su include o same-origin.

Per le richieste AJAX scadute o non autenticate, IAP restituisce un codice di stato HTTP 401: Unauthorized. Se le tue richieste AJAX ricevono un codice di stato 302 anziché 401, aggiungi un'intestazione X-Requested-With con un valore "XMLHttpRequest" per indicare che la richiesta proviene da JavaScript. Per stabilire o aggiornare la sessione dopo aver ricevuto una risposta HTTP 401, apri una nuova finestra per l'URL del dominio di destinazione con ?gcp-iap-mode=DO_SESSION_REFRESH aggiunto.

Per ulteriori informazioni ed esempi di codice, consulta Richieste AJAX.