为 IAP 创建 OAuth 客户端

本页面介绍了如何创建启用 IAP 所需的 OAuth 客户端。

创建 OAuth 客户端

使用 Google Cloud 控制台,您最多可以为每个项目创建 36 个 OAuth 客户端。您可以使用 Google Cloud CLI 为每个项目创建最多 500 个 OAuth 客户端。

控制台

如需使用 Google Cloud 控制台创建 OAuth 客户端,请完成以下步骤。

  1. 按照设置 OAuth 权限请求页面中的说明配置 OAuth 权限请求页面。

  2. 按照设置 OAuth 2.0 中的说明创建 OAuth 客户端。

gcloud

已知限制

对于使用 API 以编程方式创建的 OAuth 客户端,存在以下限制:

  • 由 API 创建的 OAuth 客户端只能使用 API 进行修改。如果 OAuth 客户端是使用 API 创建的,则您无法使用 Google Cloud 控制台修改该客户端。
  • 该 API 创建的 OAuth 客户端仅用于 IAP 用途,因此不允许对重定向 URI 或其他属性进行任何更新。
  • 该 API 不适用于使用 Google Cloud 控制台创建的 OAuth 客户端。
  • 使用 API 时,每个项目仅允许 500 个 OAuth 客户端。
  • API 创建的 OAuth 同意屏幕品牌有特定限制。如需了解详情,请参阅此部分

了解品牌和品牌状态

包含用户品牌信息的 OAuth 同意屏幕称为品牌。品牌仅限内部用户或公共用户使用。内部品牌可以让与该项目属于同一 Google Workspace 组织的人员可以访问 OAuth 流程。公开品牌可以让互联网上的任何用户都能看到 OAuth 流程。

您可以使用 API 手动或以编程方式创建品牌。使用 API 创建的品牌会自动配置以下设置:

  • 内部。您必须手动设置为“公开”。

  • 未审核。您必须触发品牌审核。

如需将内部品牌设为公开,请执行以下操作:

  1. 打开 OAuth 同意屏幕
  2. 从下拉菜单中选择项目。
  3. OAuth 同意屏幕页面上,请注意,用户类型会自动设置为内部。如需将其设置为公开,请点击修改应用。系统会显示更多配置选项。
  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

这些权限包含在 Editor (roles/editor) 和 Owner (roles/owner) 基本角色中,但是我们建议您创建一个包含这些权限的自定义角色并将其授予调用方。

为 IAP 设置 OAuth

以下步骤介绍了如何配置同意屏幕,以及如何为 IAP 创建客户端并对其进行身份验证。

  1. Check if you already have an existing brand by using the list command. You may only have one brand per project.

    gcloud iap oauth-brands list
    

    The following is an example gcloud response, if the brand exists:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. If no brand exists, use the create command:

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

    The above fields are required when calling this API:

    • supportEmail: The support email displayed on the OAuth consent screen. This email address can either be a user's address or a Google Groups alias. While service accounts also have an email address, they are not actual valid email addresses, and cannot be used when creating a brand. However, a service account can be the owner of a Google Group. Either create a new Google Group or configure an existing group and set the desired service account as an owner of the group.

    • applicationTitle: The application name displayed on OAuth consent screen.

    The response contains the following fields:

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

Creating an IAP OAuth Client

  1. Use the create command to create a client. Use the brand name from previous step.

    gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME
    

    The response contains the following fields:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID]
    secret: [CLIENT_SECRET]
    displayName: [NAME]