API-Anfragen authentifizieren

Die air-gapped Appliance von Vertex AI auf 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 angegeben hat und dass diese erfolgreich gegen das Token ausgetauscht 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 rufen Sie ein Authentifizierungstoken mit Nutzerberechtigungen ab:

  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, mit dem Sie mit der API interagieren müssen, bei der air-gapped Appliance von GDC an:

    gdcloud auth login
    
  4. Rufen Sie das Authentifizierungstoken ab:

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

    Ersetzen Sie ENDPOINT durch den Dienstendpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte.

    Je nach beabsichtigter Verwendung des Authentifizierungstokens müssen Sie möglicherweise den Port nach dem Dienstendpunkt im Pfad der Zielgruppen angeben:

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

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, das 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. Gewähren Sie dem Dienstkonto die entsprechende Rolle, 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 Serviceschlüsselpaare Ihres Dienstkontos ab.

  5. Installieren Sie die Clientbibliothek google-auth:

    pip install google-auth
    
  6. Fügen Sie das folgende Skript zu einem Python-Skript 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. Dieser Wert ist nur erforderlich, wenn Sie sich in einer Entwicklungsumgebung befinden. Andernfalls lassen Sie ihn weg.
    • ENDPOINT: der Dienstendpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte. Je nach beabsichtigter Verwendung des Authentifizierungstokens müssen Sie möglicherweise den Port nach dem Dienstendpunkt im Pfad der Zielgruppe angeben:

      • Wenn Sie eine Clientbibliothek für Ihre Anfrage verwenden, müssen Sie den Port :443 nach dem Dienstendpunkt im Pfad der Zielgruppe angeben. Daher muss der audience Pfad im Skript "https://ENDPOINT:443" sein.
      • Wenn Sie gRPC, curl oder programmatische REST-Aufrufe für Ihre Anfrage verwenden, geben Sie den Port nicht an. Daher muss der audience Pfad im Skript "https://ENDPOINT" sein.
  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, das in der Ausgabe angezeigt wird.