Um authentifizierte HTTP-Anfragen stellen zu können, muss Ihr Workflow mit einem Dienstkonto (identifiziert durch seine E-Mail-Adresse) verknüpft sein, das die entsprechenden Anmeldedaten hat. Weitere Informationen zum Anhängen eines IAM-Dienstkontos (Identity and Access Management) an einen Workflow und zum Gewähren der Berechtigungen, die für den Zugriff auf Ressourcen erforderlich sind, finden Sie unter Workflowberechtigung für den Zugriff auf Google Cloud-Ressourcen gewähren.
Authentifizierungs-Tokens
HTTP-Anfragen enthalten aus Sicherheitsgründen standardmäßig keine Identitäts- oder Zugriffstokens. Sie müssen der Workflow-Definition explizit Authentifizierungsinformationen hinzufügen.
Zur Authentifizierung zwischen Workflows und einem HTTP-Ziel, das eine solche Authentifizierung erfordert, verwendet Workflows ein Token im Autorisierungsheader, der auf den Anmeldedaten des an den Workflow angehängten Dienstkontos basiert, und sendet das Token über HTTPS an den Zieldienst. Verwenden Sie für die Verbindung mit Cloud Functions oder Cloud Run ein ID-Token (OIDC). Verwenden Sie für APIs, die auf googleapis.com
gehostet werden, ein Zugriffstoken (OAuth 2.0).
Um eine authentifizierte Anfrage innerhalb eines Workflows zu stellen, führen Sie je nach aufgerufenem Dienst einen der folgenden Schritte aus:
Externe APIs: Verwenden Sie einen
Authorization
-Anfrageheader, um sich bei einer Drittanbieter-API zu authentifizieren. In diesem Dokument erfahren Sie unter Authentifizierte Anfragen an externe APIs senden.Google Cloud APIs: Verwenden Sie, falls verfügbar, einen Workflow-Connector, der automatisch die erforderliche Authentifizierung über das Dienstkonto des Workflows bereitstellt. Wenn Sie keinen Connector verwenden können, nutzen Sie eine HTTP-Anfrage mit OAuth 2.0, um eine Verbindung zu anderen Google Cloud APIs herzustellen. Diese Authentifizierungsmethode wird von jeder API akzeptiert, die mit dem Hostnamen
.googleapis.com
endet. In diesem Dokument erfahren Sie unter Authentifizierte Anfragen an Google Cloud APIs stellen.Cloud Functions oder Cloud Run: Verwenden Sie OIDC, um eine Verbindung zu Cloud Run oder Cloud Functions herzustellen. In diesem Dokument finden Sie unter Anfragen an Cloud Run oder Cloud Functions senden.
Private lokale Umgebung, Compute Engine, Google Kubernetes Engine (GKE) oder andere Google Cloud-Endpunkte: Verwenden Sie Identity-Aware Proxy (IAP) mit OIDC, um Zugriffssteuerungsrichtlinien für Ihre Endpunkte zu erzwingen. Weitere Informationen finden Sie unter Privaten lokalen Endpunkt, Compute Engine, GKE oder einen anderen Endpunkt aufrufen und Informationen zum Authentifizieren bei einer mit IAP gesicherten Ressource über einen Nutzer oder ein Dienstkonto.
Authentifizierte Anfragen an externe APIs senden
Wenn Sie eine API eines Drittanbieters einbinden, fügen Sie einen Authorization
-Anfrageheader mit den Anmeldedaten ein, die für die Authentifizierung erforderlich sind. Fügen Sie beispielsweise ein ID-Token in den Header Authorization: Bearer ID_TOKEN
der Anfrage an den Dienst ein. Weitere Informationen finden Sie in der Dokumentation des API-Anbieters.
Authentifizierte Anfragen an Google Cloud APIs stellen
Das Dienstkonto eines Workflows kann OAuth 2.0-Token generieren, mit dem sich der Workflow bei jeder Google Cloud API authentifizieren kann. Wenn Sie diese Authentifizierungsmethode verwenden, wird der Workflow als zugehöriges Dienstkonto authentifiziert. Um eine HTTP-Anfrage mit dem OAuth 2.0-Protokoll zu stellen, fügen Sie einen Abschnitt auth
zum Abschnitt args
der Workflow-Definition hinzu, nachdem Sie die URL angegeben haben. In diesem Beispiel wird eine Anfrage zum Beenden einer VM an die Compute Engine API gesendet:
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
ist optional, kann aber verwendet werden, um OAuth 2.0-Bereiche für das Token anzugeben. Ersetzen Sie OAUTH_SCOPE
durch einen String oder eine Liste von Strings. Leerzeichen und kommagetrennte Strings werden ebenfalls unterstützt. Standardmäßig ist der Wert auf https://www.googleapis.com/auth/cloud-platform
festgelegt.
Anfragen an Cloud Functions oder Cloud Run senden
Verwenden Sie OIDC zur Authentifizierung von Anfragen an Cloud Functions oder Cloud Run.
Um eine HTTP-Anfrage mit OIDC zu senden, fügen Sie den Abschnitt auth
in den Abschnitt args
der Workflowdefinition ein, nachdem Sie die URL angegeben haben. In diesem Beispiel wird eine Anfrage gesendet, um eine Cloud Functions-Funktion aufzurufen:
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
ist optional, kann aber verwendet werden, um die OIDC-Zielgruppe für das Token anzugeben. Standardmäßig ist OIDC_AUDIENCE
auf denselben Wert wie url
festgelegt.
Beachten Sie, dass Workflows Cloud Functions- oder Cloud Run-Dienste aufrufen können, bei denen eingehender Traffic auf internen Traffic beschränkt ist. Mit dieser Konfiguration sind Ihre Dienste über das Internet nicht erreichbar, können aber über Workflows erreicht werden.
Weitere Informationen finden Sie unter Cloud Functions oder Cloud Run aufrufen.