Réauthentification de l'IAP

La réauthentification IAP permet aux propriétaires ou aux administrateursGoogle Cloud de services et d'applications d'exiger que les utilisateurs finaux authentifiés se réauthentifient après un certain temps lorsqu'ils accèdent à un service ou à une application protégés par IAP, et de limiter la durée pendant laquelle un utilisateur peut accéder à un service ou à une application protégés par IAP avant que l'authentification ne soit requise.

La réauthentification IAP est conçue pour appliquer des règles de réauthentification aux services et applications protégés par IAP. Ce service vous permet d'appliquer des règles de réauthentification pour les services et applications critiques qui traitent des informations confidentielles. Par exemple, vous pouvez spécifier que les utilisateurs accédant à une application RH critique doivent se réauthentifier toutes les heures à l'aide d'un second facteur.

Méthodes de réauthentification compatibles

Vous pouvez utiliser les méthodes suivantes pour gérer les paramètres de réauthentification :

  • Connexion : les utilisateurs finaux s'authentifient à nouveau à l'aide de leurs identifiants de connexion.

  • Clé sécurisée : les utilisateurs finaux s'authentifient à nouveau à l'aide de leur clé de sécurité configurée.

  • Seconds facteurs enregistrés : les utilisateurs finaux se réauthentifient à l'aide de l'un de leurs seconds facteurs enregistrés.

Pour en savoir plus, consultez la section IapSettings.

Configurer une règle de réauthentification

Les reauthSettings sont inclus dans IapSettings et peuvent être définis sur n'importe quel type de ressource dans la hiérarchie des ressources. Vous pouvez définir reauthSettings au niveau de l'organisation, d'un dossier, d'un projet ou d'un service pour appliquer des restrictions. Par exemple, vous pouvez limiter la durée de la session à une heure maximum pour toutes les applications d'une organisation ou pour une application spécifique.

Vous pouvez définir deux types de règles pour la réauthentification :

  • Minimum : si le type de règle est défini sur MINIMUM sur une ressource, telle qu'une organisation, les deux paramètres sont fusionnés lors de l'évaluation des paramètres de réauthentification sur la ressource de niveau inférieur, telle qu'un dossier. Si la ressource de niveau inférieur ne comporte aucun paramètre de réauthentification, le résultat de la fusion correspond aux paramètres non vides de la ressource de niveau supérieur. Sinon, la fusion prend la durée de session la plus courte et la méthode de réauthentification la plus prioritaire entre les deux ressources. Le type de stratégie fusionnée obtenu est défini sur MINIMUM.

  • Par défaut : si le type de règle est défini sur DEFAULT sur une ressource, telle qu'une organisation, lors de l'évaluation du paramètre de réauthentification sur la ressource de niveau inférieur, telle qu'un dossier, le paramètre de ressource de niveau inférieur est utilisé s'il est configuré. Sinon, le paramètre de réauthentification de la ressource de niveau supérieur est appliqué.

Pour les deux types de règles, le processus d'évaluation est répété pour déterminer le reauthSettings du service ou de l'application cible. Les reauthSettings effectives à n'importe quel niveau sont déterminées comme suit :

  • Héritage : les paramètres de la ressource de niveau supérieur sont fusionnés avec ceux de la ressource de niveau inférieur.

  • Règles de fusion : si la ressource de niveau inférieur ne dispose pas de paramètres de réauthentification spécifiques, elle hérite des paramètres du niveau supérieur.

    Si les deux niveaux ont reauthSettings, le résultat fusionné utilise les éléments suivants :

    • La durée de la session est plus courte.

    • Méthode de réauthentification ayant la priorité la plus élevée.

    • L'ordre de priorité est Secure key (le plus élevé), Enrolled second factors (moyen) et Login (le plus faible).

  • Type de règle obtenu : le type de règle des paramètres fusionnés est MINIMUM.

Les exemples suivants montrent les paramètres avant et après l'évaluation. Lors de l'évaluation, le dossier et l'organisation reauthSettings sont fusionnés, ce qui entraîne la modification du type de règle du dossier en MINIMUM. Les paramètres fusionnés sont ensuite utilisés pour fusionner avec le service ou l'application reauthSettings.

Organisation IapSettings :

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Paramètres IapSettings pour un dossier :

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "1200s"
    policyType: "DEFAULT"

Service ou application IapSettings :

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "7200s"
    policyType: "DEFAULT"

Paramètres après la fusion :

Organisation IapSettings :

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Paramètres IapSettings pour un dossier :

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "1200s"
    policyType: "MINIMUM"

Service ou application IapSettings :

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "1200s"
    policyType: "MINIMUM"

