Administra la aplicación de OAuth

En esta guía, se muestra cómo administrar las integraciones de aplicaciones basadas en OAuth con Google Cloud.

En términos generales, para integrar una aplicación basada en OAuth, sigue estos pasos:

  1. Crea un cliente de OAuth.
  2. Crea una credencial de cliente de OAuth.
  3. En la credencial de cliente de OAuth, obtén el secreto del cliente. Para obtener información sobre los riesgos asociados con el almacenamiento y el acceso al secreto del cliente, y las estrategias que pueden ayudar a mitigarlos, consulta Riesgos y mitigaciones de seguridad de los clientes y las credenciales de OAuth.

Una vez que completes estos pasos, la aplicación basada en OAuth podrá acceder a los productos y datos de Google Cloud.

Antes de comenzar

  1. Debes tener configurada una organización de Google Cloud.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  3. Debes haber configurado un grupo y un proveedor de identidades de los trabajadores en la organización en la que registrarás la aplicación de OAuth. Obtén información para configurar la federación de identidades de personal para Microsoft Entra ID, Okta y otros proveedores de OIDC y SAML 2.0.

Roles obligatorios

Para obtener los permisos que necesitas para registrar una aplicación de OAuth para tu organización, pídele a tu administrador que te otorgue el rol de IAM Administrador de clientes de OAuth de IAM (roles/iam.oauthClientAdmin) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Administrar clientes de OAuth

En esta sección, se muestra cómo administrar clientes de OAuth.

Crea un cliente de OAuth

Para crear un cliente de OAuth, haz lo siguiente:

gcloud

gcloud iam oauth-clients create APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --client-type="CONFIDENTIAL_CLIENT" \
    --display-name="My OAuth application" \
    --description="An application registration for MyApp" \
    --allowed-scopes="https://www.googleapis.com/auth/cloud-platform" \
    --allowed-redirect-uris="REDIRECT_URI" \
    --allowed-grant-types="authorization_code_grant"

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_ID: Un ID de cliente para representar a este cliente de OAuth.
  • PROJECT_ID: El ID del proyecto en el que creaste el grupo de identidades de personal y el proveedor. El proyecto se debe crear en la organización en la que se crearon el grupo de personal y el proveedor.
  • REDIRECT_URI: Es el URI de redireccionamiento de la aplicación de OAuth, por ejemplo, https://myapp.com/signin-callback.

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{ \
        'allowedGrantTypes': ['AUTHORIZATION_CODE_GRANT'], \
        'allowedRedirectUris': ['REDIRECT_URI'], \
        'allowedScopes': ['https://www.googleapis.com/auth/cloud-platform'], \
        'clientType': 'CONFIDENTIAL_CLIENT', \
        'description': 'My OAuth client description', \
        'disabled': false, \
        'displayName': 'My OAuth client'}" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients\?oauthClientId\=APP_OAUTH_CLIENT_ID

Reemplaza lo siguiente:

  • PROJECT_ID: El ID del proyecto en el que creaste el grupo de identidades de personal y el proveedor. El proyecto se debe crear en la organización en la que se crearon el grupo de personal y el proveedor.
  • REDIRECT_URI: Es el URI de redireccionamiento de la aplicación de OAuth, por ejemplo, https://myapp.com/signin-callback.
  • APP_OAUTH_CLIENT_ID: Un ID de cliente para representar a este cliente de OAuth.

Después de registrar la aplicación, crea la credencial de cliente de OAuth y obtén el secreto que usa la aplicación de OAuth para acceder a Google Cloud.

Mostrar clientes de OAuth

Para obtener una lista de los clientes de OAuth registrados, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients list \
    --project=PROJECT_ID \
    --location=global

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients

Reemplaza PROJECT_ID por el ID del proyecto en el que están registradas tus aplicaciones de OAuth.

Describe un cliente de OAuth

Para describir un cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients describe APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_ID: Es el ID del cliente de OAuth que deseas describir.
  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: Es el ID del cliente de OAuth que deseas describir.

Actualiza un cliente de OAuth

Para actualizar un cliente de OAuth, ejecuta el siguiente comando.

gcloud

