使用 IAP 保护 App Engine 应用

本页面介绍如何部署 App Engine 标准或柔性环境应用,以及如何使用 Identity-Aware Proxy (IAP) 为该应用提供保护。本快速入门提供了用于验证登录用户姓名的 App Engine 标准环境网页应用示例代码,

如果您打算通过内容分发网络 (CDN) 传送资源,请参阅最佳做法指南了解重要信息。

要保护非 Google Cloud 的资源,请参阅保护本地应用和资源

启动 Cloud Shell

  1. 点击控制台窗口顶部的激活 Cloud Shell

    一个 Cloud Shell 会话随即会在控制台底部的新框架内打开,并显示命令行提示符。该 Shell 会话可能要在几秒钟后才能初始化。

    Cloud Shell 会话框架
  2. 在 Cloud Shell 中输入以下内容,以显示项目的项目 ID:
    gcloud projects list
  3. 运行以下命令以设置默认项目,其中 YOUR-PROJECT-ID 是要在本快速入门中使用的项目 ID:
    gcloud config set project YOUR-PROJECT-ID

获取示例代码

  1. 在 Cloud Shell 中输入以下命令,以获取示例应用:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
    
  2. 转到包含示例代码的目录:

    cd python-docs-samples/appengine/standard_python3/hello_world/
    

部署应用

  1. 使用 gcloud 将应用部署到 App Engine:
    gcloud app deploy
  2. target url: 显示为 https://YOUR_PROJECT_ID.appspot.com 格式。如需访问您的应用,请通过网络浏览器转到该网址。

启用 IAP

选择项目

  1. 转到 Identity-Aware Proxy 页面
    转到 Identity-Aware Proxy 页面
  2. 如果您还没有活动项目,系统将提示您选择要使用 IAP 保护的项目。请选择用于部署示例应用的项目。

配置 OAuth 同意屏幕

如果您尚未配置项目的 OAuth 同意屏幕,系统将提示您执行此操作。您必须配置 OAuth 同意屏幕上的电子邮件地址和产品名称。

  1. 转到 OAuth 同意屏幕
    配置同意屏幕
  2. 支持电子邮件地址下,选择要显示为公开联系人的电子邮件地址。该电子邮件地址必须属于当前登录的用户帐号,或者属于当前登录的用户所属的 Google 网上论坛。
  3. 输入您要显示的应用名称
  4. 根据需要添加任何可选详细信息。
  5. 点击保存

如需稍后更改 OAuth 同意屏幕上的信息(例如产品名称或电子邮件地址),请重复上述步骤配置同意屏幕。

设置 IAP 访问权限

  1. 转到 Identity-Aware Proxy 页面
    转到 Identity-Aware Proxy 页面
  2. 通过选中要修改的资源左侧的框,选择该资源。在右侧面板上,点击添加成员
  3. 添加成员对话框中,添加要为其授予项目受 IAP 保护的网页应用用户角色的群组或个人的电子邮件地址。

    可以添加以下种类的帐号作为成员:

    • Google 帐号:<用户>@gmail.com
    • Google 群组:<管理员>@googlegroups.com
    • 服务帐号:server@example.gserviceaccount.com
    • G Suite 域名:example.com

    请务必添加您有权访问的 Google 帐号。

    如需使资源可公开访问(而同级资源受到限制),请向“allUsers”或“allAuthenticatedUsers”授予 IAP-secured Web App User 角色。 公共访问权限部分解释了两者之间的区别。

  4. 添加完成员后,点击添加

启用 IAP

  1. Identity-Aware Proxy 页上的 HTTPS 资源下,找到您要限制访问的 App Engine 应用。已发布列会显示该应用的网址。如需为该应用开启 IAP,
    • 如需启用 IAP,您需要 appengine.applications.updateclientauthconfig.clients.createclientauthconfig.clients.getWithSecret 权限。这些权限由 Project Editor 等角色授予。如需了解详情,请参阅管理对受 IAP 保护的资源的访问权限
  2. 如需确认您是否希望 IAP 保护应用安全,请在随即显示的开启 IAP 窗口中点击开启。启用后,IAP 会向对应用的所有连接请求索要登录凭据。

测试用户身份验证

  1. 使用您添加到 IAP 且拥有 IAP-secured Web App User 角色的 Google 帐号访问应用网址,如上所述。您应该对该应用具有不受限制的访问权限。

  2. 使用 Chrome 中的无痕式窗口访问该应用,并根据提示登录。如果您尝试使用未经 IAP-secured Web App User 角色授权的帐号访问该应用,则会看到一条消息,提示您无权访问。

后续步骤