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. Verifique se já tem uma marca existente através do comando list. Só pode ter uma marca por projeto.

    gcloud iap oauth-brands list

    Segue-se um exemplo de uma resposta gcloud, se a marca existir:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. Se não existir nenhuma marca, use o comando create:

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

    Os campos acima são obrigatórios quando chama esta API:

    • supportEmail: o email de apoio técnico apresentado no ecrã de consentimento OAuth. Este endereço de email pode ser o de um utilizador ou um alias dos Grupos Google. Embora as contas de serviço também tenham um endereço de email, não são endereços de email válidos reais e não podem ser usados quando cria uma marca. No entanto, uma conta de serviço pode ser proprietária de um grupo Google. Crie um novo grupo Google ou configure um grupo existente e defina a conta de serviço pretendida como proprietária do grupo.

    • applicationTitle: O nome da aplicação apresentado no ecrã de consentimento OAuth.

    A resposta contém os seguintes campos:

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

Criar um cliente OAuth do IAP

  1. Use o comando create para criar um cliente. Use a marca name do passo anterior.

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

    A resposta contém os seguintes campos:

    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: