Guida rapida all'autenticazione con OAuth

L'API Gemini ti consente di eseguire il recupero semantico sui tuoi dati. Poiché i tuoi dati, richiedono controlli di accesso più rigidi rispetto alle chiavi API.

Questa guida rapida utilizza un approccio all'autenticazione semplificato appropriato per un ambiente di test. Per un ambiente di produzione, informazioni autenticazione e autorizzazione prima del giorno scelta delle credenziali di accesso che siano appropriati per la tua app.

Obiettivi

  • Configura il progetto cloud per OAuth
  • Configura le credenziali-predefinite dell'applicazione
  • Gestisci le credenziali nel programma anziché utilizzare gcloud auth

Prerequisiti

Per eseguire questa guida rapida, hai bisogno di:

Configura il tuo progetto cloud

Per completare questa guida rapida, devi prima configurare il progetto Cloud.

1. Abilita l'API

Prima di utilizzare le API di Google, devi attivarle in un progetto Google Cloud.

  • Nella console Google Cloud, abilita l'API Google Generative Language.

    Abilita l'API

2. Configurare la schermata per il consenso OAuth

A questo punto, configura la schermata per il consenso OAuth del progetto e aggiungiti come test utente. Se hai già completato questo passaggio per il tuo progetto Cloud, passa sezione successiva.

  1. Nella console Google Cloud, vai a Menu > API e Servizi > OAuth schermata per il consenso.

    Vai alla schermata per il consenso OAuth

  2. Seleziona il tipo di utente Esterno per la tua app e poi fai clic su Crea.

  3. Compila il modulo di registrazione dell'app (puoi lasciare la maggior parte dei campi vuoti). poi fai clic su Salva e continua.

  4. Per il momento, puoi saltare l'aggiunta di ambiti e fare clic su Salva e continua. Nella in futuro, quando creerai un'app da utilizzare al di fuori di Google Workspace devi aggiungere e verificare gli ambiti di autorizzazione richiede l'uso dell'app.

  5. Aggiungi utenti di test:

    1. In Utenti di test, fai clic su Aggiungi utenti.
    2. Inserisci il tuo indirizzo email e gli eventuali altri utenti di test autorizzati, fai clic su Salva e continua.
  6. Esamina il riepilogo della registrazione dell'app. Per apportare modifiche, fai clic su Modifica. Se se la registrazione dell'app è a posto, fai clic su Torna alla dashboard.

3. Autorizzare le credenziali per un'applicazione desktop

Per eseguire l'autenticazione come utente finale e accedere ai dati utente nella tua app, devi: Creare uno o più ID client OAuth 2.0. L'ID client viene utilizzato per identificare singola app ai server OAuth di Google. Se la tua app viene eseguita su più piattaforme, devi creare un ID cliente distinto per ogni piattaforma.

  1. Nella console Google Cloud, vai a Menu > API e Servizi > Credenziali.

    Vai a Credenziali

  2. Fai clic su Crea credenziali > ID client OAuth.

  3. Fai clic su Tipo di applicazione > App desktop.

  4. Nel campo Nome, digita un nome per la credenziale. Questo nome è mostrato nella console Google Cloud.

  5. Fai clic su Crea. Viene visualizzata la schermata di creazione del client OAuth, che mostra la nuova ID client e client secret.

  6. Fai clic su OK. La credenziale appena creata viene visualizzata nella sezione Client OAuth 2.0 ID.

  7. Fai clic sul pulsante di download per salvare il file JSON. Verrà salvato come client_secret_<identifier>.json e rinominala in client_secret.json e lo sposto nella directory di lavoro.

Configura le credenziali predefinite dell'applicazione

Per convertire il file client_secret.json in credenziali utilizzabili, passa il relativo del comando gcloud auth application-default login --client-id-file argomento.

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'

La configurazione semplificata del progetto in questo tutorial attiva un "Google non ha è stata verificata.". Questo è normale. Seleziona "continua".

Il token risultante viene posizionato in una posizione nota in modo che sia accessibile di gcloud o delle librerie client.

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'

Una volta impostate le credenziali predefinite dell'applicazione (ACD), il client le librerie nella maggior parte dei linguaggi hanno bisogno di un aiuto minimo o nullo per trovarle.

Curl

Il modo più rapido per verificare che tutto funzioni è utilizzarlo per accedere al REST utilizzando 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, le librerie client dovrebbero individuarle automaticamente:

pip install google-generativeai

Uno script minimo per testarlo potrebbe essere:

import google.generativeai as genai

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

Passaggi successivi

Se funziona, puoi provare Recupero semantico dei dati di testo.

Gestire le credenziali autonomamente [Python]

In molti casi non avrai a disposizione il comando gcloud per creare l'accesso dall'ID client (client_secret.json). Google fornisce biblioteche in molte lingue per consentirti di gestire il processo all'interno dell'app. Questa sezione il processo in Python. Esistono esempi equivalenti di questo tipo di procedura, per altre lingue, disponibili nella Documentazione dell'API Drive

1. Installa le librerie necessarie

Installa la libreria client di Google per Python e la libreria client Gemini.

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

2. Scrivi Gestore delle credenziali

Per ridurre al minimo il numero di volte in cui è necessario fare clic nelle istruzioni schermate, crea un file denominato load_creds.py nella directory di lavoro per memorizza nella cache un file token.json che può riutilizzare in un secondo momento o aggiorna se scade.

Inizia con seguente per convertire il file client_secret.json in un token utilizzabile con 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. Scrivi il tuo programma

Ora crea il tuo 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. Esegui il programma

Nella directory di lavoro, esegui l'esempio:

python script.py

La prima volta che esegui lo script, si apre una finestra del browser e ti chiede per autorizzare l'accesso.

  1. Se non hai ancora eseguito l'accesso al tuo Account Google, ti viene richiesto di accedi. Se hai eseguito l'accesso a più account, assicurati di selezionare Account impostato come "Account di prova" durante la configurazione del progetto.

  2. Le informazioni sull'autorizzazione vengono memorizzate nel file system, quindi la prossima volta eseguire il codice campione, non ti viene richiesta l'autorizzazione.

Hai configurato correttamente l'autenticazione.