Para realizar solicitudes HTTP autenticadas, tu flujo de trabajo debe estar asociado con una cuenta de servicio (identificada por su dirección de correo electrónico) que tenga las credenciales adecuadas. Para obtener más información sobre cómo conectar una cuenta de servicio de Identity and Access Management (IAM) a un flujo de trabajo y otorgarle los permisos necesarios para acceder a los recursos, consulta Otorga permiso a un flujo de trabajo para acceder a recursos de Google Cloud.
Tokens de autenticación
De forma predeterminada, las solicitudes HTTP no contienen tokens de identidad ni de acceso por motivos de seguridad. Debes agregar información de autenticación de forma explícita a la definición de tu flujo de trabajo.
Para autenticarse entre Workflows y un destino HTTP que requiera esa autenticación, Workflows usa un token en el encabezado de autorización según las credenciales de la cuenta de servicio adjunta al flujo de trabajo y lo envía a través de HTTPS al servicio de destino. Cuando te conectes con las funciones de Cloud Run o Cloud Run, usa un token de ID (OIDC). Para las APIs alojadas en
googleapis.com
, usa un
token de acceso (OAuth 2.0).
Para realizar una solicitud autenticada desde un flujo de trabajo, haz una de las siguientes acciones según el servicio al que llames:
APIs externas: Usa un encabezado de solicitud
Authorization
para autenticar con una API de terceros. En este documento, consulta Realiza solicitudes autenticadas a APIs externas.APIs de Google Cloud: Si está disponible, usa un conector de Workflows, que proporciona automáticamente la autenticación requerida con la cuenta de servicio del flujo de trabajo. Si no puedes usar un conector, usa una solicitud HTTP con OAuth 2.0 para conectarte con otras APIs de Google Cloud. Cualquier API que termine con un nombre de host de
.googleapis.com
acepta este método de autenticación. En este documento, consulta Cómo realizar solicitudes autenticadas a las APIs de Google Cloud.Funciones de Cloud Run o Cloud Run: Usa OIDC para conectarte con Cloud Run o funciones de Cloud Run. En este documento, consulta Cómo realizar solicitudes a Cloud Run o Cloud Run Functions.
Puntos de conexión privados locales, Compute Engine, Google Kubernetes Engine (GKE) o otros puntos de conexión de Google Cloud: Usa Identity-Aware Proxy (IAP) con OIDC para aplicar políticas de control de acceso a tus extremos. Para obtener más información, consulta Cómo invocar extremos privados en las instalaciones, Compute Engine, GKE o cualquier otro y aprende a autenticarte en un recurso protegido por IAP desde una cuenta de usuario o de servicio.
Realiza solicitudes autenticadas a APIs externas
Si integras una API de terceros, incluye un encabezado de solicitud Authorization
con las credenciales necesarias para llevar a cabo la autenticación. Por
ejemplo, incluye un token de ID en un
encabezado Authorization: Bearer ID_TOKEN
en la solicitud al
servicio. Para obtener más información, consulta la documentación del proveedor de la API.
Realiza solicitudes autenticadas a las APIs de Google Cloud
La cuenta de servicio de un flujo de trabajo puede generar tokens de OAuth 2.0 que el flujo de trabajo puede usar para autenticarse en cualquier API de Google Cloud. Cuando usas este método de autenticación, el flujo de trabajo se autentica como su cuenta de servicio asociada. Para realizar una solicitud HTTP con el protocolo OAuth 2.0, agrega una sección auth
a la sección args
de la definición de tu flujo de trabajo, después de especificar la URL. En este ejemplo, se envía una solicitud a la API de Compute Engine para detener una VM:
YAML
- step_A: call: http.post args: url: https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop auth: type: OAuth2 scopes: OAUTH_SCOPE
JSON
[ { "step_A": { "call": "http.post", "args": { "url": "https://compute.googleapis.com/compute/v1/projects/myproject1234/zones/us-central1-b/instances/myvm001/stop", "auth": { "type": "OAuth2", "scopes": "OAUTH_SCOPE" } } } } ]
scopes
es opcional, pero se puede usar para especificar los permisos de OAuth 2.0 del token. Reemplaza OAUTH_SCOPE
por una cadena o una lista de cadenas. También se admiten cadenas separadas por espacios y comas. De forma predeterminada, el valor se establece en https://www.googleapis.com/auth/cloud-platform
.
Realizar solicitudes a Cloud Run Functions o Cloud Run
Cuando realices solicitudes a funciones de Cloud Run o a Cloud Run, usa OIDC para la autenticación.
Para realizar una solicitud HTTP con OIDC, agrega una sección auth
a la sección args
de la definición de tu flujo de trabajo, después de especificar la URL. En este ejemplo, se envía una solicitud para invocar una función de Cloud Run:
YAML
- step_A: call: http.get args: url: https://us-central1-project.cloudfunctions.net/functionA query: firstNumber: 4 secondNumber: 6 operation: sum auth: type: OIDC audience: OIDC_AUDIENCE
JSON
[ { "step_A": { "call": "http.get", "args": { "url": "https://us-central1-project.cloudfunctions.net/functionA", "query": { "firstNumber": 4, "secondNumber": 6, "operation": "sum" }, "auth": { "type": "OIDC", "audience": "OIDC_AUDIENCE" } } } } ]
audience
es opcional, pero se puede usar para especificar el público de OIDC del token. De forma predeterminada, OIDC_AUDIENCE
se establece en el mismo valor que url
.
Ten en cuenta que Workflows puede invocar funciones o servicios de Cloud Run que tengan la entrada restringida al tráfico interno. Con esta configuración, no se puede acceder a tus servicios desde Internet, pero sí desde Workflows.
Para obtener más información, consulta Cómo invocar funciones de Cloud Run o Cloud Run.