Crear clientes de OAuth de forma programática para IAP

En esta página se describe cómo crear clientes de OAuth de forma programática para usarlos con IAP, lo que te permite configurar IAP de forma programática de principio a fin para aplicaciones internas.

Limitaciones conocidas

Los clientes de OAuth creados mediante programación con esta API tienen algunas limitaciones:

  • Los clientes de OAuth creados por la API solo se pueden modificar mediante la API. No puedes modificar un cliente de OAuth a través de la consola Google Cloud si se ha creado mediante la API.
  • Los clientes de OAuth creados por la API solo se pueden usar con IAP, por lo que la API no permite actualizar la URI de redirección ni otros atributos.
  • La API no funciona con los clientes de OAuth que se hayan creado con la consola. Google Cloud
  • Solo se permiten 500 clientes de OAuth por proyecto al usar la API.
  • Las marcas de pantallas de consentimiento de OAuth creadas mediante APIs tienen limitaciones específicas. Consulta la sección que aparece más abajo para obtener más información.

Información sobre 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 marca. Las marcas se pueden limitar a usuarios internos o públicos. Una marca interna hace que el flujo de OAuth sea accesible para alguien que pertenece a la misma organización de Google Workspace 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 manualmente o de forma programática a través de una API. Las marcas creadas mediante la API se configuran automáticamente con ajustes diferentes:

  • Se definen como internas y deben definirse manualmente como públicas si se desea.
  • Se les asigna el estado "sin revisar" y se debe activar una revisión de marca

Para definir manualmente una marca interna como pública, sigue estos pasos:

  1. Abre la pantalla de consentimiento de OAuth.
  2. Selecciona el proyecto que quieras en el menú desplegable.
  3. En la página Pantalla de consentimiento de OAuth, observe que el Tipo de usuario se ha definido automáticamente como Interno. Para cambiar el estado a Pública, haz clic en Editar aplicación. Se mostrarán más opciones de configuración.
  4. En Tipo de aplicación, haz clic en Pública.

Para activar una revisión de marca de una marca creada por una API que no se haya revisado, sigue estos pasos:

  1. Abre la pantalla de consentimiento de OAuth.
  2. Selecciona el proyecto que quieras en el menú desplegable.
  3. En la página Pantalla de consentimiento de OAuth, introduce la información necesaria y haz clic en Enviar para verificación.

El proceso de verificación puede tardar varias semanas. A medida que avance, irás recibiendo actualizaciones por correo electrónico. Más información sobre la verificación. Mientras se lleva a cabo el proceso de verificación, puedes seguir usando la aplicación en tu organización de Google Workspace. Consulta más información sobre el comportamiento de tu aplicación antes de que se verifique.

Antes de empezar

Antes de crear un cliente, asegúrate de que el llamante tenga los siguientes permisos:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets (Solo es necesario para enumerar los clientes de OAuth con secreto).
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

Estos permisos se incluyen en los roles básicos Editor (roles/editor) y Propietario (roles/owner). Sin embargo, te recomendamos que crees un rol personalizado que contenga estos permisos y que lo asignes al llamante.

Configurar OAuth para IAP

En los siguientes pasos se describe cómo configurar la pantalla de consentimiento y crear un cliente de OAuth para las compras en la aplicación.

  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]
    

Usa el ID de cliente (client_id en el ejemplo anterior) y secret para habilitar las compras en la aplicación. Para obtener más información sobre cómo habilitar las compras en la aplicación con las credenciales que acabas de crear, consulta los siguientes temas: