É possível aplicar o modo de usuários autenticados ao seu projeto do Firebase. Quando ela está habilitada, todas as solicitações de Gemini API com o Firebase AI Logic precisam ser feitas por usuários autenticados do seu app. Especificamente, o usuário final do app precisa ser autenticado usando o Firebase Authentication antes de enviar uma solicitação para o Firebase AI Logic pelo 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
Esteja ciente das 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, esteja ciente do seguinte:
Essa é uma configuração para todo o projeto do Firebase AI Logic.
- Ela se aplica a todos os apps registrados no projeto.
- Ela se aplica apenas ao projeto em que é aplicada.
Essa configuração bloqueia todas as solicitações via Firebase AI Logic que não enviam credenciais do Firebase Authentication.
- O usuário precisa ser autenticado pelo Firebase Authentication antes de enviar a solicitação para o Firebase AI Logic.
- Essa configuração se aplica a todas as solicitações via Firebase AI Logic para Gemini Developer API e Agent Platform Gemini API (formerly Vertex AI).
- Essa configuração se aplica a todas as solicitações que usam modelos de comando do servidor.
- Essa configuração não pode ser aplicada por usuário, por API ou por modelo.
Essa configuração não bloqueia as solicitações de Gemini API no projeto que não são feitas pelo Firebase AI Logic.
Se você estiver usando o modo híbrido / no dispositivo:
- Essa configuração bloqueia as solicitações ao modelo hospedado na nuvem se o usuário não estiver autenticado.
- Essa configuração não bloqueia 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 o Firebase AI Logic, mesmo para usuários autenticados. Isso inclui apps da Web que usam o SDK do Firebase para JS 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 do Firebase Authentication. Isso inclui solicitações de modelos de comando 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 do Firebase Authentication. Isso inclui solicitações de modelos de comando 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
Esteja ciente do seguinte antes de aplicar o modo de usuários autenticados:
Se você tiver versões do app que não usam o Firebase Authentication:
- Essa configuração vai bloquear as 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.
As versões mais antigas do plug-in do Flutter exigem uma instanciação especial para enviar credenciais do Firebase Authentication com as solicitações.
- Se o app usa o plug-in do Flutter
firebase_aiv3.11.0 ou anterior (BoM v4.12.0 ou anterior) 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.
- Se o app usa o plug-in do Flutter
Configurar Firebase Authentication
A documentação do 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 o Firebase Authentication no seu app, ele vai enviar automaticamente as credenciais do Firebase Authentication do usuário autenticado em todas as solicitações para o 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 mais detalhes, consulte Autenticação personalizada.
Métodos de autenticação Anônimo ou E-mail/Senha: esses usuários são considerados autenticados, portanto, as solicitações deles para o Firebase AI Logic não são bloqueadas.
Embora os métodos de autenticação anônima e de e-mail/senha exijam que os usuários acessem seu app para criar credenciais do Firebase Authentication, eles não são formas robustas de autenticação (especialmente para proteger um recurso pago) porque não exigem por padrão a confirmaçã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 do Firebase.
Permissões e papéis do IAM necessários
Para gerenciar a configuração do modo de usuários autenticados, é necessária 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 ao seu projeto do Firebase:
Se ainda não tiver feito isso, leia as considerações importantes sobre o modo de usuários autenticados anteriormente neste guia.
Se ainda não tiver feito 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 o botão de alternância para Aplicar o modo de usuários autenticados para Aplicado.
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, considere o seguinte:
- As solicitações com Firebase AI Logic que não enviam credenciais do 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 Aplicar o modo de usuários autenticados.
Leia a caixa de diálogo de confirmação e clique em Confirmar.