La reautenticación de IAP permite a los propietarios o administradores de servicios y aplicaciones requerir que los usuarios finales autenticados vuelvan a autenticarse tras un periodo determinado cuando accedan a un servicio o a una aplicación protegidos por IAP.Google Cloud Limita el periodo durante el cual un usuario puede acceder al servicio o a la aplicación protegidos por IAP antes de que se le pida que vuelva a autenticarse.
La reautenticación de compras en aplicaciones se ha diseñado para aplicar políticas de reautenticación en servicios y aplicaciones protegidos por compras en aplicaciones. Puedes hacerlo con servicios y aplicaciones críticos que gestionen información confidencial. Por ejemplo, puedes especificar que los usuarios que accedan a una aplicación de RR. HH. crítica se vuelvan a autenticar cada hora con un segundo factor.
Métodos de reautenticación admitidos
Puedes usar los siguientes métodos para gestionar los ajustes de reautenticación:
- Inicio de sesión: IAP fuerza la reautenticación de la aplicación protegida y los usuarios deben volver a iniciar sesión.
- Clave segura: los usuarios finales deben volver a autenticarse con la autenticación de dos factores basada en la llave de seguridad que hayan configurado.
- Segundos factores registrados: los usuarios finales deben volver a autenticarse con uno de los métodos de autenticación de dos factores registrados.
Para obtener más información, consulta IapSettings.
Configurar una política de reautenticación
reauthSettings
forman parte de IapSettings
y, por lo tanto, se pueden definir en cualquier tipo de recurso de la jerarquía de recursos. Puedes definir reauthSettings
en un servicio o una aplicación a nivel de organización, carpeta, proyecto o servicio para aplicar restricciones. Por ejemplo, puedes limitar la duración de la sesión a un máximo de una hora para todas las aplicaciones de una organización o para una aplicación específica.
Hay dos tipos de políticas que puedes usar para definir la reautenticación:
Mínimo: si el tipo de política se define como
MINIMUM
en un recurso, como una organización, al evaluar los ajustes de reautenticación en el recurso de nivel inferior, como una carpeta, se combinan los dos ajustes. Si el recurso de nivel inferior no tiene ajustes de autenticación, el resultado de la combinación serán los ajustes no vacíos del recurso de nivel superior. De lo contrario, la combinación tomará la duración de sesión más corta y el método de autenticación con mayor precedencia entre los dos recursos. El tipo de política siempre seráMINIMUM
. Los ajustes de autenticación combinados se usarán para combinarlos con los ajustes de autenticación del siguiente recurso de nivel inferior, como un proyecto.El orden de prioridad de los tres métodos admitidos, de mayor a menor, es
Secure key
,Enrolled second factors
yLogin
.Valor predeterminado: si el tipo de política se define como
DEFAULT
en un recurso, como una organización, al evaluar el ajuste de reautenticación en el recurso de nivel inferior, como una carpeta, se utiliza el ajuste del recurso de nivel inferior si está configurado. De lo contrario, se aplica el ajuste de reautenticación del recurso de nivel superior.
En ambos tipos de políticas, el proceso de evaluación se repite para determinar el reauthSettings
del servicio o la aplicación de destino.
En los siguientes ejemplos se muestran los ajustes antes y después de la evaluación. Durante la evaluación, la carpeta y la organización reauthSettings
se combinan, lo que provoca que el tipo de política de la carpeta cambie a MINIMUM
. A continuación, se usan los ajustes combinados para fusionarlos con el servicio o la aplicación reauthSettings
.
Organización IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
Carpeta IapSettings
:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "1200s"
policyType: "DEFAULT"
Servicio o aplicación IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "7200s"
policyType: "DEFAULT"
Ajustes después de la combinación:
Organización IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "3600s"
policyType: "MINIMUM"
Carpeta IapSettings
:
accessSettings:
reauthSettings:
method: "ENROLLED_SECOND_FACTORS"
maxAge: "1200s"
policyType: "MINIMUM"
Servicio o aplicación IapSettings
:
accessSettings:
reauthSettings:
method: "SECURE_KEY"
maxAge: "1200s"
policyType: "MINIMUM"
En el ejemplo, si el tipo de política de cada recurso es DEFAULT
, se usa el reauthSettings
del servicio o la aplicación.
MaxAge
Usa el parámetro MaxAge para especificar la frecuencia con la que un usuario final debe volver a autenticarse (en segundos). Por ejemplo, para definir una política de reautenticación de una hora, asigna el valor 3600 a los segundos, como se muestra en el siguiente ejemplo:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
El valor mínimo de maxAge
es de cinco minutos.
Para definir una política de reautenticación, sigue estos pasos.
Consola
- Ve a la página de IAP.
Ir a la página Identity-Aware Proxy Selecciona un proyecto y, a continuación, el recurso en el que quieras definir una política de reautenticación.
Abre los ajustes del recurso y, en Política de reautenticación, selecciona Configurar reautenticación.
Especifica los ajustes de la reautenticación y haz clic en Guardar.
gcloud
Puedes definir una política de reautenticación en recursos y servicios a nivel de organización, proyecto y carpeta. A continuación, se muestran algunos ejemplos de comandos para definir una política de reautenticación.
Para obtener más información, consulta gcloud iap settings set
.
Ejecuta el siguiente comando:
gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION
Para definir una política de reautenticación en los recursos de una organización, ejecuta el siguiente comando:
gcloud iap settings set SETTING_FILE --organization=ORGANIZATION
Para definir una política de reautenticación en los recursos de una carpeta, ejecuta el siguiente comando:
gcloud iap settings set SETTING_FILE --folder=FOLDER
Para definir una política de reautenticación en todos los recursos de tipo web de un proyecto, ejecuta el siguiente comando:
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web
Para definir una política de reautenticación en un servicio de App Engine de un proyecto, ejecuta el siguiente comando:
gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE
Donde SETTING_FILE
es:
accessSettings:
reauthSettings:
method: "LOGIN"
maxAge: "3600s"
policyType: "MINIMUM"
Haz los cambios siguientes:
- FOLDER: el ID de la carpeta.
- ORGANIZATION: el ID de la organización.
- PROJECT: el ID del proyecto.
- RESOURCE_TYPE: el tipo de recurso de IAP. Debe ser
app-engine
,iap_web
,compute
,organization
ofolder
. - SERVICE: el nombre del servicio. Es opcional cuando
resource-type
escompute
oapp-engine
. - VERSION: el nombre de la versión. Esto no se aplica a
compute
y es opcional cuandoresource-type
esapp-engine
.
API
Ejecuta el siguiente comando para preparar un archivo iap_settings.json
. Actualiza los valores según sea necesario.
cat << EOF > iap_settings.json { "access_settings": { "reauth_settings": { "method": "LOGIN", "maxAge": "300s", "policy_type": "DEFAULT" } } } EOF
Obtén el nombre del recurso ejecutando el comando gcloud iap settings get
. Copia el campo de nombre de la salida. Necesitarás el nombre en el siguiente paso.
gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]
Sustituye RESOURCE_NAME
en el siguiente comando por el nombre del paso anterior. El IapSettings
se actualizará.
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"
Información sobre las credenciales de reautenticación
Una vez que se haya completado la reautenticación, IAP creará una cookie en el navegador del usuario final. Para evitar que los usuarios tengan que volver a autenticarse con demasiada frecuencia al usar aplicaciones similares, la cookie se define en el dominio privado de nivel superior y es válida para todo ese dominio privado de nivel superior.
Por ejemplo, foo.example.com
es un recurso protegido por IAP y tiene una política de reautenticación de IAP. Después de una reautenticación correcta, IAP define una cookie en example.com
, ya que es el dominio privado de nivel superior. Las aplicaciones del mismo dominio privado de nivel superior, como bar.example.com
, usan las mismas credenciales de reautenticación y no solicitan al usuario que se vuelva a autenticar mientras las credenciales sean válidas.
Ten en cuenta que, en URLs como myapp.appspot.com
, appspot.com
es un dominio público, por lo que el dominio privado de nivel superior es myapp.appspot.com
.
Limitaciones conocidas
- La reautenticación solo se admite en los flujos de navegador. No se admite el acceso a cuentas de usuario mediante programación. Por ejemplo, las aplicaciones móviles y para ordenadores no pueden volver a autenticar a los usuarios porque no pueden acceder a los recursos que requieren una nueva autenticación.
- Las cuentas de servicio y IAP-TCP están exentas de los requisitos de reautenticación.
- La reautenticación no funciona con el tipo de miembro de Gestión de Identidades y Accesos
allUsers
. - No se admiten identidades externas que usen Identity Platform con la reautenticación, ya que no se puede acceder a los recursos que requieren reautenticación.
- No se admiten identidades de Workforce Identity Federation para la reautenticación de IAP.