gcloud iam oauth-clients update APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global \
    --allowed-redirect-uris="REDIRECT_URI"

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth del cliente de OAuth que deseas actualizar
  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • REDIRECT_URI: Es el URI de redireccionamiento de la aplicación de OAuth.

Para actualizar otros campos, usa las marcas que se indican en gcloud iam oauth-clients update.

REST

curl -d'{"allowedRedirectUris":"REDIRECT_URI"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID?update_mask=allowed_redirect_uris

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth del cliente de OAuth que deseas actualizar
  • REDIRECT_URI: Es el URI de redireccionamiento del cliente de OAuth.

Para actualizar otros campos, establece update_mask en los nombres de campo que se indican en gcloud iam oauth-clients update.

Borra un cliente de OAuth

Para borrar un cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
    --project PROJECT_ID \
    --location global

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que se borrará
  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que se borrará

Administra las credenciales de cliente de OAuth

En esta sección, se muestra cómo administrar las credenciales de cliente de OAuth para el cliente de OAuth.

Crea una credencial de cliente de OAuth

Para crear una credencial de cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients credentials create APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --display-name='My OAuth client credential' \
    --location='global'

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: Un ID que representa esta credencial de cliente
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que puedes obtener describing la aplicación cliente de OAuth registrada

REST

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  -d "{'disabled': false, 'displayName': 'My OAuth client credential'}" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials\?oauthClientCredentialId=APP_OAUTH_CLIENT_CREDENTIAL_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que puedes obtener describing la aplicación cliente de OAuth registrada
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: Un ID que representa esta credencial de cliente

Cómo enumerar las credenciales de cliente de OAuth

Para mostrar una lista de las credenciales de cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients credentials list \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --project=PROJECT_ID \
    --location=global

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_ID: Es el ID de cliente de OAuth para el que se enumerarán las credenciales.
  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/$PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: Es el ID de cliente de OAuth para el que se enumerarán las credenciales.

Describe una credencial de cliente de OAuth

Para describir una credencial de cliente de OAuth, ejecuta el siguiente comando. Puedes obtener el secreto del cliente si inspeccionas el resultado.

gcloud

gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location='global'

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El URI de redireccionamiento del cliente de OAuth
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que puedes obtener describing el registro de la aplicación cliente

REST

curl \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El URI de redireccionamiento del cliente de OAuth
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que puedes obtener describing el registro de la aplicación cliente

En el resultado, clientSecret es el secreto del cliente. Este es el secreto que usa la aplicación de OAuth para acceder a Google Cloud.

Actualiza una credencial de cliente de OAuth

Para actualizar una credencial de cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --client-id=APP_OAUTH_CLIENT_ID \
    --display-name="My new credential name" \
    --location=global

REST

curl -d'{"displayName":"My new credential name"}' -X PATCH \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://staging-iam.sandbox.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El URI de redireccionamiento del cliente de OAuth
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth que puedes obtener describing el registro de la aplicación cliente

Inhabilita una credencial de cliente de OAuth

Para poder borrar una credencial de cliente de OAuth, debes inhabilitarla. Para inhabilitar la credencial de cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients credentials update APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --disabled \
    --project=PROJECT_ID \
    --location=global

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El ID de credencial del cliente que se inhabilitará

REST

curl -d'{"disabled":"true"}' \
  -H "Content-Type: application/json" -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=disabled

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de cliente de OAuth
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El ID de credencial del cliente que se inhabilitará

Borra una credencial de cliente de OAuth

Para borrar una credencial de cliente de OAuth, ejecuta el siguiente comando:

gcloud

gcloud iam oauth-clients credentials delete APP_OAUTH_CLIENT_CREDENTIAL_ID \
    --project=PROJECT_ID \
    --oauth-client=APP_OAUTH_CLIENT_ID \
    --location=global

Reemplaza lo siguiente:

  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El ID de cliente de OAuth
  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de la credencial del cliente

REST

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "X-Goog-User-Project: PROJECT_ID" \
  https://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto en el que registraste tu aplicación de OAuth.
  • APP_OAUTH_CLIENT_ID: El ID de la credencial del cliente
  • APP_OAUTH_CLIENT_CREDENTIAL_ID: El ID de cliente de OAuth

¿Qué sigue?