透過程式為 IAP 建立 OAuth 用戶端

本頁面說明如何透過程式輔助方式建立要與 IAP 搭配使用的 OAuth 用戶端,讓您能以程式輔助方式為內部應用程式設定 IAP。

已知限制

使用這個 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」(內部)。如要將其設為「Public」(公開),請按一下「Edit App」(編輯應用程式)。系統會顯示更多設定選項。

  4. 在「Application type」(應用程式類型) 下方,按一下「Public」(公開)。

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

  1. 開啟「OAuth 同意畫面」。

  2. 從下拉式選單中選取您的專案。

  3. 在「OAuth consent screen」(OAuth 同意畫面) 頁面中輸入任何必要資訊,然後按一下「Submit for verification」(提交驗證)。

驗證程序最多可能需要數週,期間你會收到電子郵件通知,瞭解最新進度。進一步瞭解驗證。驗證程序進行期間,您仍可在 Google Workspace 組織中使用該應用程式。進一步瞭解應用程式在通過驗證前的行為。

事前準備

建立用戶端前,請先確認呼叫端已取得下列權限:

  • clientauthconfig.brands.list

  • clientauthconfig.brands.create

  • clientauthconfig.brands.get

  • clientauthconfig.clients.create

  • clientauthconfig.clients.listWithSecrets (僅在列出含有密鑰的 OAuth 用戶端時才需要)。

  • 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. 如果不存在品牌,请使用 create 命令:

    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]
    

使用用戶端 ID (上例中的 client_id) 和 secret 啟用 IAP。如要進一步瞭解如何使用剛建立的憑證啟用 IAP,請參閱下列主題: