Restringir solicitações apenas a usuários autenticados

É possível aplicar o modo de usuários autenticados no seu projeto do Firebase. Quando aplicado, todas as solicitações Gemini API via Firebase AI Logic precisam ser feitas por usuários autenticados do seu app. Especificamente, o usuário final do app precisa ser autenticado usando Firebase Authentication antes de enviar uma solicitação ao Firebase AI Logic do seu app. Se o usuário final não estiver autenticado, a solicitação será bloqueada.

Quando uma solicitação é bloqueada, a resposta é um erro 401: unauthenticated.

Considerações importantes

Confira as seguintes considerações importantes para o modo de usuários autenticados.

Quando o modo de usuários autenticados é aplicado

Quando o modo de usuários autenticados é aplicado, observe o seguinte:

  • Essa configuração é para todo o projeto do Firebase AI Logic.

    • Ela se aplica a todos os apps registrados no projeto.
    • Ela só se aplica ao projeto em que é aplicada.
  • Essa configuração bloqueia todas as solicitações via Firebase AI Logic que não enviam credenciais Firebase Authentication.

    • O usuário precisa ser autenticado pelo Firebase Authentication antes de enviar a solicitação ao Firebase AI Logic.
    • Essa configuração se aplica a todas as solicitações via Firebase AI Logic para a Gemini Developer API e a Vertex AI Gemini API.
    • Essa configuração se aplica a todas as solicitações que usam modelos de comandos do servidor.
    • Essa configuração não pode ser aplicada por usuário, por API ou por modelo.
  • Essa configuração não bloqueia Gemini API solicitações no seu projeto que são não via Firebase AI Logic.

  • Se você estiver usando híbrido / no dispositivo:

    • Essa configuração bloqueia as solicitações para o modelo hospedado na nuvem se o usuário não estiver autenticado.
    • Essa configuração não bloqueia as solicitações para o modelo no dispositivo, independentemente do estado de autenticação do usuário.
  • Se você estiver usando o Gemini Live API:

    • Essa configuração bloqueia o uso da API Gemini Live para apps da Web ao usar Firebase AI Logic — mesmo para usuários autenticados. Isso inclui apps da Web que usam o SDK do Firebase para JavaScript ou apps da Web do Flutter.
  • Se você estiver usando a Firebase AI Logic API REST:

    • Essa configuração bloqueia inferência solicitações que não enviam Firebase Authentication credenciais. Isso inclui solicitações de modelos de comandos do servidor, como templateGenerateContent ou templateStreamGenerateContent.
    • Essa configuração não bloqueia solicitações do plano de controle (como as de gerenciamento de modelos e configurações) porque elas são protegidas pelo IAM.
  • Essa configuração não bloqueia solicitações para countTokens (a API Count Tokens).

Antes de aplicar o modo de usuários autenticados

Observe o seguinte antes de aplicar o modo de usuários autenticados:

  • Se você tiver versões do app que não usam Firebase Authentication:

    • Essa configuração vai bloquear as solicitações via Firebase AI Logic de ssas versões do app.
    • Verifique se todos os clientes ativos foram atualizados para usar Firebase Authentication antes de aplicar o modo de usuários autenticados.
  • Versões mais antigas do plug-in do Flutter exigem uma instanciação especial para enviar Firebase Authentication credenciais com as solicitações.

    • Se o app usa o plug-in do Flutter firebase_ai v3.11.0 ou mais antigo (BoM v4.12.0 ou mais antigo) e não transmite Authentication durante a instanciação, essa configuração vai bloquear as solicitações via Firebase AI Logic — mesmo para usuários autenticados.
    • Verifique se todos os clientes ativos do Flutter foram atualizados para uma versão mais recente do plug-in antes de aplicar o modo de usuários autenticados.

Configurar Firebase Authentication

A documentação Firebase Authentication fornece descrições e instruções de implementação para provedores de autenticação compatíveis, incluindo o uso de senhas, números de telefone, provedores de identidade federados conhecidos (como Google, Facebook e GitHub) e muito mais.

Depois de implementar Firebase Authentication no seu app, ele vai automaticamente enviar as credenciais do Firebase Authentication para o usuário autenticado em todas as solicitações ao Firebase AI Logic.

Observe o seguinte sobre alguns dos provedores de autenticação:

  • Autenticação personalizada: é necessário buscar um token de autenticação assinado para enviar com a solicitação ao Firebase AI Logic. Para mais detalhes, consulte Autenticação personalizada.

  • Métodos de autenticação anônimos ou e-mail/senha: esses usuários são considerados autenticados, então as solicitações deles ao Firebase AI Logic não são bloqueadas.

    Note that even though the anonymous and email/password authentication methods require users to visit your app to create Firebase Authentication credentials, they are not robust forms of authentication (especially for protecting a paid resource) because they do not by default require identity verification from the user. Se o app usa a implementação padrão desses métodos de autenticação, menos proteção é possível, mesmo que você aplique o modo de usuários autenticados. Verifique se você também aplicou o Firebase App CheckFirebase App Check.

Gerenciar a configuração do modo de usuários autenticados

Você gerencia a configuração do modo de usuários autenticados no console Firebase.

Permissões e papéis do IAM obrigatórios

O gerenciamento da configuração do modo de usuários autenticados exige a permissão firebasevertexai.configs.update, que é incluída por padrão nestes papéis do IAM: Proprietário, Editor, Administrador do Firebase e Administrador do Firebase AI Logic.

Aplicar o modo de usuários autenticados

Veja como aplicar o modo de usuários autenticados no seu projeto do Firebase:

  1. Se ainda não fez isso, revise as considerações importantes para o modo de usuários autenticados na seção anterior deste guia.

  2. Se ainda não fez isso, configure Firebase Authentication no seu app (conforme descrito anteriormente neste guia).

  3. Aplique o modo de usuários autenticados:

    1. No console do Firebase, acesse Serviços de IA > Lógica de IA > Configurações tab.

    2. Em Modo de usuários autenticados, deslize a opção Aplicar o modo de usuários autenticados para Aplicado.

    3. Leia a caixa de diálogo de confirmação e clique em Confirmar.

Interromper a aplicação do modo de usuários autenticados

Se você interromper a aplicação do modo de usuários autenticados, observe o seguinte:

  • As solicitações via Firebase AI Logic que não enviam Firebase Authentication credenciais serão permitidas.
  • Essa configuração é para todo o projeto do Firebase AI Logic.

Veja como interromper a aplicação do modo de usuários autenticados no seu projeto do Firebase:

  1. No console do Firebase, acesse Serviços de IA > Lógica de IA > Configurações tab.

  2. Em Modo de usuários autenticados, desative a opção Aplicar o modo de usuários autenticados.

  3. Leia a caixa de diálogo de confirmação e clique em Confirmar.