Um authentifizierte HTTP-Anfragen stellen zu können, muss Ihr Workflow mit einem Dienstkonto (identifiziert durch seine E-Mail-Adresse) mit den entsprechenden Anmeldedaten. Weitere Informationen zum Anhängen einer Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) Dienstkonto mit einem Workflow verknüpfen und ihm die Berechtigungen gewähren, Auf Ressourcen zugreifen, siehe Workflowberechtigungen für den Zugriff auf Google Cloud-Ressourcen gewähren
Authentifizierungs-Tokens
Standardmäßig enthalten HTTP-Anfragen aus Sicherheitsgründen keine Identitäts- oder Zugriffstokens. Sie müssen der Workflow-Definition explizit Authentifizierungsinformationen hinzufügen.
Für die Authentifizierung zwischen Workflows und einem HTTP-Ziel, für das eine solche Authentifizierung erforderlich ist, verwendet Workflows ein Token im Autorisierungsheader, das auf den Anmeldedaten des Dienstkontos basiert, das mit dem Workflow verknüpft ist. Das Token wird dann über HTTPS an den Zieldienst gesendet. Verwenden Sie zum Herstellen einer Verbindung zu Cloud Run-Funktionen oder Cloud Run ein ID-Token (OIDC). Für APIs, die auf
googleapis.com
, verwenden Sie eine
access token (OAuth 2.0).
Um eine authentifizierte Anfrage aus einem Workflow zu senden, führen Sie einen der abhängig von dem aufgerufenen Dienst:
Externe APIs: Verwenden Sie einen
Authorization
-Anfrageheader, um sich bei einer Drittanbieter-API zu authentifizieren. In diesem Dokument Authentifizieren Sie Anfragen an externe APIs stellen.Google Cloud APIs: Verwenden Sie bei Verfügbarkeit einen Workflows-Connector, der die erforderliche Authentifizierung automatisch über das Dienstkonto des Workflows bereitstellt. Wenn Sie keinen Connector verwenden können, verwenden Sie eine HTTP-Anfrage mit OAuth 2.0, um eine Verbindung zu anderen Google Cloud APIs herzustellen. Beliebig Eine API, die mit dem Hostnamen
.googleapis.com
endet, akzeptiert diese Authentifizierung . In diesem Dokument Authentifizieren Sie Anfragen an Google Cloud APIs.Cloud Run-Funktionen oder Cloud Run: OIDC zum Herstellen einer Verbindung mit Cloud Run- oder Cloud Run-Funktionen. In diesem Dokument Siehe Anfragen an Cloud Run- oder Cloud Run-Funktionen senden
Private lokale, 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 durchzusetzen. Weitere Informationen Siehe Privaten lokalen Dienst aufrufen, Compute Engine, GKE oder einem anderen Endpunkt und mit einer mit IAP gesicherten Ressource Nutzer- oder 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 an die Compute Engine API gesendet, um eine VM zu beenden:
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 anzugeben.
Bereiche für das Token. Ersetzen Sie OAUTH_SCOPE
durch einen
String oder eine Liste von Strings enthält. Leerzeichen- und kommagetrennte Strings werden ebenfalls unterstützt. Standardmäßig ist der Wert auf
https://www.googleapis.com/auth/cloud-platform
Anfragen an Cloud Run Functions oder Cloud Run senden
Wenn Sie Anfragen an Cloud Run-Funktionen oder Cloud Run stellen, zur Authentifizierung OIDC verwenden.
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 Run-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
festgelegt
auf denselben Wert wie url
.
Es ist möglich, dass Workflows Cloud Run-Funktionen oder Cloud Run-Dienste, die eingehenden Traffic haben auf internen Traffic beschränkt. Mit dieser Konfiguration sind Ihre Dienste nicht über das Internet erreichbar, können aber über Workflows erreicht werden.
Weitere Informationen finden Sie unter Cloud Run-Funktionen oder Cloud Run aufrufen.