Dans cet exemple, si le type de règle de chaque ressource est défini sur DEFAULT, le reauthSettings du service ou de l'application est utilisé.

MaxAge

Utilisez le paramètre maxAge pour spécifier la fréquence à laquelle un utilisateur final doit se réauthentifier, exprimée en secondes. Par exemple, pour définir une règle de réauthentification d'une heure, définissez les secondes sur 3 600, comme illustré dans l'exemple suivant :

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

La valeur minimale de maxAge est de 300 secondes, soit cinq minutes.

Pour définir une règle de réauthentification, procédez comme suit.

Console

  1. Accédez à la page IAP.
    Accéder à la page "Identity-Aware Proxy"

  2. Sélectionnez un projet, puis la ressource pour laquelle vous souhaitez définir une règle de réauthentification.

  3. Ouvrez les paramètres de la ressource et, sous Règle de réauthentification, sélectionnez Configurer la réauthentification.

  4. Spécifiez les paramètres de réauthentification, puis cliquez sur Enregistrer.

gcloud

Vous pouvez définir une règle de réauthentification sur les ressources et les services au niveau de l'organisation, du projet et du dossier. Voici quelques exemples de commandes permettant de définir une règle de réauthentification.

Pour en savoir plus, consultez la page gcloud iap settings set.

Exécutez la commande suivante :

gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

Pour définir une règle de réauthentification sur les ressources d'une organisation, exécutez la commande suivante :

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Pour définir une règle de réauthentification sur les ressources d'un dossier, exécutez la commande suivante :

gcloud iap settings set SETTING_FILE --folder=FOLDER

Pour définir une règle de réauthentification sur toutes les ressources de type Web d'un projet, exécutez la commande suivante :

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

Pour définir une règle de réauthentification sur un service App Engine d'un projet, exécutez la commande suivante :

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE

Où SETTING_FILE correspond à :

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

Remplacez les éléments suivants :

  • FOLDER : ID du dossier.

  • ORGANIZATION : ID d'organisation.

  • PROJECT : ID du projet.

  • RESOURCE_TYPE : type de ressource IAP. La valeur doit être app-engine, iap_web, compute, organization ou folder.

  • SERVICE : le nom du service. Ce champ est facultatif lorsque resource-type est défini sur compute ou app-engine.

  • VERSION : nom de la version. Cela ne s'applique pas au type de ressource compute et est facultatif pour le type de ressource app-engine.

API

Exécutez la commande suivante pour préparer un fichier iap_settings.json. Mettez à jour les valeurs si nécessaire.

cat << EOF > iap_settings.json
{
  "access_settings": {
      "reauth_settings": {
            "method": "LOGIN",
            "maxAge": "300s",
            "policy_type": "DEFAULT"
        }
    }
}
EOF

Obtenez le nom de la ressource en exécutant la commande gcloud iap settings get. Copiez le champ de nom à partir du résultat. Vous en aurez besoin à l'étape suivante.

gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]

Remplacez RESOURCE_NAME dans la commande suivante par le nom de l'étape précédente. Le IapSettings sera mis à jour.

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.reauthSettings"

Comprendre les identifiants de réauthentification

Une fois la réauthentification réussie, IAP crée un cookie dans le navigateur de l'utilisateur final. Pour éviter une réauthentification fréquente des applications sur le même domaine, le cookie est défini sur le domaine privé de premier niveau et est valide pour l'ensemble de ce domaine.

Par exemple, foo.example.com est une ressource protégée par IAP et dispose d'une règle de réauthentification IAP. Une fois la réauthentification réussie, IAP définit un cookie sur example.com, car il s'agit du domaine privé de premier niveau. Les applications du même domaine privé de premier niveau, telles que bar.example.com, utilisent les mêmes identifiants de réauthentification et n'invitent pas l'utilisateur à se réauthentifier tant que les identifiants sont valides.

Pour les URL telles que myapp.appspot.com, appspot.com est un domaine public. Par conséquent, le domaine privé de premier niveau est myapp.appspot.com.

Limitations connues

  • La réauthentification n'est possible que pour les flux de navigateur. L'accès au compte utilisateur par programmation n'est pas accepté. Par exemple, les applications mobiles et de bureau ne peuvent pas réauthentifier les utilisateurs, car les ressources qui nécessitent une réauthentification ne sont pas accessibles à ces applications.

  • Les comptes de service et IAP-TCP ne sont pas soumis aux exigences de réauthentification.

  • La réauthentification ne fonctionne pas avec le type de membre Identity and Access Management allUsers.

  • Les identités externes, telles que OAuth et SAML, ne sont pas compatibles avec la réauthentification.

  • Les identités de la fédération des identités des employés ne sont pas compatibles avec la réauthentification IAP.