使用 IAP 保护 App Engine 应用

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

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

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

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  5. 确保您的 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/users/
    

部署应用

  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-secured Web App User 角色的群组或个人的电子邮件地址。

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

    • Google 帐号:user@gmail.com
    • Google 群组:<管理员>@googlegroups.com
    • 服务帐号:<服务器>@<示例>.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 角色授权的帐号访问该应用,则会看到一条消息,提示您无权访问。

后续步骤