第 4 步:配置 Identity-Aware Proxy (IAP)

在此步骤中,您将配置 Identity-Aware Proxy (IAP),以便通过执行以下操作来为 Cloud Run 中部署的应用预配集中式授权层:

  1. 配置 OAuth 权限请求页面:OAuth 权限请求页面是一个提示,其中包含项目摘要、项目政策以及请求的访问授权范围。通过为您的应用配置 OAuth 权限请求页面,您可以定义用户和应用审核者可以使用的内容,还可以注册应用以便以后发布。如需详细了解 OAuth 权限请求页面,请参阅配置 OAuth 权限请求页面并选择范围

  2. 创建 OAuth 访问凭据:您需要为应用和网域创建 OAuth 客户端 ID,以便应用可以调用所需的 API。如需详细了解 OAuth 凭据,请参阅创建访问凭据

  3. 在负载均衡器上启用 IAP:使用 OAuth 客户端 ID 和密钥,在您为应用创建的负载均衡器上启用 IAP。

  4. 开启 IAP:创建可以访问您的应用的主账号,然后开启 IAP,从而保护应用的安全。

  1. 在 Google Cloud 控制台中,前往 OAuth 权限请求页面

    转到 OAuth 同意屏幕

  2. 为您的应用选择以下用户类型之一:

    • 外部:拥有 Google 账号的任何用户都可以发出授权请求。为完成本教程,我们建议您选择外部

    • 内部:只有 Google Cloud 组织的成员才能向应用发出授权请求。

  3. 点击创建

  4. 已获授权的网域部分中,点击添加网域,并指定在创建证书期间使用的域名。

  5. 开发者联系信息部分中,输入您的电子邮件地址。

  6. 点击保存并继续

  7. 范围页面上,点击保存并继续

  8. 可选:如果您选择了外部作为用户类型,请在测试用户页面上添加测试用户,如下所示:

    1. 点击 Add users(添加用户)。

    2. 输入您的电子邮件地址和任何其他已获授权的测试用户,然后点击保存并继续

  9. 查看应用注册摘要。如需进行更改,请点击修改。如果应用注册未出现任何问题,请点击返回信息中心

创建 OAuth 访问凭据

  1. 在 Google Cloud 控制台中,前往凭证页面。

    转到“凭据”页面

  2. 点击创建凭据,然后点击 OAuth 客户端 ID

  3. 应用类型列表中,点击 Web 应用

  4. 名称字段中,输入 gemini-streamlit-app

  5. 已获授权的 JavaScript 来源部分中,点击添加 URI,然后输入以下 URI:

    https://DOMAIN_NAME
    

    DOMAIN_NAME 替换为证书创建期间使用的域名。

  6. 点击创建

    此时会显示 OAuth 客户端已创建屏幕,其中显示客户端 ID客户端密钥

  7. 复制客户端 ID客户端密钥。您将在本教程的下一步中需要这些详细信息。

在负载均衡器上启用 IAP

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。

  2. 在 Cloud Shell 终端中,运行以下命令:
    
          gcloud compute backend-services update gemini-streamlit-app-backend \
          --iap=enabled,oauth2-client-id=CLIENT_ID,oauth2-client-secret=CLIENT_SECRET \
          --global
          

    替换以下内容

    • CLIENT_ID:来自您刚刚创建的 OAuth 凭据的 OAuth 客户端 ID。
    • CLIENT_SECRET:来自您刚刚创建的 OAuth 凭据的 OAuth 客户端密钥。

设置和使用 IAP

  1. 前往 Identity-Aware Proxy 页面。

    转到 Identity-Aware Proxy 页面

  2. 选择您的项目。

  3. 选中 gemini-streamlit-app-backend 旁边的复选框。

  4. 点击添加主账号

  5. 在以下字段中输入详细信息:

    • 新的主账号:输入群组或个人的电子邮件地址,以向其授予访问您的应用的权限。以下任意一项都可以作为主账号:

      • Google 账号

      • Google 群组

      • 服务账号

      • Google Workspace 网域

      确保您添加了您有权访问的 Google 账号。

  6. 角色列表中,选择 Cloud IAP > IAP-secured Web App User

  7. 点击保存

  8. Identity-Aware Proxy 页面上的应用下方,点击与 gemini-streamlit-app-backend 资源对应的行中的 IAP 切换开关,将其切换到开启位置。

  9. 在随即显示的开启 IAP 窗口中,选中相应的复选框,确认您已阅读配置要求并相应地配置了后端。

  10. 点击开启。 开启 IAP 后,对于与负载均衡器的所有连接,它都要求提供登录凭证。只有具有项目的 IAP-Secured Web App User 角色的账号才能获得给定访问权限。