API-Anfragen authentifizieren

Die Air-Gap-Appliance für Vertex AI in Google Distributed Cloud (GDC) bietet APIs und Dienste, für die eine Authentifizierung erforderlich ist. Bei der Authentifizierung weisen Sie Ihre Identität nach, um mit Tokens auf Dienste zuzugreifen.

Tokens sind digitale Objekte, die bestätigen, dass ein Aufrufer die richtigen Anmeldedaten bereitgestellt hat und dass diese erfolgreich gegen das Token eingetauscht wurden. Das Token enthält Informationen zur Identität des anfragenden Kontos und zum spezifischen Zugriff, für den es autorisiert ist.

Auf dieser Seite wird beschrieben, wie Sie sich programmatisch bei Vertex AI-APIs authentifizieren. Je nachdem, ob Sie als Nutzer oder mit einem Dienstkonto auf die Vertex AI APIs zugreifen, werden auf dieser Seite die Schritte zum Abrufen eines Authentifizierungstokens für Ihre API-Anfragen beschrieben.

Wählen Sie eine der folgenden Optionen aus, um ein Authentifizierungstoken zu erhalten:

Nutzerkonto

So erhalten Sie ein Authentifizierungstoken mit Nutzerberechtigungen:

  1. Notieren Sie sich den Endpunkt der API, die Sie verwenden möchten.

  2. Gewähren Sie Ihrem Nutzerkonto die entsprechende Rolle, die unter IAM-Berechtigungen vorbereiten aufgeführt ist, um Zugriff auf den Vertex AI-Dienst zu erhalten, den Sie verwenden möchten.

  3. Melden Sie sich mit dem Nutzerkonto, das Sie für die Interaktion mit der API benötigen, auf der GDC-Appliance an, die nicht mit dem Internet verbunden ist:

    gdcloud auth login
    
  4. Authentifizierungstoken abrufen:

    gdcloud auth print-identity-token --audiences=https://ENDPOINT
    

    Ersetzen Sie ENDPOINT durch den Dienstendpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen

    Je nach Verwendungszweck des Authentifizierungstokens müssen Sie möglicherweise den Port nach dem Dienstendpunkt im Zielgruppenpfad angeben:

    • Wenn Sie eine Clientbibliothek für Ihre Anfrage verwenden, müssen Sie Port :443 nach dem Dienstendpunkt im Zielgruppenpfad angeben. Daher muss der Pfad --audiences im Befehl https://ENDPOINT:443 lauten.
    • Wenn Sie gRPC, curl oder programmatische REST-Aufrufe für Ihre Anfrage verwenden, lassen Sie den Port weg. Daher muss der Pfad --audiences im Befehl https://ENDPOINT lauten.

In der Ausgabe wird das Authentifizierungstoken angezeigt. Fügen Sie das Token dem Header der Befehlszeilenanfragen hinzu, die Sie stellen, wie im folgenden Beispiel:

-H "Authorization: Bearer TOKEN"

Ersetzen Sie TOKEN durch den Wert für das Authentifizierungstoken, der in der Ausgabe angezeigt wird.

Dienstkonto

So rufen Sie ein Authentifizierungstoken mit einem Dienstkonto ab:

  1. Notieren Sie sich den Endpunkt der API, die Sie verwenden möchten.

  2. Richten Sie das Dienstkonto ein, mit dem Sie auf den Vertex AI-Dienst zugreifen möchten.

  3. Weisen Sie dem Dienstkonto die entsprechende Rolle zu, die unter IAM-Berechtigungen vorbereiten aufgeführt ist, damit es Zugriff auf den Dienst erhält, den Sie verwenden möchten.

  4. Rufen Sie die Dienstschlüsselpaare Ihres Dienstkontos ab.

  5. Installieren Sie die google-auth-Clientbibliothek:

    pip install google-auth
    
  6. Fügen Sie einem Python-Skript den folgenden Code hinzu:

    import os
    import google.auth
    from google.auth.transport import requests
    import requests as reqs
    
    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY"
    os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME"
    
    # If you use a client library for your request,
    # you must include port :443 after the service endpoint
    # in the audience path.
    audience = "https://ENDPOINT"
    
    creds, project_id = google.auth.default()
    print(project_id)
    creds = creds.with_gdch_audience(audience)
    
    def test_get_token():
      sesh = reqs.Session()
      req = requests.Request(session=sesh)
      creds.refresh(req)
      print(creds.token)
    
    if __name__=="__main__":
      test_get_token()
    

    Ersetzen Sie Folgendes:

    • PATH_TO_SERVICE_KEY: der Pfad zur JSON-Datei, die die Schlüsselpaare Ihres Dienstkontos enthält.
    • CERT_NAME: der Name der Zertifikatsdatei der Zertifizierungsstelle (Certificate Authority, CA), z. B. org-1-trust-bundle-ca.cert. Sie benötigen diesen Wert nur in einer Entwicklungsumgebung. Andernfalls lassen Sie es weg.
    • ENDPOINT: der Dienstendpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen Je nach Verwendungszweck des Authentifizierungstokens müssen Sie möglicherweise den Port nach dem Dienstendpunkt im Zielgruppenpfad angeben:

      • Wenn Sie eine Clientbibliothek für Ihre Anfrage verwenden, müssen Sie Port :443 nach dem Dienstendpunkt im Zielgruppenpfad angeben. Daher muss der Pfad audience im Skript "https://ENDPOINT:443" lauten.
      • Wenn Sie gRPC, curl oder programmatische REST-Aufrufe für Ihre Anfrage verwenden, lassen Sie den Port weg. Daher muss der Pfad audience im Skript "https://ENDPOINT" lauten.
  7. Speichern Sie das Python-Skript.

  8. Führen Sie das Python-Skript aus, um das Token abzurufen:

    python SCRIPT_NAME
    

    Ersetzen Sie SCRIPT_NAME durch den Namen, den Sie Ihrem Python-Skript gegeben haben, z. B. token.py.

In der Ausgabe wird das Authentifizierungstoken angezeigt. Fügen Sie das Token dem Header der Befehlszeilenanfragen hinzu, die Sie stellen, wie im folgenden Beispiel:

-H "Authorization: Bearer TOKEN"

Ersetzen Sie TOKEN durch den Wert für das Authentifizierungstoken, der in der Ausgabe angezeigt wird.