IAP 重新身份验证

IAP 重新身份验证允许资源所有者或 Google Cloud 管理员要求经过身份验证的最终用户在访问受 IAP 保护的资源的指定时间后重新进行身份验证。这样可以确保访问受 IAP 保护的资源的用户是在会话开始时最初进行身份验证的同一人。

支持的重新身份验证方法

您可以使用以下方法来管理重新身份验证设置:

  • 登录:IAP 会强制对受保护的应用重新进行身份验证,并且用户必须重新登录。
  • 安全密钥:最终用户必须使用其配置的基于安全密钥的双重验证方法重新进行身份验证。

如需了解详情,请参阅 IapSettings

设置重新身份验证政策

ReauthSettingsIapSettings 的一部分,因此可以在层次结构中的多个资源类型上设置。在其他 IAP 设置中,层次结构中最低的资源优先,有效的重新身份验证设置与此不同,它还取决于政策类型。

有两种政策类型可用于设置重新身份验证:

  • 最低:该政策将充当层次结构中所有其他资源的最低要求。有效政策可以相同,也可以更严格。
  • 默认:如果未在资源上设置其他政策,则您设置的重新身份验证政策将成为有效政策。

您可以使用政策类型配置,通过将政策类型设置为 Minimum,为整个组织或文件夹设置政策。

如果层级配置具有不同的重新身份验证方法,Secure Key 会变成 Login 方法。

在以下文件夹和资源 IapSettings 示例中,文件夹政策更为严格,优先级更高,因此有效的重新身份验证政策将与文件夹政策匹配。

文件夹 IapSettings

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

资源 IapSettings

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

MaxAge

使用 MaxAge 参数指定最终用户必须重新进行身份验证的频率,以秒为单位。例如,如需设置一小时的重新身份验证政策,请将秒数设置为 3600,如以下示例所示:

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

maxAge 的最小值为 5 分钟。

要设置重新身份验证政策,请完成以下步骤。

控制台

  1. 转到 Identity-Aware Proxy 页面
    转到 Identity-Aware Proxy 页面
  2. 选择一个项目,然后选择您要为其设置重新身份验证政策的资源。

  3. 打开资源的设置,然后在重新身份验证政策下选择配置重新身份验证

  4. 指定重新身份验证设置,然后点击保存

gcloud

您可以在组织、项目和文件夹级别为资源和服务设置重新身份验证政策。以下是设置重新身份验证政策的一些命令示例。

如需了解详情,请参阅 gcloud iap settings set

运行以下命令:

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

如需为组织内的资源设置重新身份验证政策,请运行以下命令:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

如需为文件夹中的资源设置重新身份验证政策,请运行以下命令:

gcloud iap settings set SETTING_FILE --folder=FOLDER

如需为项目中的所有网页类型资源设置重新身份验证政策,请运行以下命令:

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

如需在项目中为 App Engine 服务设置重新身份验证政策,请运行以下命令:

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

其中 SETTING_FILE 为:

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

请替换以下内容:

  • FOLDER:文件夹 ID。
  • ORGANIZATION:组织 ID。
  • PROJECT:项目 ID。
  • RESOURCE_TYPE:IAP 资源类型。必须是 app-engineiap_webcomputeorganizationfolder
  • SERVICE:服务名称。当 resource-typecomputeapp-engine 时,此项为可选项。
  • VERSION:版本名称。这不适用于 compute,且当 resource-typeapp-engine 时是可选的。

了解重新身份验证凭据

成功重新身份验证后,IAP 会在最终用户的浏览器上创建 Cookie。为避免用户在使用类似应用时频繁地重新进行身份验证,Cookie 是在顶级专用网域上设置的,并且对整个专用网域有效。

例如,foo.example.com 是受 IAP 保护的资源,并具有 IAP 重新身份验证政策。成功重新身份验证后,IAP 会在 example.com 上设置 Cookie,因为它是顶级专用网域。来自同一顶级专用网域(如 bar.example.come)的应用使用相同的重新身份验证凭据,只要凭据有效,就不会提示用户重新进行身份验证。

请注意,对于 myapp.appspot.com 等网址,appspot.com 是公共网域,因此顶级专用网域是 myapp.appspot.com

已知限制

  • 只有浏览器流支持重新身份验证。不支持程序化用户帐号访问。例如,移动应用和桌面应用无法重新验证用户身份,因为无法访问需要重新身份验证的资源。
  • 服务帐号和 IAP-TCP 不受重新身份验证要求的约束。
  • 重新身份验证不适用于 IAM 成员类型 allUsers
  • 如果使用 Google 以外的身份提供商,重新身份验证可能无法按预期工作。
  • 重新身份验证不支持通过 Identity Platform 启用的外部身份,因为无法访问需要重新身份验证的资源。