本頁面說明如何透過程式輔助方式建立要與 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 建立的品牌會採用下列預設設定:
內部:品牌預設為內部。必須手動設為公開。
未審核:品牌處於「未審核」狀態,必須觸發品牌審核。
如要手動將內部品牌設為公開:
開啟「OAuth 同意畫面」。
從下拉式選單中選取專案。
在「OAuth consent screen」(OAuth 同意畫面) 頁面上,請注意「User Type」(使用者類型) 會自動設為「Internal」(內部)。如要將其設為「Public」(公開),請按一下「Edit App」(編輯應用程式)。系統會顯示更多設定選項。
在「Application type」(應用程式類型) 下方,按一下「Public」(公開)。
如要對透過 API 建立且未經審查的品牌觸發品牌審查,請按照下列步驟操作:
開啟「OAuth 同意畫面」。
從下拉式選單中選取您的專案。
在「OAuth consent screen」(OAuth 同意畫面) 頁面中輸入任何必要資訊,然後按一下「Submit for verification」(提交驗證)。
驗證程序最多可能需要數週,期間你會收到電子郵件通知,瞭解最新進度。進一步瞭解驗證。驗證程序進行期間,您仍可在 Google Workspace 組織中使用該應用程式。進一步瞭解應用程式在通過驗證前的行為。
事前準備
建立用戶端前,請先確認呼叫端已取得下列權限:
clientauthconfig.brands.listclientauthconfig.brands.createclientauthconfig.brands.getclientauthconfig.clients.createclientauthconfig.clients.listWithSecrets(僅在列出含有密鑰的 OAuth 用戶端時才需要)。clientauthconfig.clients.getWithSecretclientauthconfig.clients.deleteclientauthconfig.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如果不存在品牌,请使用 create 命令:
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]
使用用戶端 ID (上例中的 client_id) 和 secret 啟用 IAP。如要進一步瞭解如何使用剛建立的憑證啟用 IAP,請參閱下列主題: