Gérer les IAP avec des sessions de fédération des identités des employés

Cette page fournit des conseils pour gérer Identity-Aware Proxy (IAP) avec les sessions de fédération d'identité de personnel.

Lorsque vous configurez un pool d'employés, vous pouvez spécifier la durée de la session entre Google Cloud et un IdP. Vous pouvez spécifier une durée de session comprise entre 15 minutes et 12 heures. Ce paramètre correspond également à la durée du cookie de session IAP. La durée de session par défaut est d'une heure.

Lorsqu'une session expire, l'utilisateur final est redirigé vers le fournisseur d'identité tiers pour se connecter. Si la session du fournisseur d'identité tiers est toujours active, la connexion est silencieuse.

Pour en savoir plus sur la définition de la durée de la session, consultez Gérer les fournisseurs de pools d'identités de personnel.

Établir une session à l'aide d'une requête AJAX

Lorsque vous utilisez la fédération d'identité de personnel, vous pouvez également envoyer des requêtes AJAX pour établir une session.

IAP s'appuie sur des cookies pour gérer les sessions utilisateur et sur une séquence de redirections pour établir une session lors de la connexion. Si votre application utilise le partage de ressources interorigines (CORS) pour envoyer des requêtes AJAX d'un domaine source vers un domaine cible qui héberge une application sécurisée par IAP, vous devez d'abord établir une session IAP sur le domaine cible hors bande. Les cookies ne peuvent pas être partagés entre le domaine source et le domaine cible.

Une fois qu'une session est établie sur le domaine cible, configurez vos requêtes pour inclure des identifiants, car les méthodes JavaScript n'associent pas de cookies par défaut :

  • Pour les objets XMLHttpRequest, définissez la propriété withCredentials sur true.
  • Pour Fetch API, définissez l'option credentials sur include ou same-origin.

Pour les requêtes AJAX expirées ou non authentifiées, IAP renvoie un code d'état HTTP 401: Unauthorized. Si vos requêtes AJAX reçoivent un code d'état 302 au lieu de 401, ajoutez un en-tête X-Requested-With avec la valeur "XMLHttpRequest" pour indiquer que la requête provient de JavaScript. Pour établir ou actualiser la session après avoir reçu une réponse HTTP 401, ouvrez une nouvelle fenêtre pour l'URL du domaine cible avec ?gcp-iap-mode=DO_SESSION_REFRESH ajouté.

Pour en savoir plus et obtenir des exemples de code, consultez Requêtes AJAX.