Ao chamar 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.
Firebase AI Logic oferece um gateway de proxy que permite a integração com Firebase App Check e protege as APIs de modelo de IA generativa chamadas pelos seus apps para dispositivos móveis e da Web. O uso de App Check com os Firebase AI Logic SDKs oferece suporte a todas as nossas configurações:
Protege os dois provedores da "API Gemini": Gemini Developer API e Vertex AI Gemini API.
Protege todos os modelos com suporte, tanto os modelos Gemini quanto os Imagen modelos.
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 de alto nível de como App Check funciona
Com 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 cada solicitação feita pelo seu app usando um Firebase AI Logic SDK. Quando 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 App Check, considere adicionar proteção contra repetição, que torna os tokens App Check 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 oferece descrições detalhadas dos provedores de atestado , bem como 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 a instanciação especial abaixo. para Flutter e App Check. - Unity: oferece suporte a todos os provedores padrão acima
(Obrigatório) Ative a aplicaçãoApp 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 App Check provedor de depuração para ignorar o atestado, mantendo a aplicação de App Check. Consulte as instruções de configuração da sua plataforma: iOS+ | Android | Web | Flutter | Unity.
Melhorar a proteção adicionando a proteção contra repetição
|
Recomendamos o uso das 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, App Check usa tokens de sessão que têm um
tempo de vida (TTL, na sigla em inglês) configurável entre
No entanto, você pode melhorar 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:
App Check vai bloquear solicitações para Firebase AI Logic que usam tokens de sessão. Em vez disso, 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 impede ataques de repetição.
O App Check SDK 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, custo (dependendo do provedor de atestado).
Configurar e aplicar a proteção contra repetição
|
Clique no provedor Gemini API para conferir o conteúdo específico do provedor e o código nesta página. |
Saiba como configurar e aplicar a proteção contra repetição:
Se ainda não fez isso, implemente App Check e ative a restrição App Check para 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 ); // ...Aplique 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.
Verifique se a proteção básica está aplicada e clique em Continuar.
Para proteção contra repetição, escolha Não aplicado (somente monitoramento) ou Aplicado.
Considere o seguinte para decidir quando aplicar a proteção contra repetição:
O monitoramento das solicitações é recomendado se um número substancial de usuários estiver usando versões anteriores do app sem o uso de tokens de uso limitado ativado. Se você aplicar a proteção contra repetição imediatamente, as solicitações desses usuários serão bloqueadas.
Você pode monitorar especificamente a métrica Não verificado: token reutilizado, que é o número de solicitações que têm um token que já foi usado em uma solicitação anterior. Monitore essa métrica no Firebase console (acesse a guia Segurança > App Check > APIs).
Se uma parte significativa das solicitações recentes estiver nessa categoria, você poderá evitar interrupções aos usuários e considerar esperar para aplicar a proteção contra repetição até que mais usuários tenham atualizado para uma versão do app que use tokens de uso limitado.
Entender como Firebase AI Logic se integra ao App Check
Para usar os Firebase AI Logic SDKs, a
Firebase AI Logic API (firebasevertexai.googleapis.com)
precisa estar ativada no seu projeto do Firebase. Isso ocorre porque as solicitações feitas pelos
Firebase AI Logic SDKs são enviadas primeiro ao Firebase AI Logic
servidor, que atua como um gateway de proxy em que a verificação Firebase App Check
ocorre antes que a solicitação possa prosseguir para o back-end do provedor "Gemini API" escolhido e as APIs para acessar os modelos Gemini
e Imagen.
(Opcional) Aplicar App Check sem um provedor de atestado de produção (somente provedor de depuração)
Você pode aplicar App Check para AI Logic sem registrar o app com um provedor de atestado de produção. Essa configuração permite usar o App Check provedor de depuração para começar a usar AI Logic com mais facilidade, enquanto ainda protege Gemini API.
Verifique se App Check já está aplicado a AI Logic.
No console do Firebase, acesse a guia Segurança > App Check > APIs.
Encontre a linha para Firebase AI Logic. Se ela disser
Unenforced, continue com o restante destas instruções.
Clique na linha de Firebase AI Logic. Os gráficos de métricas serão exibidos. Abaixo desses gráficos, clique em Configurar.
Na primeira tela da caixa de diálogo (Proteção básica), selecione Aplicado e clique em Continuar.
Na próxima tela (Proteção contra repetição), selecione Desativado. Você sempre pode configurar isso mais tarde e retornar a esse 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 aplicar App Check. Se estiver pronto, clique em Continuar.
Você não precisa registrar seus apps se quiser apenas aplicar o App Check e usar apenas o provedor de depuração com AI Logic em um app de pré-produção. No entanto, quando estiver pronto para lançar o app para os usuários finais, será necessário registrar seus apps como parte da configuração de um provedor de atestado de produção (como App Attest, Play Integrity ou reCAPTCHA Enterprise).
Para desenvolvimento local quando App Check é aplicado, configure o App Check provedor de depuração para ignorar a atestação, mantendo a aplicação de App Check.
Para detalhes sobre como configurar o provedor de depuração, consulte as instruções da sua plataforma: iOS+ | Android | Web | Flutter | Unity.