Você pode aplicar o modo de usuários autenticados no seu projeto do Firebase. Quando habilitada, todas as solicitações Gemini API via Firebase AI Logic precisam ser feitas por usuários autenticados do app. Especificamente, o usuário final do app precisa ser autenticado usando Firebase Authentication antes de enviar uma solicitação para Firebase AI Logic do 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 sobre o modo de usuários autenticados.
Quando o modo de usuários autenticados é aplicado
Quando o modo de usuários autenticados é aplicado, é importante saber o seguinte:
Essa é uma 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 via Firebase Authentication antes de enviar a solicitação para Firebase AI Logic.
- Essa configuração se aplica a todas as solicitações via Firebase AI Logic para o Gemini Developer API e o 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 solicitações Gemini API no seu projeto que não são feitas por Firebase AI Logic.
Se você estiver usando híbrido / no dispositivo:
- Essa configuração bloqueia solicitações ao modelo hospedado na nuvem se o usuário não estiver autenticado.
- Essa configuração não bloqueia solicitações ao modelo no dispositivo, não importa o 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 em web apps 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 API REST Firebase AI Logic:
- Essa configuração bloqueia solicitações de inferência que não enviam credenciais
Firebase Authentication. Isso inclui solicitações de modelos de solicitação do servidor, como
templateGenerateContentoutemplateStreamGenerateContent. - 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 bloqueia solicitações de inferência que não enviam credenciais
Firebase Authentication. Isso inclui solicitações de modelos de solicitação do servidor, como
Essa configuração não bloqueia solicitações para
countTokens(a API Count Tokens).
Antes de aplicar o modo de usuários autenticados
Antes de aplicar o modo de usuários autenticados, saiba o seguinte:
Se você tiver versões do app que não usam Firebase Authentication:
- Essa configuração bloqueia solicitações via Firebase AI Logic dessas versões de 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 instanciação especial para enviar credenciais Firebase Authentication com solicitações.
- Se o app usar o plug-in do Flutter
firebase_aiv3.11.0 ou anterior (BoM v4.12.0 ou anterior) e não transmitir Authentication durante a instanciação, essa configuração vai bloquear 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.
- Se o app usar o plug-in do Flutter
Configurar Firebase Authentication
A documentação do Firebase Authentication oferece 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 o Firebase Authentication no app, ele vai enviar automaticamente 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 para Firebase AI Logic. Para 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 para Firebase AI Logic não são bloqueadas.
Embora os métodos de autenticação anônima e por e-mail/senha exijam que os usuários acessem seu app para criar credenciais Firebase Authentication, eles não são formas robustas de autenticação, principalmente para proteger um recurso pago, porque não exigem por padrão a verificação de identidade do usuário. Se o app usar a implementação padrão desses métodos de autenticação, a proteção será menor, mesmo que você aplique o modo de usuários autenticados. Verifique se você também aplicou Firebase 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
Para gerenciar a configuração do modo de usuários autenticados, é necessário ter a permissão
firebasevertexai.configs.update, que está 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:
Se ainda não fez isso, consulte as considerações importantes para o modo de usuários autenticados neste guia.
Se ainda não fez isso, configure o Firebase Authentication no seu app (conforme descrito anteriormente neste guia).
Aplicar o modo de usuários autenticados:
No console do Firebase, acesse Serviços de IA > Lógica de IA > guia Configurações.
Em Modo de usuários autenticados, deslize a chave de Aplicar o modo de usuários autenticados para Aplicado.
Leia a caixa de diálogo de confirmação e clique em Confirmar.
Parar a aplicação do modo de usuários autenticados
Se você interromper a aplicação do modo de usuários autenticados, lembre-se do seguinte:
- As solicitações via Firebase AI Logic que não enviarem credenciais de Firebase Authentication serão permitidas.
- Essa é uma 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:
No console do Firebase, acesse Serviços de IA > Lógica de IA > guia Configurações.
Em Modo de usuários autenticados, desative a opção Aplicar o modo de usuários autenticados.
Leia a caixa de diálogo de confirmação e clique em Confirmar.