En esta guía se explica cómo gestionar las integraciones de aplicaciones basadas en OAuth conGoogle Cloud.
A grandes rasgos, para integrar una aplicación basada en OAuth, debes hacer lo siguiente:
- Crea un cliente de OAuth.
- Crea una credencial de cliente de OAuth.
- En la credencial de cliente de OAuth, obtenga el secreto de cliente. Para obtener información sobre los riesgos asociados al almacenamiento y al acceso al secreto de cliente, así como sobre las estrategias que pueden ayudar a mitigarlos, consulta Riesgos de seguridad y mitigaciones de clientes y credenciales de OAuth.
Una vez que hayas completado estos pasos, la aplicación basada en OAuth podrá acceder a losGoogle Cloud productos y datos.
Antes de empezar
Debes tener una organización configurada. Google Cloud
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Debes haber configurado un grupo de identidades y un proveedor de empleados en la organización en la que registrarás la aplicación OAuth. Consulta cómo configurar la federación de identidades de trabajo 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 OAuth para tu organización, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de clientes de OAuth (roles/iam.oauthClientAdmin
) en el proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Gestionar clientes de OAuth
En esta sección se explica cómo gestionar los clientes de OAuth.
Crear un cliente de OAuth
Para crear un cliente de OAuth, sigue estos pasos:
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"
Haz los cambios siguientes:
APP_OAUTH_CLIENT_ID
: ID de cliente que representa a este cliente de OAuth.PROJECT_ID
: el ID del proyecto en el que has creado el grupo de identidades de Workforce y el proveedor. El proyecto debe crearse en la organización en la que se crearon tu grupo de trabajadores y tu proveedor.REDIRECT_URI
: el URI de redirección de la aplicación 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has creado el grupo de identidades de Workforce y el proveedor. El proyecto debe crearse en la organización en la que se crearon tu grupo de trabajadores y tu proveedor.REDIRECT_URI
: el URI de redirección de la aplicación OAuth. Por ejemplo,https://myapp.com/signin-callback
.APP_OAUTH_CLIENT_ID
: ID de cliente que representa a este cliente de OAuth.
Después de registrar la aplicación, crea la credencial de cliente de OAuth y obtiene el secreto que usa la aplicación de OAuth para acceder aGoogle Cloud.
Mostrar clientes de OAuth
Para mostrar 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
Sustituye PROJECT_ID
por el ID del proyecto en el que
están registradas tus aplicaciones 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
Haz los cambios siguientes:
APP_OAUTH_CLIENT_ID
: el ID del cliente de OAuth que quieres describirPROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID del cliente de OAuth que quieres describir
Actualizar 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"
Haz los cambios siguientes:
APP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth del cliente de OAuth que quieras actualizarPROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthREDIRECT_URI
: el URI de redirección de la aplicación 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth del cliente de OAuth que quieras actualizarREDIRECT_URI
: el URI de redirección del cliente de OAuth
Para actualizar otros campos, asigna update_mask
a los nombres de los campos que se indican en gcloud iam oauth-clients update
.
Eliminar un cliente de OAuth
Para eliminar un cliente de OAuth, ejecuta el siguiente comando:
gcloud
gcloud iam oauth-clients delete APP_OAUTH_CLIENT_ID \
--project PROJECT_ID \
--location global
Haz los cambios siguientes:
APP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que se va a eliminarPROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que se va a eliminar
Gestionar credenciales de cliente de OAuth
En esta sección se explica cómo gestionar las credenciales de cliente de OAuth.
Crear 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'
Haz los cambios siguientes:
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 describiendo 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que puedes obtener describiendo la aplicación cliente de OAuth registradaAPP_OAUTH_CLIENT_CREDENTIAL_ID
: un ID que representa esta credencial de cliente.
Mostrar credenciales de cliente de OAuth
Para enumerar las credenciales del 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
Haz los cambios siguientes:
APP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth para el que se deben enumerar las credenciales.PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth para el que se deben enumerar 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 de cliente inspeccionando el resultado.
gcloud
gcloud iam oauth-clients credentials describe APP_OAUTH_CLIENT_CREDENTIAL_ID \
--oauth-client=APP_OAUTH_CLIENT_ID \
--location='global'
Haz los cambios siguientes:
APP_OAUTH_CLIENT_CREDENTIAL_ID
: el URI de redirección del cliente de OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que puedes obtener describiendo 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: el URI de redirección del cliente de OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que puedes obtener describiendo el registro de la aplicación cliente
En el resultado, clientSecret
es el secreto de cliente. Este es el secreto que usa la aplicación OAuth para acceder a Google Cloud.
Actualizar 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://iam.googleapis.com/v1/projects/PROJECT_ID/locations/global/oauthClients/APP_OAUTH_CLIENT_ID/credentials/APP_OAUTH_CLIENT_CREDENTIAL_ID?update_mask=display_name
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: el URI de redirección del cliente de OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuth que puedes obtener describiendo el registro de la aplicación cliente
Inhabilitar una credencial de cliente de OAuth
Para poder eliminar una credencial de cliente de OAuth, primero 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID de la credencial de cliente que se va a 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de cliente de OAuthAPP_OAUTH_CLIENT_CREDENTIAL_ID
: ID de la credencial de cliente que se va a inhabilitar
Eliminar una credencial de cliente de OAuth
Para eliminar 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
Haz los cambios siguientes:
APP_OAUTH_CLIENT_CREDENTIAL_ID
: el ID de cliente de OAuthPROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de la credencial de 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto en el que has registrado tu aplicación OAuthAPP_OAUTH_CLIENT_ID
: el ID de la credencial de cliente.APP_OAUTH_CLIENT_CREDENTIAL_ID
: el ID de cliente de OAuth
Siguientes pasos
- Consulta información sobre Identity-Aware Proxy con la federación de identidades de Workforce.