Como criar de maneira programática clientes OAuth para o IAP

Esta página descreve como criar de maneira programática clientes OAuth para uso com o IAP, permitindo que você configure o IAP de maneira programática de ponta a ponta para aplicativos internos.

Limitações conhecidas

Há algumas limitações para clientes OAuth criados de maneira programática usando essa API:

  • Os clientes OAuth criados pela API só podem ser modificados usando a API. Não é possível modificar um cliente OAuth pelo console do Google Cloud se ele foi criado usando a API.
  • Os clientes OAuth criados pela API são bloqueados apenas para uso do IAP. Portanto, a API não permite atualizações no URI de redirecionamento ou em outros atributos.
  • A API não opera nos clientes OAuth criados usando o console do Google Cloud.
  • Apenas 500 clientes OAuth são permitidos por projeto ao usar a API.
  • As marcas da tela de consentimento OAuth criadas pela API têm limitações específicas. Consulte a seção abaixo para mais informações.

Como entender as marcas e o estado da marca

A tela de consentimento OAuth, que contém informações de marca para os usuários, é conhecida como marca. As marcas podem ser limitadas a usuários internos ou públicos. Uma marca interna torna o fluxo OAuth acessível para alguém que pertença à mesma organização do espaço de trabalho do Google que o projeto. Uma marca pública disponibiliza o fluxo OAuth para qualquer pessoa na Internet.

As marcas podem ser criadas manual ou programaticamente por meio de uma API. As marcas criadas pela API são definidas automaticamente com configurações diferentes:

  • Elas são definidos como internas e devem ser definidas manualmente como públicas, se desejado
  • Elas são definidos como um estado "não revisado" e uma avaliação de marca deve ser acionada

Para definir manualmente uma marca interna como pública:

  1. Abra a tela de consentimento do OAuth.
  2. Selecione o projeto desejado no menu suspenso.
  3. Na página tela de consentimento do OAuth, observe que o Tipo de usuário é definido automaticamente como Interno. Para defini-lo como Público, clique em Editar aplicativo. Mais opções de configuração estão disponíveis.
  4. Em tipo de aplicativo, clique em Público.

Para acionar uma revisão de marca para uma marca criada pela API sem revisão:

  1. Abra a tela de consentimento do OAuth.
  2. Selecione o projeto desejado no menu suspenso.
  3. Na página Tela de consentimento do OAuth, insira as informações necessárias e clique em Enviar para verificação.

O processo de verificação pode levar algumas semanas. Enviaremos atualizações do progresso por e-mail. Saiba mais sobre a verificação. Enquanto o processo de verificação estiver em andamento, você ainda poderá usar o aplicativo na sua organização do Google Workspace. Saiba mais sobre como seu aplicativo se comportará antes de ser verificado.

Antes de começar

Antes de criar um cliente, primeiro verifique se o autor da chamada recebeu as seguintes permissões:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets (somente obrigatório para listar clientes OAuth com chave secreta).
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Essas permissões estão incluídas nos papéis básicos de editor (roles/editor) e de proprietário (roles/owner). No entanto, em vez de usar esses papéis, recomendamos que você crie um papel personalizado que contenha essas permissões e o conceda ao autor da chamada.

Configurar o OAuth para IAP

Veja nas etapas a seguir como configurar a tela de consentimento e criar um cliente oauth para IAP.

  1. Verifique se você já tem uma marca usando o comando list. É possível ter apenas uma marca por projeto.

    gcloud iap oauth-brands list

    Veja um exemplo de resposta do gcloud, se a marca existir:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. Se não houver 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 ao chamar esta API:

    • supportEmail: o e-mail de suporte exibido na tela de consentimento do OAuth. Esse endereço de e-mail pode ser um endereço de usuário ou um alias dos Grupos do Google. Embora as contas de serviço também tenham um endereço de e-mail, elas não são endereços de e-mail válidos e não podem ser usadas ao criar uma marca. No entanto, uma conta de serviço pode ser a proprietária de um Grupo do Google. Crie um novo Grupo do Google ou configure um grupo existente e defina a conta de serviço desejada como proprietário do grupo.

    • applicationTitle: o nome do aplicativo exibido na tela de consentimento do OAuth.

    A resposta contém os seguintes campos:

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

Como criar um cliente OAuth do IAP

  1. Use o comando create para criar um cliente. Use a marca name da etapa 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 do cliente (client_id no exemplo acima) e secret para ativar o IAP. Consulte os tópicos a seguir para mais informações sobre como ativar o IAP usando as credenciais que você acabou de criar: