Limitare le richieste ai soli utenti autenticati

Puoi applicare la modalità utenti autenticati per il tuo progetto Firebase. Se applicata, tutte le richieste Gemini API tramite Firebase AI Logic devono provenire da utenti autenticati della tua app. In particolare, l'utente finale della tua app deve essere autenticato utilizzando Firebase Authentication prima di inviare una richiesta a Firebase AI Logic dalla tua app. Se l'utente finale non è autenticato, la richiesta viene bloccata.

Quando una richiesta viene bloccata, la risposta sarà un errore 401: unauthenticated.

Considerazioni importanti

Tieni presente le seguenti considerazioni importanti per la modalità utenti autenticati.

Quando viene applicata la modalità utenti autenticati

Quando viene applicata la modalità utenti autenticati, tieni presente quanto segue:

  • Questa è un'impostazione a livello di progetto per Firebase AI Logic.

    • Si applica a tutte le app registrate nel progetto.
    • Si applica solo al progetto in cui viene applicato.
  • Questa impostazione blocca tutte le richieste tramite Firebase AI Logic che non inviano le credenziali di Firebase Authentication.

    • L'utente deve essere autenticato tramite Firebase Authentication prima di inviare la richiesta a Firebase AI Logic.
    • Questa impostazione si applica a tutte le richieste tramite Firebase AI Logic sia a Gemini Developer API sia a Agent Platform Gemini API (formerly Vertex AI).
    • Questa impostazione si applica a tutte le richieste che utilizzano template di prompt del server.
    • Questa impostazione non può essere applicata per utente, per API o per modello.
  • Questa impostazione non blocca le richieste Gemini API nel tuo progetto che non vengono effettuate tramite Firebase AI Logic.

  • Se utilizzi la modalità ibrida/on-device:

    • Questa impostazione blocca le richieste al modello ospitato nel cloud se l'utente non è autenticato.
    • Questa impostazione non blocca le richieste al modello on-device, indipendentemente dallo stato di autenticazione dell'utente.
  • Se utilizzi l'Gemini Live API:

    • Questa impostazione blocca l'utilizzo dell'API Gemini Live per le app web quando si utilizza Firebase AI Logic, anche per gli utenti autenticati. Sono incluse le app web che utilizzano l'SDK Firebase JS o le app web Flutter.
  • Se utilizzi l'API REST Firebase AI Logic:

    • Questa impostazione blocca le richieste di inferenza che non inviano le credenziali Firebase Authentication. Sono incluse le richieste di template di prompt del server come templateGenerateContent o templateStreamGenerateContent.
    • Questa impostazione non blocca le richieste del control plane (come quelle per la gestione di modelli e configurazioni) perché sono protette da IAM.
  • Questa impostazione non blocca le richieste a countTokens (l'API Count Tokens).

Prima di applicare la modalità utenti autenticati

Tieni presente quanto segue prima di applicare la modalità utenti autenticati:

  • Se hai versioni esistenti della tua app che non utilizzano Firebase Authentication:

    • Questa impostazione bloccherà le richieste tramite Firebase AI Logic da queste versioni dell'app esistenti.
    • Assicurati che tutti i client attivi siano stati aggiornati per utilizzare Firebase Authentication prima di applicare la modalità utenti autenticati.
  • Le versioni precedenti del plug-in Flutter richiedono una creazione di istanze speciale per inviare le credenziali Firebase Authentication con le richieste.

    • Se la tua app utilizza il plug-in Flutter firebase_ai v3.11.0 o versioni precedenti (BoM v4.12.0 o versioni precedenti) e non passa Authentication durante l'inizializzazione, questa impostazione bloccherà le richieste tramite Firebase AI Logic, anche per gli utenti autenticati.
    • Assicurati che tutti i client attivi per Flutter siano stati aggiornati a una versione più recente del plug-in prima di applicare la modalità per utenti autenticati.

Configura Firebase Authentication

La documentazione di Firebase Authentication fornisce descrizioni e istruzioni di implementazione per i provider di autenticazione supportati, tra cui l'utilizzo di password, numeri di telefono, provider di identità federati più diffusi (come Google, Facebook e GitHub) e altro ancora.

Dopo aver implementato Firebase Authentication nella tua app, quest'ultima invierà automaticamente le credenziali Firebase Authentication per l'utente autenticato in ogni richiesta a Firebase AI Logic.

Tieni presente quanto segue in merito ad alcuni provider di autenticazione:

  • Autenticazione personalizzata: devi recuperare un token di autenticazione firmato da inviare insieme alla richiesta a Firebase AI Logic. Per maggiori dettagli, consulta Autenticazione personalizzata.

  • Metodi di autenticazione Anonimo o Email/Password: questi utenti sono considerati utenti autenticati, pertanto le loro richieste a Firebase AI Logic non vengono bloccate.

    Tieni presente che, sebbene i metodi di autenticazione anonima e con email/password richiedano agli utenti di visitare la tua app per creare le credenziali Firebase Authentication, non sono forme di autenticazione efficaci (soprattutto per proteggere una risorsa a pagamento) perché non richiedono per impostazione predefinita la verifica dell'identità dell'utente. Se la tua app utilizza l'implementazione predefinita di questi metodi di autenticazione, è possibile che la protezione sia inferiore anche se applichi la modalità utenti autenticati. Assicurati di aver anche applicato Firebase App Check.

Gestisci l'impostazione della modalità utenti autenticati

Puoi gestire l'impostazione per la modalità utenti autenticati nella console Firebase.

Autorizzazioni e ruoli IAM richiesti

La gestione dell'impostazione della modalità per gli utenti autenticati richiede l'autorizzazione firebasevertexai.configs.update, inclusa per impostazione predefinita in questi ruoli IAM: Proprietario, Editor, Amministratore Firebase e Amministratore Firebase AI Logic.

Applica la modalità utenti autenticati

Ecco come applicare la modalità utenti autenticati per il tuo progetto Firebase:

  1. Se non l'hai ancora fatto, consulta le considerazioni importanti per la modalità per utenti autenticati riportate in precedenza in questa guida.

  2. Se non l'hai ancora fatto, configura Firebase Authentication nella tua app (come descritto in precedenza in questa guida).

  3. Applica la modalità utenti autenticati:

    1. Nella console Firebase, vai a AI Services > AI Logic > scheda Impostazioni.

    2. Nella sezione Modalità utenti autenticati, sposta il pulsante di attivazione/disattivazione di Applica la modalità utenti autenticati su Applicata.

    3. Esamina la finestra di dialogo di conferma, quindi fai clic su Conferma.

Interrompi l'applicazione della modalità utenti autenticati

Se interrompi l'applicazione della modalità utenti autenticati, tieni presente quanto segue:

  • Le richieste tramite Firebase AI Logic che non inviano le credenziali di Firebase Authentication verranno consentite.
  • Questa è un'impostazione a livello di progetto per Firebase AI Logic.

Ecco come interrompere l'applicazione della modalità utenti autenticati per il tuo progetto Firebase:

  1. Nella console Firebase, vai a Servizi AI > AI Logic > scheda Impostazioni.

  2. Nella sezione Modalità utenti autenticati, disattiva Applica la modalità utenti autenticati.

  3. Esamina la finestra di dialogo di conferma, quindi fai clic su Conferma.