Reautenticación de IAP

La reautenticación de IAP permite a los propietarios de servicios y aplicaciones o a los administradores deGoogle Cloud exigir 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, así como limitar el tiempo que un usuario puede acceder a un servicio o a una aplicación protegidos por IAP antes de que se requiera la autenticación.

La reautenticación de IAP se ha diseñado para aplicar políticas de reautenticación a los servicios y las aplicaciones protegidos con IAP. Con este servicio, puedes aplicar políticas de reautenticación en 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: los usuarios finales se vuelven a autenticar con sus credenciales de inicio de sesión.
  • Clave segura: los usuarios finales se vuelven a autenticar con su llave de seguridad configurada.
  • Segundos factores registrados: los usuarios finales se vuelven a autenticar con uno de sus segundos factores registrados.

Para obtener más información, consulta IapSettings.

Configurar una política de reautenticación

Los reauthSettings se incluyen en IapSettings y se pueden definir en cualquier tipo de recurso de la jerarquía de recursos. Puedes definir reauthSettings 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 la configuración de la autenticación de nuevo en el recurso de nivel inferior, como una carpeta, se combinan las dos configuraciones. 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 tendrá la duración de sesión más corta y el método de autenticación con mayor prioridad de los dos recursos. El tipo de política combinada resultante se define como MINIMUM.

  • 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 usa 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. Los reauthSettings efectivos en cualquier nivel se determinan de la siguiente manera:

  • Herencia: los ajustes del recurso de nivel superior se combinan con los del recurso de nivel inferior.

  • Reglas de combinación: si el recurso de nivel inferior no tiene ajustes de autenticación específicos, hereda los ajustes del nivel superior.

    Si ambos niveles tienen reauthSettings, el resultado combinado usa lo siguiente:

    • La duración de sesión más corta.
    • El método de reautenticación con mayor precedencia.
    • El orden de prioridad es Secure key (la más alta), Enrolled second factors (media) y Login (la más baja).
  • Tipo de política resultante: el tipo de política de los ajustes combinados es MINIMUM.

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. Los ajustes combinados se usan 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 este ejemplo, si el tipo de política de cada recurso es DEFAULT, se utiliza 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 seconds, como se muestra en el siguiente ejemplo:

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

El valor mínimo de maxAge es de 300 segundos (5 minutos).

Para definir una política de reautenticación, sigue estos pasos.

Consola

  1. Ve a la página de IAP.
    Ir a la página Identity-Aware Proxy
  2. Selecciona un proyecto y, a continuación, el recurso en el que quieras definir una política de reautenticación.

  3. Abre los ajustes del recurso y, en Política de reautenticación, selecciona Configurar reautenticación.

  4. 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 compra en la aplicación. Debe ser app-engine, iap_web, compute, organization o folder.
  • SERVICE: el nombre del servicio. Es opcional cuando resource-type se define como compute o app-engine.
  • VERSION: el nombre de la versión. Esto no se aplica al tipo de recurso compute y es opcional para el tipo de recurso app-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 name 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 las aplicaciones del mismo dominio tengan que volver a autenticarse con frecuencia, la cookie se define en el dominio privado de nivel superior y es válida para todo ese dominio.

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 porque 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 autenticación y no piden al usuario que vuelva a autenticarse mientras las credenciales sean válidas.

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 de escritorio no pueden volver a autenticar a los usuarios porque estos no pueden acceder a los recursos que requieren la reautenticació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 las identidades externas, como OAuth y SAML, con la autenticación de nuevo.
  • Las identidades de Workforce Identity Federation no se admiten en la reautenticación de IAP.