Authentifizierte Anfragen von einem Workflow aus ausführen

Damit authentifizierte HTTP-Anfragen gesendet werden 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 Erteilen der Berechtigungen, die für den Zugriff auf Ressourcen erforderlich sind, finden Sie unter Workflow die Berechtigung zum Zugriff auf Google Cloud -Ressourcen erteilen.

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 an den Workflow angehängten Dienstkontos basiert, und sendet das Token über HTTPS an den Zieldienst. Verwenden Sie beim Herstellen einer Verbindung zu Cloud Run Functions oder Cloud Run ein ID-Token (OIDC). Für APIs, die auf googleapis.com gehostet werden, verwenden Sie ein Zugriffstoken (OAuth 2.0).

Für eine authentifizierte Anfrage innerhalb eines Workflows können Sie je nach aufgerufenem Dienst eine der folgenden Methoden verwenden:

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-Tokens generieren, mit denen 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"
            }
          }
        }
      }
    ]
      
Der Schlüssel scopes ist optional, kann jedoch 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 durch Kommas getrennte Strings werden ebenfalls unterstützt. Standardmäßig ist der Wert auf https://www.googleapis.com/auth/cloud-platform gesetzt.

Anfragen an Cloud Run Functions oder Cloud Run senden

Verwenden Sie OIDC zur Authentifizierung von Anfragen an Cloud Run 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 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"
            }
          }
        }
      }
    ]
      
Der Schlüssel 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 Run-Funktionen oder Cloud Run-Dienste aufrufen können, die eingehenden Traffic auf internen Traffic beschränken. 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.

Nächste Schritte