Pour effectuer des requêtes HTTP authentifiées, votre workflow doit être associé à un (identifié par son adresse e-mail) disposant du rôle identifiants de connexion. Pour en savoir plus sur l'association d'un compte de service IAM (Identity and Access Management) à un workflow et sur l'octroi des autorisations requises pour accéder aux ressources, consultez la section Accorder à un workflow l'autorisation d'accéder aux ressources Google Cloud.
Jetons d'authentification
Par défaut, les requêtes HTTP ne contiennent pas de jetons d'identité ou d'accès pour des raisons de sécurité. Vous devez explicitement ajouter des informations d'authentification à votre définition de workflow.
Pour s'authentifier entre Workflows et une cible HTTP qui nécessite une telle
Workflows utilise un jeton dans l'authentification
basé sur les identifiants du compte de service associé au workflow,
et envoie le jeton à l'aide de HTTPS
au service cible. Lorsque vous vous connectez à des fonctions Cloud Run ou à Cloud Run, utilisez un jeton d'ID (OIDC). Pour les API hébergées sur
googleapis.com
, utilisez un
jeton d'accès (OAuth 2.0).
Pour effectuer une requête authentifiée à partir d'un workflow, effectuez l'une des opérations suivantes en fonction du service que vous appelez :
API externes : utilisez un en-tête de requête
Authorization
pour vous authentifier auprès d'une API tierce. Dans ce document, consultez la section Envoyer des requêtes authentifiées aux API externes.API Google Cloud : si disponible, utilisez un Workflows connecteur, qui fournit automatiquement l'authentification requise à l'aide du compte de service du workflow. Si vous ne pouvez pas utilisez un connecteur, utilisez une requête HTTP avec OAuth 2.0 pour se connecter à d'autres API Google Cloud. N'importe quelle valeur L'API qui se termine par le nom d'hôte
.googleapis.com
accepte cette authentification . Dans ce document, consultez la section Envoyer des requêtes authentifiées aux API Google Cloud.Fonctions Cloud Run ou Cloud Run : utilisez OIDC pour vous connecter avec des fonctions Cloud Run ou Cloud Run. Dans ce document, voir Envoyer des requêtes aux fonctions Cloud Run ou Cloud Run
Private on-premises, Compute Engine, Google Kubernetes Engine (GKE) ou autres points de terminaison Google Cloud : utilisez Identity-Aware Proxy (IAP) avec OIDC pour appliquer des règles de contrôle des accès à vos points de terminaison. Pour en savoir plus, consultez Appeler un point de terminaison privé sur site, Compute Engine, GKE ou autre et découvrez comment vous authentifier auprès d'une ressource sécurisée par IAP à partir d'un compte utilisateur ou de service.
Envoyer des requêtes authentifiées aux API externes
Si vous intégrez une API tierce, incluez un en-tête de requête Authorization
avec les identifiants nécessaires pour effectuer l'authentification. Par exemple, incluez un jeton d'ID dans un en-tête Authorization: Bearer ID_TOKEN
dans la requête adressée au service. Pour plus d'informations, consultez la documentation du fournisseur d'API.
Envoyer des requêtes authentifiées aux API Google Cloud
Le compte de service d'un workflow peut générer des jetons OAuth 2.0 que le workflow peut utiliser pour s'authentifier auprès de n'importe quelle API Google Cloud. Lorsque vous utilisez cette méthode d'authentification, le workflow s'authentifie en tant que compte de service associé. Pour effectuer une requête HTTP à l'aide du protocole OAuth 2.0, ajoutez une section auth
à la section args
de la définition de votre workflow, après avoir spécifié l'URL. Dans cet exemple, une requête est envoyée à l'API Compute Engine pour arrêter une 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
est facultative, mais elle peut être utilisée pour spécifier OAuth 2.0
et niveaux d'accès associés au jeton. Remplacez OAUTH_SCOPE
par une chaîne ou une liste de chaînes. Les chaînes séparées par des espaces et des virgules sont également
compatibles. Par défaut, la valeur est définie sur https://www.googleapis.com/auth/cloud-platform
.
Envoyer des requêtes à des fonctions Cloud Run ou à Cloud Run
Lorsque vous envoyez des requêtes à des fonctions Cloud Run ou à Cloud Run, utilisez OIDC pour l'authentification.
Pour effectuer une requête HTTP à l'aide d'OIDC, ajoutez une section auth
à la section args
de la définition de votre workflow, après avoir spécifié l'URL. Dans cet exemple, une requête est envoyée pour appeler une fonction 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
est facultative, mais peut être utilisée pour spécifier l'audience OIDC du jeton. Par défaut, OIDC_AUDIENCE
est défini sur la même valeur que url
.
Notez qu'il est possible que Workflows appelle des fonctions ou des services Cloud Run dont l'entrée est limitée au trafic interne. Avec cette configuration, vos services inaccessible depuis Internet, mais accessible à partir de Workflows.
Pour en savoir plus, consultez la section Appeler des fonctions Cloud Run ou Cloud Run.