為 IAP 建立自訂 OAuth 用戶端

本頁說明如何使用自訂 OAuth 設定啟用 IAP,並搭配 Google 身分識別建立 OAuth 用戶端。

如要使用 Google 代管的 OAuth 用戶端啟用 IAP,請參閱「使用 Google 代管的 OAuth 用戶端啟用 IAP」。

建立 OAuth 用戶端

使用Google Cloud 控制台時,每個專案最多可建立 36 個 OAuth 用戶端。您最多可以為每個專案建立 500 個 OAuth 用戶端 (使用 Google Cloud CLI)。

控制台

請完成下列步驟,使用Google Cloud 控制台建立 OAuth 用戶端。

  1. 按照「設定 OAuth 同意畫面」一文中的操作說明,設定 OAuth 同意畫面。

  2. 按照「設定 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 建立的品牌會自動套用下列設定:

  • 內部。你必須手動設為公開。

  • 尚未審查。你必須觸發品牌審查。

如要將內部品牌設為公開,請按照下列步驟操作:

  1. 開啟 OAuth 同意畫面
  2. 從下拉式選單中選取專案。
  3. 在「OAuth consent screen」(OAuth 同意畫面) 頁面中,請注意「User Type」(使用者類型) 會自動設為「Internal」(內部)。如要設為「公開」,請按一下「編輯應用程式」,即可使用更多設定選項。
  4. 在「應用程式類型」下方,按一下「公開」

如要為未審查的 API 建立品牌觸發品牌審查,請按照下列步驟操作:

  1. 開啟 OAuth 同意畫面
  2. 從下拉式選單中選取專案。
  3. 在「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 用戶端。

  1. 使用list 指令,確認你是否已擁有品牌。每個專案只能有一個品牌。

    gcloud iap oauth-brands list

    如果品牌存在,以下是 gcloud 回應範例:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. 如果沒有品牌,請使用建立指令:

    gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL

    呼叫此 API 時,必須提供上述欄位:

    • supportEmail:OAuth 同意畫面上顯示的支援電子郵件。這個電子郵件地址可以是使用者的地址,也可以是 Google 網路論壇別名。雖然服務帳戶也有電子郵件地址,但這些並非有效的電子郵件地址,因此無法用於建立品牌。不過,服務帳戶可以是 Google 群組的擁有者。建立新的 Google 群組,或設定現有群組,並將所需服務帳戶設為群組擁有者。

    • applicationTitle:OAuth 同意畫面上顯示的應用程式名稱。

    回應包含下列欄位:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    

建立 IAP OAuth 用戶端

  1. 使用 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]