Kurzanleitung zur Authentifizierung mit OAuth

Mit der Gemini API können Sie Ihre eigenen Daten semantisch abrufen. Da es sich um Ihre Daten benötigen, sind dafür strengere Zugriffskontrollen als API-Schlüssel erforderlich.

In dieser Kurzanleitung wird ein vereinfachter Authentifizierungsansatz verwendet, für eine Testumgebung. Für eine Produktionsumgebung Info Authentifizierung und Autorisierung vorher Anmeldedaten auswählen die für Ihre App geeignet sind.

Zielsetzungen

  • Cloud-Projekt für OAuth einrichten
  • Standardanmeldedaten für Anwendungen einrichten
  • Anmeldedaten in deinem Programm verwalten, anstatt gcloud auth zu verwenden

Vorbereitung

Zum Ausführen dieser Kurzanleitung benötigen Sie Folgendes:

Cloud-Projekt einrichten

Für diese Kurzanleitung müssen Sie zuerst Ihr Cloud-Projekt einrichten.

1. API aktivieren

Bevor Sie Google APIs verwenden können, müssen Sie sie in einem Google Cloud-Projekt aktivieren.

  • Aktivieren Sie in der Google Cloud Console die Google Generative Language API.

    API aktivieren

2. OAuth-Zustimmungsbildschirm konfigurieren

Konfigurieren Sie als Nächstes den OAuth-Zustimmungsbildschirm des Projekts und fügen Sie sich selbst als Test hinzu Nutzer. Wenn Sie diesen Schritt für Ihr Cloud-Projekt bereits ausgeführt haben, fahren Sie mit dem nächsten Abschnitt.

  1. Rufen Sie in der Google Cloud Console das Menü auf > APIs und Dienste > OAuth Zustimmungbildschirm.

    Zum OAuth-Zustimmungsbildschirm

  2. Wählen Sie für Ihre Anwendung den Nutzertyp Extern aus und klicken Sie dann auf Erstellen.

  3. Füllen Sie das App-Registrierungsformular aus (die meisten Felder können leer bleiben). Klicken Sie dann auf Speichern und fortfahren.

  4. Vorerst können Sie das Hinzufügen von Bereichen überspringen und auf Speichern und fortfahren klicken. Im wenn Sie eine App zur Verwendung außerhalb Ihres Google Workspace-Kontos erstellen. Organisation gehören, müssen Sie die Autorisierungsbereiche, die Ihre die für die App erforderlich sind.

  5. Testnutzer hinzufügen:

    1. Klicken Sie unter Testnutzer auf Nutzer hinzufügen.
    2. Geben Sie Ihre E-Mail-Adresse und weitere autorisierte Testnutzer ein. Klicken Sie auf Speichern und fortfahren.
  6. Überprüfen Sie Ihre App-Registrierungsübersicht. Klicken Sie auf Bearbeiten, um Änderungen vorzunehmen. Wenn die App-Registrierung in Ordnung ist, klicken Sie auf Zurück zum Dashboard.

3. Anmeldedaten für eine Desktopanwendung autorisieren

Für die Authentifizierung als Endnutzer und für den Zugriff auf Nutzerdaten in Ihrer Anwendung müssen Sie mindestens eine OAuth 2.0-Client-ID erstellen. Eine Client-ID wird zur Identifizierung einer einzelnen Anwendung bei Googles OAuth-Servern verwendet. Wenn Ihre App auf mehreren Plattformen läuft, müssen Sie für jede Plattform eine separate Client-ID erstellen.

  1. Rufen Sie in der Google Cloud Console das Menü auf > APIs und Dienste > Anmeldedaten:

    „Anmeldedaten“ aufrufen

  2. Klicken Sie auf Anmeldedaten erstellen. OAuth-Client-ID.

  3. Klicken Sie auf Anwendungstyp > Desktop-App:

  4. Geben Sie in das Feld Name einen Namen für die Anmeldedaten ein. Dieser Name ist nur in der Google Cloud Console angezeigt.

  5. Klicken Sie auf Erstellen. Der Bildschirm "OAuth-Client erstellt" wird angezeigt. Client-ID und Clientschlüssel.

  6. Klicken Sie auf OK. Die neu erstellten Anmeldedaten werden unter OAuth 2.0-Client IDs.

  7. Klicken Sie auf die Schaltfläche zum Herunterladen, um die JSON-Datei zu speichern. Sie wird gespeichert unter client_secret_<identifier>.json und benennen Sie ihn in client_secret.json um und in Ihr Arbeitsverzeichnis verschieben.

