实现 Firebase App Check 以保护 API 免遭未经授权的客户端访问

当您直接从移动应用或 Web 应用调用 API(例如允许访问生成式 AI 模型的 API)时,该 API 很容易受到未经授权的客户端滥用。为帮助保护这些 API,您可以使用 Firebase App Check 验证所有传入 API 调用是否来自您的实际应用。

Firebase AI Logic 提供了一个代理网关,可让您与 Firebase App Check 集成,并保护移动应用和 Web 应用调用的生成式 AI 模型 API。当您使用 Firebase AI Logic SDK 时,Gemini Developer APIVertex AI Gemini API 都支持与 App Check 集成。您可以保护 GeminiImagen 模型。

App Check 工作原理的概要说明

使用 App Check 时,运行您的应用的设备将使用应用或设备证明提供方,验证以下两项或其中一项:

  • 请求来自您的正版应用
  • 请求来自真实的、未经篡改的设备

此证明会附加到您的应用使用 Firebase AI Logic SDK 发出的每个请求。启用 App Check 强制执行后,来自没有有效证明的客户端的请求将被拒绝,来自未经您授权的应用或平台的请求也将被拒绝。

如需了解详情,请参阅 Firebase App Check 文档

可用的提供程序和实现说明

App Check 支持使用以下服务作为证明提供方(此支持是内置的)。点击相应提供商的链接可查看该提供商的 App Check 文档,包括说明和实现说明。

如果这些提供程序不能完全满足您的需求,您还可以实现自己的服务,从而使用第三方证明提供程序或您自己的证明方法(如需了解详情,请参阅 App Check 文档)。

Flutter 需要特殊实例化

点击您的 Gemini API 提供商,在本页面上查看特定于提供商的内容和代码。

在 Flutter 应用中将 App CheckFirebase AI Logic 搭配使用时,您需要在实例化期间明确传入 App Check,如下所示:

final ai = await FirebaseAI.googleAI(appCheck: FirebaseAppCheck.instance)
  .generativeModel(model: 'MODEL_NAME');

有关 App Check 的更多信息

了解 Firebase AI Logic 如何与 App Check 集成

如需使用 Firebase AI Logic SDK,您必须在 Firebase 项目中启用 Firebase AI Logic API (firebasevertexai.googleapis.com)。这是因为 Firebase AI Logic SDK 发出的请求会先发送到 Firebase AI Logic 服务器,该服务器充当代理网关,在请求被允许继续发送到您选择的“Gemini API”提供方的后端和 API 以访问 GeminiImagen 模型之前,会先进行 Firebase App Check 验证。