La réauthentification IAP permet aux propriétaires de services et d'applications ou aux administrateursGoogle Cloud de demander aux utilisateurs finaux authentifiés de se réauthentifier après un certain temps lorsqu'ils accèdent à un service ou à une application protégés par IAP. Elle limite la période pendant laquelle un utilisateur peut accéder au service ou à l'application protégés par IAP avant d'être invité à s'authentifier de nouveau.
La réauthentification IAP est conçue pour appliquer les règles de réauthentification pour les services et applications protégés par IAP. Vous pouvez le faire pour les services et applications critiques qui gèrent des informations confidentielles. Par exemple, vous pouvez spécifier que les utilisateurs qui accèdent à une application RH critique se réauthentifient toutes les heures à l'aide d'un second facteur.
Méthodes de réauthentification acceptées
Vous pouvez utiliser les méthodes suivantes pour gérer les paramètres de réauthentification :
- Connexion : IAP force la réauthentification de l'application protégée et les utilisateurs doivent se reconnecter.
- Clé sécurisée : les utilisateurs finaux doivent s'authentifier à nouveau à l'aide de l'authentification à deux facteurs configurée avec une clé de sécurité.
- Seconds facteurs enregistrés : les utilisateurs finaux doivent se réauthentifier à l'aide de l'une des méthodes d'authentification à deux facteurs enregistrées.
Pour en savoir plus, consultez la section IapSettings.
Configurer une règle de réauthentification
Les paramètres reauthSettings
font partie des paramètres IapSettings
, et peuvent donc être définis sur n'importe quel type de ressource dans la hiérarchie des ressources. Vous pouvez définir reauthSettings
sur un service ou une application au niveau de l'organisation, du dossier, du projet ou du service pour appliquer des restrictions. Par exemple, vous pouvez limiter la durée d'une 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
pour une ressource, telle qu'une organisation, les deux paramètres sont fusionnés lors de l'évaluation des paramètres de réauthentification pour 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 avec la priorité la plus élevée entre les deux ressources. Le type de règle sera toujoursMINIMUM
. Les paramètres de réauthentification fusionnés seront utilisés pour la fusion avec les paramètres de réauthentification de la ressource de niveau inférieur suivante, telle qu'un projet.L'ordre de priorité des trois méthodes acceptées, de la plus élevée à la plus faible, est
Secure key
,Enrolled second factors
etLogin
.Par défaut : si le type de règle est défini sur
DEFAULT
pour une ressource, telle qu'une organisation, le paramètre de réauthentification de la ressource de niveau inférieur, telle qu'un dossier, 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é afin de déterminer la reauthSettings
pour le service ou l'application cibles.
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 la fusion 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 l'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 périodicité, exprimée en secondes, selon laquelle un utilisateur final doit se réauthentifier. Par exemple, pour définir une règle de réauthentification d'une heure, définissez le paramètre des secondes sur 3 600, comme indiqué dans l'exemple suivant :
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
La valeur minimale de maxAge
est de cinq minutes.
Pour définir une stratégie de réauthentification, procédez comme suit.
Console
- Accédez à la page IAP.
Accéder à la page "Identity-Aware Proxy" Sélectionnez un projet, puis la ressource sur laquelle vous souhaitez définir une règle de réauthentification.
Ouvrez les paramètres de la ressource, puis sous Règles de réauthentification, sélectionnez Configurer la réauthentification.
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 dans 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 de l'organisation.
- PROJECT : ID du projet.
- RESOURCE_TYPE : type de ressource IAP. La valeur doit être
app-engine
,iap_web
,compute
,organization
oufolder
. - SERVICE : le nom du service. Ce champ est facultatif lorsque
resource-type
estcompute
ouapp-engine
. - VERSION : nom de la version. Ce champ n'est pas applicable pour
compute
et est facultatif lorsqueresource-type
est défini surapp-engine
.
API
Exécutez la commande suivante pour préparer un fichier iap_settings.json
. Modifiez 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 "name" (nom) à partir du résultat. Vous aurez besoin de ce nom à l'étape suivante.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
Dans la commande suivante, remplacez RESOURCE_NAME
par le nom récupéré à 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 que les utilisateurs ne soient obligés de se réauthentifier trop souvent lorsqu'ils utilisent des applications similaires, 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 qui 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.
Notez que 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 programmatique au compte utilisateur n'est pas compatible. Par exemple, les applications mobiles et de bureau ne permettent pas de réauthentifier les utilisateurs, car les ressources nécessitant une réauthentification sont inaccessibles.
- 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 utilisant Identity Platform ne sont pas compatibles avec la réauthentification, car les ressources nécessitant une réauthentification ne sont pas accessibles.
- Les identités de la fédération des identités des employés ne sont pas compatibles avec la réauthentification IAP.