Crea clientes de OAuth personalizados para IAP

En esta página, se describe cómo crear un cliente de OAuth cuando se usa la configuración de OAuth personalizada para habilitar IAP con identidades de Google.

Si deseas usar un cliente de OAuth administrado por Google para habilitar IAP, consulta Habilita IAP con un cliente de OAuth administrado por Google.

Crea un cliente de OAuth

Puedes crear un máximo de 36 clientes de OAuth para cada proyecto con la consola deGoogle Cloud . Puedes crear un máximo de 500 clientes de OAuth para cada proyecto con Google Cloud CLI.

Console

Completa los siguientes pasos para crear un cliente de OAuth con la consola deGoogle Cloud .

  1. Configura la pantalla de consentimiento de OAuth siguiendo las instrucciones que se indican en Configura tu pantalla de consentimiento de OAuth.

  2. Crea un cliente de OAuth siguiendo las instrucciones que se indican en Cómo configurar OAuth 2.0.

gcloud

Limitaciones conocidas

A continuación, se indican las limitaciones para los clientes de OAuth creados de manera programática con la API:

  • Los clientes de OAuth creados por la API solo se pueden modificar mediante la API. No puedes modificar un cliente de OAuth con la consola de Google Cloud si se creó con la API.
  • Los clientes de OAuth creados por la API están bloqueados para el uso de IAP únicamente, por lo que la API no permite actualizaciones en el URI de redireccionamiento ni en otros atributos.
  • La API no opera en los clientes de OAuth que se crearon con la Google Cloud consola.
  • Solo se permiten 500 clientes de OAuth por proyecto cuando se utiliza la API.
  • Las marcas de la pantalla de consentimiento de OAuth creadas por las API tienen limitaciones específicas. Consulta la sección para obtener más información.

Comprende las marcas y el estado de la marca

La pantalla de consentimiento de OAuth, que contiene información de marca para los usuarios, se conoce como una marca. Las marcas pueden estar limitadas a usuarios internos o a usuarios públicos. Una marca interna hace que el flujo de OAuth sea accesible para alguien que pertenece a la misma organización del lugar de trabajo de Google que el proyecto. Una marca pública hace que el flujo de OAuth esté disponible para cualquier persona en Internet.

Las marcas se pueden crear de forma manual o programática a través de una API. Las marcas creadas con una API se configuran automáticamente con los siguientes parámetros de configuración:

  • Solo para uso interno. Debes configurarlo manualmente como público.

  • Sin revisar. Debes activar una revisión de marca.

Para configurar una marca interna como pública, haz lo siguiente:

  1. Abre la Pantalla de consentimiento de OAuth.
  2. Selecciona un proyecto en el menú desplegable.
  3. En la página Pantalla de consentimiento de OAuth, ten en cuenta que el Tipo de usuario se establece automáticamente en Interno. Para configurarlo en Público, haz clic en Editar aplicación. Hay más opciones de configuración disponibles.
  4. En Tipo de aplicación, haz clic en Público.

Para activar una revisión de marca para una marca no revisada creada por API, sigue estos pasos:

  1. Abre la Pantalla de consentimiento de OAuth.
  2. Selecciona un proyecto en el menú desplegable.
  3. En la página Pantalla de consentimiento de OAuth, ingresa la información requerida y, luego, haz clic en Enviar para verificación.

El proceso de verificación puede demorar varias semanas. Recibirás actualizaciones por correo electrónico a medida que progrese. Más información sobre la verificación. Mientras el proceso de verificación está en curso, puedes usar la aplicación dentro de tu organización de Google Workspace. Obtén más información sobre cómo se comportará tu aplicación antes de que se verifique.

Permisos necesarios

Antes de crear el cliente, asegúrate de que la persona que llama tenga otorgados los siguientes permisos:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Estos permisos se incluyen en las funciones básicas, Editor (roles/editor) y el Propietario (roles/owner), sin embargo, te recomendamos que crees una función personalizada que contenga estos permisos y otorgarlos a la persona que llama.

Configura OAuth para IAP

En los siguientes pasos. se describe cómo configurar la pantalla de consentimiento y crear un cliente de OAuth para 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]