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:
- Crea un cliente de OAuth.
- Crea una credencial de cliente de OAuth.
- 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
Debes tener configurada una organización de Google Cloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
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 actualizarPROJECT_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 actualizarREDIRECT_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 clienteAPP_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 registradaAPP_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 OAuthAPP_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 OAuthAPP_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 OAuthAPP_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 OAuthAPP_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 OAuthAPP_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 OAuthPROJECT_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 clienteAPP_OAUTH_CLIENT_CREDENTIAL_ID
: El ID de cliente de OAuth
¿Qué sigue?
- Obtén información sobre Identity-Aware Proxy con la federación de identidades de personal