Standardanmeldedaten für Anwendungen einrichten

Um die Datei client_secret.json in brauchbare Anmeldedaten zu konvertieren, übergeben Sie ihre Speicherort des Befehls gcloud auth application-default login --client-id-file-Argument.

gcloud auth application-default login \
    --client-id-file=client_secret.json \
    --scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

Die vereinfachte Projekteinrichtung in dieser Anleitung löst eine "Google hat hat diese App bestätigt.“ angezeigt. Das ist normal. Wählen Sie Weiter aus.

Dadurch wird das resultierende Token an einem bekannten Speicherort abgelegt, sodass darauf zugegriffen werden kann. durch gcloud oder die Clientbibliotheken.

gcloud auth application-default login 
--no-browser --client-id-file=client_secret.json
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

Nachdem Sie die Standardanmeldedaten für Anwendungen (ACD) festgelegt haben, Bibliotheken in den meisten Sprachen nur wenig bis gar keine Hilfe benötigen, um sie zu finden.

Curl

Am schnellsten können Sie testen, ob dies funktioniert, wenn Sie damit auf die REST API zugreifen. API mit curl:

access_token=$(gcloud auth application-default print-access-token)
project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1/models \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer ${access_token}" \
    -H "x-goog-user-project: ${project_id}" | grep '"name"'

Python

In Python sollten sie von den Clientbibliotheken automatisch gefunden werden:

pip install google-generativeai

Hier ist ein minimales Skript zum Testen:

import google.generativeai as genai

print('Available base models:', [m.name for m in genai.list_models()])

Nächste Schritte

Wenn das funktioniert, können Sie Semantische Abfrage Ihrer Textdaten:

Anmeldedaten selbst verwalten [Python]

In vielen Fällen ist der Befehl gcloud nicht verfügbar, um den Zugriff zu erstellen Token von der Client-ID (client_secret.json). Google stellt Bibliotheken in viele Sprachen, damit Sie diesen Prozess in Ihrer App verwalten können. Dieser Abschnitt demonstriert der Prozess in Python. Es gibt gleichwertige Beispiele für diese Art Weitere Sprachen finden Sie in der Drive API-Dokumentation

1. Erforderliche Bibliotheken installieren

Installieren Sie die Google-Clientbibliothek für Python und die Gemini-Clientbibliothek.

pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai

2. Anmeldedaten-Manager schreiben

Damit Sie die Autorisierung so wenig wie möglich durchklicken müssen Bildschirmen öffnen, erstellen Sie eine Datei mit dem Namen load_creds.py in Ihrem Arbeitsverzeichnis, speichert eine token.json-Datei im Cache, die sie später wiederverwenden oder bei Ablauf aktualisieren kann.

Beginnen Sie mit der den folgenden Code zum Konvertieren der Datei client_secret.json in ein Token, das mit genai.configure:

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/generative-language.retriever']

def load_creds():
    """Converts `client_secret.json` to a credential object.

    This function caches the generated tokens to minimize the use of the
    consent screen.
    """
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'client_secret.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.json', 'w') as token:
            token.write(creds.to_json())
    return creds

3. Programm schreiben

Erstellen Sie jetzt Ihr script.py:

import pprint
import google.generativeai as genai
from load_creds import load_creds

creds = load_creds()

genai.configure(credentials=creds)

print()
print('Available base models:', [m.name for m in genai.list_models()])

4. Programm ausführen

Führen Sie das Beispiel in Ihrem Arbeitsverzeichnis aus:

python script.py

Wenn Sie das Skript zum ersten Mal ausführen, wird ein Browserfenster geöffnet und Sie werden gefragt, um den Zugriff zu autorisieren.

  1. Wenn Sie noch nicht in Ihrem Google-Konto angemeldet sind, werden Sie aufgefordert, melden Sie sich an. Wenn Sie in mehreren Konten angemeldet sind, wählen Sie das -Konto, das Sie als "Testkonto" festgelegt haben wenn Sie Ihr Projekt konfigurieren.

  2. Autorisierungsinformationen werden im Dateisystem gespeichert. Wenn Sie das nächste Mal den Beispielcode ausführen, werden Sie nicht zur Autorisierung aufgefordert.

Sie haben die Authentifizierung eingerichtet.