Quando você chama uma API diretamente de um app para dispositivos móveis ou da Web (por exemplo, as APIs que permitem acesso a modelos de IA generativa), ela fica vulnerável a abusos por clientes não autorizados. Para ajudar a proteger essas APIs contra abusos, use Firebase App Check para verificar se todas as chamadas de API recebidas são do seu app real e de um dispositivo não adulterado.
O Firebase AI Logic oferece um gateway de proxy que permite a integração com o Firebase App Check e protege as APIs de modelo de IA generativa chamadas pelos seus apps para dispositivos móveis e da Web. Usar App Check com os SDKs Firebase AI Logic é compatível com todas as nossas configurações:
Protege os dois provedores da "API Gemini": Gemini Developer API e Vertex AI Gemini API.
Protege todos os modelos compatíveis, tanto os Gemini quanto os Imagen.
O App Check também oferece suporte à proteção contra repetição, o que significa que um token App Check só pode ser usado uma vez.
Resumo geral de como o App Check funciona
Com o App Check, os dispositivos que executam seu app usam um app ou provedor de atestado de dispositivos que verifica um ou ambos os itens a seguir:
- As solicitações vêm do seu app autêntico
- As solicitações vêm de um dispositivo autêntico que não foi comprometido
Esse atestado é anexado a todas as solicitações que o app faz usando um SDK Firebase AI Logic. Quando o App Check é aplicado, as solicitações de clientes sem um atestado válido são recusadas, assim como qualquer solicitação originada de um app ou plataforma que você não autorizou.
Ao configurar o App Check, considere adicionar a proteção contra repetição, que faz com que os tokens do App Check sejam de uso único. Essa opção oferece proteção aprimorada além da proteção básica e permite definir um nível adequado de proteção para seu app e casos de uso.
Você pode encontrar informações detalhadas sobre App Check na documentação, incluindo cotas e limites.
Configurar App Check
A documentação do App Check fornece descrições detalhadas dos provedores de atestado e instruções de implementação detalhadas.
Escolha um provedor de atestado e siga as instruções de implementação nos links a seguir:
- Plataformas da Apple: DeviceCheck ou App Attest
- Android: Play Integrity
- Web: reCAPTCHA Enterprise
- Flutter: oferece suporte a
todos os provedores padrão acima
Se você estiver usando versões mais antigas do plug-in, consulte a observação sobre instanciação especial abaixo. para Flutter e App Check. - Unity: compatível com todos os provedores padrão acima
Se nenhum desses provedores de atestado for suficiente para suas necessidades, você poderá implementar um provedor personalizado que use um provedor de atestado terceirizado ou suas próprias técnicas de atestado.
(Obrigatório) Ative a aplicação de App Check antes de confirmar o app em um sistema de controle de código-fonte disponível publicamente, compartilhar ou disponibilizar o app publicamente.
(Recomendado) Melhore a proteção adicionando a proteção contra repetição, o que significa que um token App Check só pode ser usado uma vez.
Para desenvolvimento local quando App Check é aplicado, configure o provedor de depuração App Check para ignorar a comprovação e manter a aplicação de App Check. Confira as instruções de configuração para sua plataforma: iOS+ | Android | Web | Flutter | Unity.
Melhorar a proteção adicionando proteção contra repetição
|
Recomendamos usar as versões mais recentes do SDK, mas
verifique se você está usando pelo menos uma destas versões para usar
a proteção contra repetição: plataformas da Apple v12.2.0+ | BoM do Android v34.14.0+ (App Check v19.1.0+) | Web v12.14.0+ | Flutter v4.15.0+ (App Check v4.10.0+) | Unity v13.12.0+ |
Por padrão, o App Check usa tokens de sessão, que têm uma vida útil (TTL) configurável entre
No entanto, é possível aprimorar a proteção além dessa proteção básica aplicando a proteção contra repetição, que usa tokens de uso limitado. Quando a proteção contra repetição é aplicada, acontece o seguinte:
O App Check vai bloquear solicitações para Firebase AI Logic que usam tokens de sessão. Em vez disso, o App Check só permite uma solicitação para Firebase AI Logic se ela usar um token de uso limitado recém-criado.
Depois que o token de uso limitado é verificado, ele é consumido para que possa ser usado apenas uma vez, o que evita ataques de repetição.
O SDK App Check gera um novo token de uso limitado para cada solicitação. Esse processo pode afetar suas solicitações adicionando alguma latência e, às vezes, custos (dependendo do provedor de atestado).
Configurar e aplicar a proteção contra repetição
|
Clique no seu provedor de Gemini API para conferir o conteúdo e o código específicos do provedor nesta página. |
Veja como configurar e aplicar a proteção de repetição:
Se ainda não fez isso, implemente App Check e ative a aplicação de App Check no seu app.
Ative o uso de tokens de uso limitado.
No app, durante a instanciação, defina o parâmetro
useLimitedUseAppCheckTokenscomotrue:Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( useLimitedUseAppCheckTokens: true, ); // ...Unity
// ... // During instantiation, enable usage of limited-use tokens var ai = FirebaseAI.GetInstance( useLimitedUseAppCheckTokens: true ); // ...Aplicar a proteção contra repetição.
Na base de código do app, verifique se você ativou o uso de tokens de uso limitado (consulte a etapa anterior).
No console do Firebase, acesse Segurança > App Check.
Expanda a visualização de métricas para Firebase AI Logic.
Confirme se a Proteção básica está Aplicada e clique em Continuar.
Para proteção contra repetição, escolha Não aplicada (somente monitoramento) ou Aplicada.
Considere o seguinte para decidir quando aplicar a proteção de repetição:
É recomendável monitorar suas solicitações se um número considerável de usuários estiver usando versões anteriores do app sem que os tokens de uso limitado estejam ativados. Se você aplicar a proteção contra repetição imediatamente, as solicitações desses usuários serão bloqueadas.
É possível monitorar especificamente a métrica Não verificado: token reutilizado, que é o número de solicitações com um token já usado em uma solicitação anterior. Monitore essa métrica no console do Firebase. Acesse a guia Segurança > App Check > APIs.
Se uma parte significativa das solicitações recentes estiver nessa categoria, evite interromper os usuários e espere para aplicar a proteção contra repetição até que mais usuários tenham atualizado para uma versão do app que usa tokens de uso limitado.
Entenda como o Firebase AI Logic se integra ao App Check
Para usar os SDKs do Firebase AI Logic, a
API Firebase AI Logic (firebasevertexai.googleapis.com)
precisa estar ativada no seu projeto do Firebase. Isso acontece porque as solicitações feitas pelos SDKs do
Firebase AI Logic são enviadas primeiro ao servidor do
Firebase AI Logic, que atua como um gateway de proxy em que a verificação do
Firebase App Check ocorre antes de a solicitação ser permitida para o back-end do provedor
"Gemini API" escolhido e as APIs para acessar os modelos do
Gemini e Imagen.
(Opcional) Aplicar App Check sem um provedor de atestado de produção (somente provedor de depuração)
É possível aplicar App Check para AI Logic sem registrar seu app com um provedor de declaração de produção. Essa configuração permite usar o provedor de depuração do App Check para começar a usar o AI Logic com mais facilidade, sem deixar de proteger o Gemini API.
Verifique se App Check já está sendo aplicado para AI Logic.
No console do Firebase, acesse a guia Segurança > App Check > APIs.
Encontre a linha de Firebase AI Logic. Se aparecer
Unenforced, continue com o restante destas instruções.
Clique na linha de Firebase AI Logic para ver os gráficos de métricas. Abaixo desses gráficos, clique em Configurar.
Na primeira tela da caixa de diálogo (Proteção básica), selecione Aplicada e clique em Continuar.
Na próxima tela (Proteção contra repetição), selecione Desativada. Você pode configurar isso mais tarde e voltar a este fluxo de trabalho de configuração. Clique em Continuar.
Na tela final, revise as considerações para aplicar App Check e verifique se você está pronto para isso.App Check Se estiver tudo certo, clique em Continuar.
Não é necessário registrar seus apps se você quiser aplicar App Check e usar somente o provedor de depuração com AI Logic em um app de pré-produção. No entanto, quando você estiver pronto para lançar o app para usuários finais, será necessário registrar os apps como parte da configuração de um provedor de atestação de produção (como App Attest, Play Integrity ou reCAPTCHA Enterprise).
Para desenvolvimento local quando App Check é aplicado, é necessário configurar o provedor de depuração do App Check para ignorar a comprovação e ainda manter a aplicação do App Check.
Para detalhes sobre como configurar o provedor de depuração, consulte as instruções da sua plataforma: iOS+ | Android | Web | Flutter | Unity.