本頁說明如何使用自訂 OAuth 設定啟用 IAP,並搭配 Google 身分識別建立 OAuth 用戶端。
如要使用 Google 代管的 OAuth 用戶端啟用 IAP,請參閱「使用 Google 代管的 OAuth 用戶端啟用 IAP」。
建立 OAuth 用戶端
使用Google Cloud 控制台時,每個專案最多可建立 36 個 OAuth 用戶端。您最多可以為每個專案建立 500 個 OAuth 用戶端 (使用 Google Cloud CLI)。
控制台
請完成下列步驟,使用Google Cloud 控制台建立 OAuth 用戶端。
按照「設定 OAuth 同意畫面」一文中的操作說明,設定 OAuth 同意畫面。
按照「設定 OAuth 2.0」一文中的操作說明,建立 OAuth 用戶端。
gcloud
已知限制
透過 API 以程式輔助方式建立的 OAuth 用戶端有以下限制:
- 透過 API 建立的 OAuth 用戶端只能使用 API 進行修改。如果 OAuth 用戶端是透過 API 建立,就無法使用 Google Cloud 控制台修改。
- API 建立的 OAuth 用戶端只能用於 IAP,因此 API 不允許更新重新導向 URI 或其他屬性。
- API 不會對使用 Google Cloud 控制台建立的 OAuth 用戶端執行作業。
- 使用 API 時,每項專案最多只能有 500 個 OAuth 用戶端。
- 透過 API 建立的 OAuth 同意畫面品牌有特定限制。詳情請參閱這個部分。
瞭解品牌和品牌狀態
OAuth 同意畫面含有使用者的品牌宣傳資訊,又稱為品牌。品牌可限定為內部使用者或公開使用者。內部品牌可讓與專案屬於相同 Google Workspace 機構的使用者存取 OAuth 流程。公開品牌可讓網際網路上的任何人使用 OAuth 流程。
品牌可以手動建立,也可以使用 API 透過程式輔助方式建立。透過 API 建立的品牌會自動套用下列設定:
內部。你必須手動設為公開。
尚未審查。你必須觸發品牌審查。
如要將內部品牌設為公開,請按照下列步驟操作:
- 開啟 OAuth 同意畫面。
- 從下拉式選單中選取專案。
- 在「OAuth consent screen」(OAuth 同意畫面) 頁面中,請注意「User Type」(使用者類型) 會自動設為「Internal」(內部)。如要設為「公開」,請按一下「編輯應用程式」,即可使用更多設定選項。
- 在「應用程式類型」下方,按一下「公開」。
如要為未審查的 API 建立品牌觸發品牌審查,請按照下列步驟操作:
- 開啟 OAuth 同意畫面。
- 從下拉式選單中選取專案。
- 在「OAuth 同意畫面」頁面中輸入所有必要資訊,然後按一下「提交以供驗證」。
驗證程序可能需要數週的時間才能完成。在此期間,我們會透過電子郵件傳送最新消息給您。如要進一步瞭解驗證程序,請參閱這篇文章。驗證程序進行期間,您仍可在 Google Workspace 機構中使用應用程式。進一步瞭解應用程式通過驗證前會出現哪些行為。
所需權限
建立用戶端前,請確認呼叫端已獲授下列權限:
clientauthconfig.brands.list
clientauthconfig.brands.create
clientauthconfig.brands.get
clientauthconfig.clients.create
clientauthconfig.clients.listWithSecrets
clientauthconfig.clients.getWithSecret
clientauthconfig.clients.delete
clientauthconfig.clients.update
「編輯者」roles/editor
和「擁有者」roles/owner
基本角色都具備這些權限,但建議您建立包含這些權限的自訂角色,並將該角色授予呼叫端。
設定 IAP 的 OAuth
下列步驟說明如何設定同意畫面,以及為 IAP 建立 OAuth 用戶端。
設定同意畫面
使用list 指令,確認你是否已擁有品牌。每個專案只能有一個品牌。
gcloud iap oauth-brands list
如果品牌存在,以下是 gcloud 回應範例:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
如果沒有品牌,請使用建立指令:
gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL
supportEmail
:OAuth 同意畫面上顯示的支援電子郵件。這個電子郵件地址可以是使用者的地址,也可以是 Google 網路論壇別名。雖然服務帳戶也有電子郵件地址,但這些並非有效的電子郵件地址,因此無法用於建立品牌。不過,服務帳戶可以是 Google 群組的擁有者。建立新的 Google 群組,或設定現有群組,並將所需服務帳戶設為群組擁有者。applicationTitle
:OAuth 同意畫面上顯示的應用程式名稱。
回應包含下列欄位:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
建立 IAP OAuth 用戶端
使用 create 指令建立用戶端。使用上一個步驟中的品牌
name
。gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME
回應包含下列欄位:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID] secret: [CLIENT_SECRET] displayName: [NAME]