Descripción general de la API de Cloud OAuth

La API de OAuth de Cloud (cloudoauth.googleapis.com) proporciona intercambio de tokens y autenticación de OAuth 2.0 y OpenID Connect (OIDC) para la federación de identidades de personal.

La API de OAuth de Cloud autentica a los usuarios de Google Cloud . Esta API permite que tus aplicaciones redireccionen a los usuarios al extremo de autorización (https://auth.cloud.google/authorize) para obtener códigos de autorización. Luego, tus aplicaciones pueden intercambiar credenciales externas, códigos de autorización o tokens de actualización por tokens de acceso de OAuth 2.0 y tokens de ID de OIDC de corta duración.

La API se basa en las especificaciones de Intercambio de tokens de OAuth 2.0 (RFC 8693) y Marco de autorización de OAuth 2.0 (RFC 6749).

Comparación con el Servicio de tokens de seguridad

Históricamente,el Servicio de tokens de seguridad (sts.googleapis.com) de Google Cloud controlaba el intercambio de tokens para la federación de identidades de personal y la federación de identidades para cargas de trabajo.

La API de OAuth de Cloud admite los mismos intercambios de tokens que el servicio de tokens de seguridad, pero se dedica al tráfico de la federación de identidades de personal. Esta separación aísla los intercambios de tokens de la fuerza laboral del tráfico de las cargas de trabajo, lo que ayuda a evitar interrupciones entre servicios y permite que la capacidad de la fuerza laboral escale de forma independiente del Servicio de tokens de seguridad. Según el estado de tu integración, sigue estos lineamientos:

  • Integraciones nuevas: Redirige a los usuarios al extremo de autorización (https://auth.cloud.google/authorize) y, luego, intercambia tokens con la API de OAuth de Cloud (cloudoauth.googleapis.com).
  • Integraciones existentes: Si usas el Servicio de tokens de seguridad (sts.googleapis.com/v1/oauthtoken o sts.googleapis.com/v1/token), realiza la transición a cloudoauth.googleapis.com.

Extremos compatibles

En la siguiente tabla, se enumeran los extremos que usas en las integraciones de la API de OAuth de Cloud. La mayoría de estos extremos tienen un alcance de organización (usuario único) que proporcionan administración y descubrimiento de claves aislados cuando tu aplicación cliente y tus recursos están restringidos a una sola organización de Google Cloud.

En las URLs de extremos con alcance de organización, reemplaza ORGANIZATION_ID por el ID de organización numérico de tu Google Cloud:

Extremo Método URL Descripción
Detección de OpenID Connect GET https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration Devuelve los metadatos de configuración del proveedor de OpenID Connect Discovery 1.0 (documento de descubrimiento) para la organización.
Autorización GET https://auth.cloud.google/authorize Redirecciona a los usuarios federados para que accedan con su proveedor de identidad (IdP) y devuelve un código de autorización al URI de redireccionamiento de tu aplicación.
Intercambio de tokens POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token Intercambia códigos de autorización o tokens de actualización por tokens de acceso de OAuth 2.0 y tokens de ID de OIDC.
Conjunto de claves web JSON (JWKS) GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json Devuelve las claves web JSON (JWK) públicas que se usan para verificar las firmas de los tokens de ID de OIDC emitidos para la organización.
Información del usuario GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo Recupera las reclamaciones estándar de OIDC, las reclamaciones de directorio personalizadas y las membresías de grupo del usuario autenticado.
Grupos empresariales GET https://cloudoauth.googleapis.com/v1/common/groups Recupera las membresías paginadas de grupos empresariales del usuario autenticado.

Extremo de autorización

En un flujo de código de autorización de OAuth 2.0 y OIDC, tu aplicación redirecciona a los usuarios federados al extremo de autorización unificado de Google Cloud (https://auth.cloud.google/authorize) para que accedan con su IdP. Después de que la autenticación se realiza correctamente, el extremo de autorización redirecciona al usuario al URI de redireccionamiento de tu aplicación con un código de autorización. Luego, tu aplicación intercambia este código por tokens en el extremo de intercambio de tokens.

Extremos de descubrimiento de OIDC y JWKS

En el caso de las integraciones de OIDC de Looker, la API de OAuth de Cloud proporciona extremos públicos sin autenticación con alcance de organización para la configuración del cliente y la verificación de tokens:

  • Extremo de descubrimiento de OpenID Connect: Proporciona los metadatos de configuración del proveedor de OpenID Connect Discovery 1.0 (documento de descubrimiento) para la organización. El documento de descubrimiento incluye el identificador issuer de la organización y las URLs de los extremos (authorization_endpoint, token_endpoint, userinfo_endpoint y jwks_uri). También enumera los permisos, las reclamaciones, los algoritmos de firma (RS256) y los métodos de desafío de código de la clave de prueba para el intercambio de código (PKCE) admitidos (S256).
  • Extremo del conjunto de claves web JSON (JWKS): Proporciona el conjunto de claves web JSON (JWKS) público para la organización. Las aplicaciones usan las claves web JSON (JWK) públicas en el array keys para verificar la firma criptográfica de un token de ID de OIDC (id_token) emitido por la API de OAuth de Cloud.

En una integración típica de OIDC, tu aplicación usa estos extremos en la siguiente secuencia:

  1. Recupera el documento de descubrimiento: Envía una solicitud GET al extremo de descubrimiento de OpenID Connect (/.well-known/openid-configuration) y lee las URLs de los extremos (authorization_endpoint, token_endpoint, jwks_uri y userinfo_endpoint).
  2. Solicita un código de autorización: Redirecciona al usuario al authorization_endpoint (https://auth.cloud.google/authorize) para que acceda con su IdP y reciba un código de autorización en el URI de redireccionamiento de tu aplicación.
  3. Intercambia el código de autorización por tokens: Envía una solicitud POST al token_endpoint (/token) para intercambiar el código de autorización por un token de acceso de OAuth 2.0 y un token de ID de OIDC (id_token).
  4. Verifica el token de ID: Recupera las claves públicas de la organización desde el jwks_uri (/.well-known/jwks.json) y úsalas para verificar la firma criptográfica del id_token.
  5. Opcional: Recupera la información del usuario: Envía una solicitud GET con el token de acceso al userinfo_endpoint (/userinfo) para recuperar reclamaciones adicionales del perfil de usuario y membresías de grupos.

¿Qué sigue?