Criar clientes OAuth programaticamente para o IAP

Esta página descreve como criar programaticamente clientes OAuth para utilização com o IAP, o que lhe permite configurar o IAP programaticamente de forma global para aplicações internas.

Limitações conhecidas

Existem algumas limitações para clientes OAuth criados programaticamente através desta API:

  • Os clientes OAuth criados pela API só podem ser modificados através da API. Não pode modificar um cliente OAuth através da consola se tiver sido criado através da API. Google Cloud
  • Os clientes OAuth criados pela API estão bloqueados apenas para utilização de IAP e, por isso, a API não permite atualizações ao URI de redirecionamento nem a outros atributos.
  • A API não opera nos clientes OAuth que foram criados através da Google Cloud consola.
  • Só são permitidos 500 clientes OAuth por projeto quando usa a API.
  • As marcas do ecrã de consentimento OAuth criadas pela API têm limitações específicas. Consulte a secção abaixo para ver mais informações.

Compreender as marcas e o estado de branding

O ecrã de consentimento OAuth, que contém informações de branding para os utilizadores, é conhecido como uma marca. As marcas podem ser limitadas a utilizadores internos ou utilizadores públicos. Uma marca interna torna o fluxo OAuth acessível a alguém que pertence à mesma organização do Google Workspace que o projeto. Uma marca pública disponibiliza o fluxo OAuth a qualquer pessoa na Internet.

As marcas podem ser criadas manualmente ou programaticamente através de uma API. As marcas criadas através da API são configuradas automaticamente com definições diferentes:

  • Estão definidos como internos e têm de ser definidos manualmente como públicos, se desejar
  • Estão definidos como "não revistos" e tem de ser acionada uma revisão da marca

Para definir manualmente uma marca interna como pública:

  1. Abra o ecrã de consentimento OAuth.
  2. Selecione o projeto pretendido no menu pendente.
  3. Na página Ecrã de consentimento OAuth, repare que o Tipo de utilizador está automaticamente definido como Interno. Para a definir como Pública, clique em Editar app. São disponibilizadas mais opções de configuração.
  4. Em Tipo de aplicação, clique em Público.

Para acionar uma revisão da marca para uma marca criada pela API que não tenha sido revista:

  1. Abra o ecrã de consentimento OAuth.
  2. Selecione o projeto pretendido no menu pendente.
  3. Na página Ecrã de consentimento OAuth, introduza as informações necessárias e, em seguida, clique em Enviar para validação.

O processo de validação pode demorar até várias semanas e recebe atualizações por email à medida que avança. Saiba mais acerca da validação. Enquanto o processo de validação estiver em curso, pode continuar a usar a aplicação na sua organização do Google Workspace. Saiba mais sobre o comportamento da sua aplicação antes de ser validada.

Antes de começar

Antes de poder criar um cliente, certifique-se de que o autor da chamada tem as seguintes autorizações:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets (Só é necessário para listar clientes OAuth com segredo.)
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Estas autorizações estão incluídas nas funções básicas de editor (roles/editor) e proprietário (roles/owner). No entanto, recomendamos que crie uma função personalizada que contenha estas autorizações e a conceda ao autor da chamada.

Configure o OAuth para a IAP

Os passos seguintes descrevem como configurar o ecrã de consentimento e criar um cliente OAuth para as CAs.

  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]
    

Use o ID de cliente (client_id no exemplo acima) e secret para ativar as compras na app. Consulte os seguintes tópicos para mais informações sobre como ativar as CNA através das credenciais que acabou de criar: