透過 Google 帳戶驗證使用者
這個頁面會逐步引導您部署 App Engine 標準或彈性環境應用程式,並使用 Identity-Aware Proxy (IAP) 保護其安全。本快速入門導覽課程包含 App Engine 標準環境網頁應用程式的程式碼範例,可驗證登入使用者的名稱;並使用 Cloud Shell 複製及部署應用程式範例。您可運用此快速入門導覽課程,啟用 App Engine 標準環境或彈性環境應用程式的 IAP。
若您預計從內容傳遞聯播網 (CDN) 提供資源,請參閱最佳做法指南取得重要資訊。
如果 App Engine 應用程式包含多項服務,您可以針對不同服務設定不同的 IAP 權限,包括只讓部分服務公開存取,同時保護其他服務。
如要直接在 Google Cloud 控制台中,按照這項工作的逐步指南操作,請按一下「Guide me」(逐步引導):
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
-
如要為 App Engine 啟用 IAP,請設定 App Engine 執行個體。如果您尚未設定 App Engine 執行個體,請參閱部署 App Engine 一文,取得完整逐步操作說明。
IAP 會使用 Google 代管的 OAuth 用戶端驗證使用者。只有機構內的使用者可以存取啟用 IAP 的應用程式。如要允許組織外部使用者存取,請參閱設定自訂 OAuth 用戶端。
必要的角色
如要取得透過 Google 帳戶驗證使用者所需的權限,請要求管理員授予您專案的「IAP 政策管理員 」(roles/iap.policyAdmin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
啟用 IAP
控制台
使用 Google Cloud 控制台啟用 IAP 時,無法使用 Google 代管的 OAuth 用戶端。
如果您尚未設定專案的 OAuth 同意畫面,系統會提示您進行設定。如要設定 OAuth 同意畫面,請參閱「設定 OAuth 同意畫面」。
設定 IAP 存取權
-
前往「Identity-Aware Proxy」頁面。
前往 Identity-Aware Proxy 頁面 - 選取要使用 IAP 保護的專案。
- 找出要授予存取權的資源,然後勾選旁邊的核取方塊。
- 在右側面板中,按一下「新增主體」。
-
在顯示的「Add principals」(新增主體) 對話方塊中,輸入群組或個別使用者的電子郵件地址,其應擁有專案的「IAP-secured Web App User」(受 IAP 保護的網路應用程式使用者) 角色。
下列類型的主體可以擁有這個角色:
- Google 帳戶:user@gmail.com
- Google 群組:admins@googlegroups.com
- 服務帳戶:server@example.gserviceaccount.com
- Google Workspace 網域:example.com
請務必新增您可以存取的 Google 帳戶。
- 從「Roles」(角色) 下拉式清單中選取「Cloud IAP」>「IAP-secured Web App User」(受 IAP 保護的網頁應用程式使用者)。
- 按一下「Save」(儲存)。
正在啟用 IAP
-
在「Identity-Aware Proxy」頁面的「Applications」(應用程式) 下方,找到您要限制存取權的應用程式。如要為資源啟用 IAP,請
-
在隨即顯示的「開啟 IAP」視窗中,按一下「開啟」,確認要使用 IAP 保護資源。啟用 IAP 後,所有連線都必須提供登入憑證才能連上負載平衡器。只有專案中具有「受 IAP 保護的網頁應用程式使用者」(
roles/iap.httpsResourceAccessor) 角色的主體,才能取得存取權。
gcloud
您需要最新版的 gcloud CLI,才能設定專案與 IAP。如需 gcloud CLI 的安裝操作說明,請參閱「安裝 gcloud CLI」。
-
如要進行驗證,請使用 Google Cloud CLI 執行下列指令。
gcloud auth login - 按一下顯示的網址並登入。
- 登入之後,複製顯示的驗證碼並貼到指令列中。
-
執行下列指令,指定要透過 IAP 保護的應用程式所屬專案。
gcloud config set project PROJECT_ID -
如要啟用 IAP,請執行下列指令。
gcloud iap web enable --resource-type=app-engine --versions=version -
將應擁有專案「受 IAP 保護的網頁應用程式使用者」角色的主體新增至專案。
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL_IDENTIFIER \ --role=roles/iap.httpsResourceAccessor- 將 PROJECT_ID 替換為專案 ID。
- 將 PRINCIPAL_IDENTIFIER 替換為必要主體。可以是網域、群組、服務帳戶或使用者類型。例如:
user:myemail@example.com。
啟用 IAP 之後,您可以使用 gcloud CLI,以 IAM 角色 roles/iap.httpsResourceAccessor 修改 IAP 存取權政策。進一步瞭解如何管理角色與權限。
API
執行下列指令,準備
settings.json檔案。cat << EOF > settings.json { "iap": { "enabled":true } } EOF執行下列指令來啟用 IAP。
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d @settings.json \ "https://appengine.googleapis.com/v1/apps/PROJECT_ID?updateMask=iap"
啟用 IAP 後,您可以使用 Google Cloud CLI,透過 IAM 角色 roles/iap.httpsResourceAccessor 修改 IAP 存取權政策。進一步瞭解如何管理角色與權限。
測試使用者驗證
授予角色後,主體就能透過 IAP 驗證存取應用程式。使用已獲授權的 Google 帳戶存取應用程式網址,該帳戶必須具備「受 IAP 保護的網頁應用程式使用者」角色 (
roles/iap.httpsResourceAccessor)。使用 Chrome 的無痕式視窗存取應用程式,並在系統提示時登入。獲派「受 IAP 保護的網路應用程式使用者」角色的使用者,只要通過驗證即可存取應用程式。如果使用者未獲派必要角色或驗證失敗,就無法存取應用程式。
後續步驟
- 瞭解如何取得使用者身分識別資訊,並開發自己的 App Engine 應用程式。