Para hacer solicitudes HTTP autenticadas, tu flujo de trabajo debe estar asociado a 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 asignar una cuenta de servicio de gestión de identidades y accesos (IAM) a un flujo de trabajo y concederle los permisos necesarios para acceder a los recursos, consulta Conceder a un flujo de trabajo permiso para acceder a recursos 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 añadir explícitamente la información de autenticación a la definición de tu flujo de trabajo.
Para autenticar la comunicación entre Workflows y un destino HTTP que requiera este tipo de autenticación, Workflows usa un token en el encabezado de autorización basado en las credenciales de la cuenta de servicio asociada al flujo de trabajo y envía el token mediante HTTPS al servicio de destino. Cuando te conectes con funciones de Cloud Run o Cloud Run, usa un token de ID (OIDC). En el caso de las APIs alojadas en
googleapis.com
, usa un
token de acceso (OAuth 2.0).
Para hacer una solicitud autenticada desde un flujo de trabajo, haz una de las siguientes acciones en función del servicio al que llames:
APIs externas: usa un encabezado de solicitud
Authorization
para autenticarte con una API de terceros. En este documento, consulta la sección Enviar solicitudes autenticadas a APIs externas.Google Cloud APIs: si está disponible, usa un conector de Workflows, que proporciona automáticamente la autenticación necesaria mediante la cuenta de servicio del flujo de trabajo. Si no puedes usar un conector, utiliza una solicitud HTTP con OAuth 2.0 para conectarte con otras APIs. Google Cloud Cualquier API que termine con el nombre de host
.googleapis.com
acepta este método de autenticación. En este documento, consulta Enviar solicitudes autenticadas a APIs Google Cloud .Cloud Run Functions o Cloud Run: usa OIDC para conectarte con Cloud Run o Cloud Run Functions. En este documento, consulta Enviar solicitudes a Cloud Run o Cloud Run Functions.
Endpoints privados locales, de Compute Engine, de Google Kubernetes Engine (GKE) u otros: Google Cloud usa Identity-Aware Proxy (IAP) con OIDC para aplicar políticas de control de acceso a tus endpoints. Para obtener más información, consulta Invocar un endpoint privado local, de Compute Engine, de GKE o de otro tipo y cómo autenticarte en un recurso protegido por IAP desde una cuenta de usuario o de servicio.
Enviar solicitudes autenticadas a APIs externas
Si vas a integrar 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.
Enviar 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 hacer una solicitud HTTP mediante el protocolo OAuth 2.0, añade 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 máquina virtual:
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 ámbitos de OAuth 2.0 del token. Sustituye 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 es https://www.googleapis.com/auth/cloud-platform
.
Enviar solicitudes a Cloud Run Functions o Cloud Run
Cuando hagas solicitudes a funciones de Cloud Run o a Cloud Run, usa OIDC para autenticarte.
Para hacer una solicitud HTTP mediante OIDC, añade 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 la audiencia de OIDC del token. De forma predeterminada, OIDC_AUDIENCE
tiene el mismo valor que url
.
Ten en cuenta que los workflows pueden invocar funciones o servicios de Cloud Run que tengan el tráfico de entrada restringido 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 Invocar funciones de Cloud Run o Cloud Run.