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. Nello specifico, 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 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 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 Vertex AI Gemini API.
    • Questa impostazione si applica a tutte le richieste che utilizzano i template di prompt del server.
    • Questa impostazione non può essere applicata in base all'utente, all'API o al modello.
  • Questa impostazione non blocca le richieste Gemini API nel tuo progetto che non avvengono tramite Firebase AI Logic.

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

    • Questa impostazione blocca le richieste al modello ospitato sul cloud se l'utente non è autenticato.
    • Questa impostazione non blocca le richieste al modello sul dispositivo, indipendentemente dallo stato di autenticazione dell'utente.
  • Se utilizzi 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 richieste di modelli 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 esistenti dell'app.
    • Prima di applicare la modalità utenti autenticati, assicurati che tutti i client attivi siano stati aggiornati per utilizzare Firebase Authentication .
  • Le versioni precedenti del plug-in Flutter richiedono un'istanza speciale per inviare le Firebase Authentication credenziali con le richieste.

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

Configura Firebase Authentication

La documentazione 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 fornitori di autenticazione:

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

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

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

Gestire l'impostazione della modalità utenti autenticati

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

Ruoli e autorizzazioni IAM obbligatori

La gestione dell'impostazione della modalità utenti autenticati richiede l'autorizzazione firebasevertexai.configs.update, inclusa per impostazione predefinita in questi ruoli IAM: Proprietario, Editor, Amministratore Firebase e Amministratore di 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, rivedi le considerazioni importanti per la modalità Utenti autenticati descritte 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 Servizi AI > 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. Rivedi 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 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. Rivedi la finestra di dialogo di conferma, quindi fai clic su Conferma.