步驟 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 consent screen」(OAuth 同意畫面)

    前往 OAuth 同意畫面

  2. 為應用程式選取下列其中一種使用者類型:

    • 外部:任何擁有 Google 帳戶的使用者都可以提出授權要求。為完成本教學課程,建議選取「External」(外部)

    • 內部:只有貴機構的成員才能向應用程式提出授權要求。 Google Cloud

  3. 點選「建立」

  4. 在「授權網域」部分,新增網域,並指定建立憑證時使用的網域名稱。

  5. 在「開發人員聯絡資訊」部分,輸入您的電子郵件地址。

  6. 點選「儲存並繼續」

  7. 在「範圍」頁面中,按一下「儲存並繼續」

  8. 選用:如果您選取「外部」做為使用者類型,請在「測試使用者」頁面新增測試使用者,方法如下:

    1. 點選 [Add users] (新增使用者)。

    2. 輸入您的電子郵件地址和任何其他授權測試使用者,然後按一下「儲存並繼續」

  9. 查看應用程式註冊摘要。如要修改資訊,請按一下「編輯」。如果應用程式註冊看起來沒問題,請按一下「Back to dashboard」(返回資訊主頁)

建立 OAuth 存取憑證

  1. 前往 Google Cloud 控制台的「憑證」頁面。

    前往「憑證」

  2. 按一下「建立憑證」,然後點選「OAuth 用戶端 ID」

  3. 在「應用程式類型」清單中,按一下「網頁應用程式」

  4. 在「Name」(名稱) 欄位中輸入 gemini-streamlit-app

  5. 在「已授權的 JavaScript 來源」部分,按一下「新增 URI」,然後輸入下列 URI:

    https://DOMAIN_NAME
    

    DOMAIN_NAME 替換為建立憑證時使用的網域名稱。

  6. 點選「建立」

    系統會顯示「Oauth client created」(已建立 OAuth 用戶端) 畫面,並顯示「Client ID」(用戶端 ID) 和「Client secret」(用戶端密碼)

  7. 複製「用戶端 ID」和「用戶端密鑰」。您會在教學課程的下一個步驟中需要這些詳細資料。

在負載平衡器上啟用 IAP

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  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. 在下列欄位中輸入詳細資料:

    • 「New principals」(新增主體):輸入要授予應用程式存取權的群組或個人電子郵件地址。主體可以是下列任一項目:

      • Google 帳戶

      • Google 群組

      • 服務帳戶

      • Google Workspace 網域

      請務必加入您可以存取的 Google 帳戶。

  6. 在「角色」清單中,依序選取「Cloud IAP」 >「受 IAP 保護的網頁應用程式使用者」

  7. 按一下 [儲存]

  8. 在「Identity-Aware Proxy」頁面的「Applications」下方,按一下 gemini-streamlit-app-backend 資源對應列中的「IAP」切換按鈕,將其設為開啟。

  9. 在隨即顯示的「開啟應用程式內結帳功能」視窗中,勾選核取方塊,確認您已閱讀設定規定,並據此設定後端。

  10. 按一下「開啟」。啟用 IAP 後,系統會要求所有連線提供負載平衡器的登入憑證。只有專案中擁有「IAP-Secured Web App User」(受 IAP 保護的網路應用程式使用者) 角色的帳戶,才能獲得存取權。