仅限通过身份验证的用户发出请求

您可以为 Firebase 项目强制执行“已通过身份验证的用户”模式 。强制执行后,通过 Firebase AI Logic 发出的所有 Gemini API 请求都必须来自应用的 已通过身份验证的用户。具体而言,应用最终用户必须先使用 Firebase Authentication 通过身份验证,然后才能从应用向 Firebase AI Logic 发送 请求。如果最终用户未通过身份验证,则请求会被阻止。

当请求被阻止时,响应将是 401: unauthenticated 错误。

重要注意事项

请注意以下有关“已通过身份验证的用户”模式的重要注意事项。

强制执行“已通过身份验证的用户”模式后

强制执行“已通过身份验证的用户”模式后,请注意以下事项:

  • 此设置是 项目级 设置,适用于 Firebase AI Logic

    • 它适用于项目中注册的所有应用。
    • 它仅适用于强制执行该设置的项目。
  • 此设置会阻止 通过 Firebase AI Logic 发送的所有 发送 Firebase Authentication 凭据的请求。

    • 用户必须先通过 Firebase Authentication 进行身份验证,然后才能向 Firebase AI Logic 发送请求 。
    • 此设置适用于通过 Firebase AI Logic 发送给 Gemini Developer APIVertex AI Gemini API所有 请求。
    • 此设置适用于使用 服务器提示模板的所有请求
    • 此设置无法按用户、API 或模板应用。
  • 此设置不会阻止项目中 通过 Firebase AI Logic 发出的 Gemini API 请求。

  • 如果您使用的是混合 / 设备端

    • 如果用户未通过身份验证,此设置会阻止 向云端托管模型发出的请求。
    • 无论用户的身份验证状态如何,此设置都不会阻止向设备端模型发出的请求。
  • 如果您使用的是 Gemini Live API

    • 使用 Firebase AI Logic 时,此设置会 阻止 Web 应用 使用 Gemini Live API,即使是已通过身份验证的用户也是如此。这包括使用 Firebase JS SDK 的 Web 应用或 Flutter Web 应用。
  • 如果您使用的是 Firebase AI Logic REST API

    • 此设置会阻止 发送 Firebase Authentication凭据的推理请求。这包括对服务器提示模板(如 templateGenerateContenttemplateStreamGenerateContent)的请求。
    • 此设置不会阻止 控制平面请求(例如用于 管理模板和配置的请求),因为这些请求受 IAM 保护。
  • 此设置不会阻止countTokens(Count Tokens API)的请求。

在强制执行“已通过身份验证的用户”模式之前

在强制执行“已通过身份验证的用户”模式之前,请注意以下事项:

  • 如果您有不使用 Firebase Authentication的现有应用版本:

    • 此设置会阻止 通过 Firebase AI Logic 从 这些现有应用版本发出的请求。
    • 在强制执行“已通过身份验证的用户”模式之前,请确保所有活跃客户端都已更新为使用 Firebase Authentication before
  • 旧版 Flutter 插件 需要 特殊实例化 才能在请求中发送 Firebase Authentication 凭据。

    • 如果您的应用使用 Flutter 插件 firebase_ai v3.11.0 或更低版本(BoM v4.12.0 或更低版本),并且在实例化期间未传入 Authentication,则此设置会 阻止 通过 Firebase AI Logic 发出的请求,即使是已通过身份验证的用户也是如此。
    • 在强制执行“已通过身份验证的用户”模式之前,请确保 Flutter 的所有活跃客户端都已更新为较新版本的插件。

设置 Firebase Authentication

The Firebase Authentication documentation provides descriptions and implementation instructions for supported authentication providers, including using passwords, phone numbers, popular federated identity providers (like Google, Facebook, and GitHub), and more.

在应用中实现 Firebase Authentication 后,您的应用会自动 发送已通过身份验证的用户的 Firebase Authentication 凭据,以便向 Firebase AI Logic 发出每个 请求。

请注意以下有关某些身份验证提供商的信息:

  • 自定义身份验证:您需要提取已签名的身份验证令牌,以便随 请求一起发送给Firebase AI Logic。如需了解详情,请参阅 自定义身份验证

  • 匿名电子邮件/密码 身份验证方法:这些用户被视为 已通过身份验证的用户,因此他们向 Firebase AI Logic 发出的请求 不会被阻止。

    请注意,即使匿名和电子邮件/密码身份验证 方法要求用户访问您的应用以创建 Firebase Authentication 凭据, 它们也不是可靠的身份验证形式(尤其是 保护付费资源),因为它们默认情况下不要求 用户进行身份验证。如果您的应用使用这些身份验证方法的默认实现,即使您强制执行“已通过身份验证的用户”模式,也无法提供足够的保护。请确保您还 强制执行了 Firebase App Check

管理“已通过身份验证的用户”模式设置

您可以在 Firebase 控制台中管理“已通过身份验证的用户”模式的设置。

所需的 IAM 权限和角色

管理“已通过身份验证的用户”模式设置需要 firebasevertexai.configs.update 权限,该权限默认包含在以下 IAM 角色中:所有者、编辑者、Firebase 管理员和 Firebase AI Logic 管理员。

强制执行“已通过身份验证的用户”模式

如需为 Firebase 项目强制执行“已通过身份验证的用户”模式,请按以下步骤操作:

  1. 如果您尚未执行此操作,请查看本指南前面部分中有关 “已通过身份验证的用户”模式的重要注意事项。

  2. 如果您尚未执行此操作,请设置 Firebase Authentication 在您的应用中 (如本指南前面部分所述)。

  3. 强制执行“已通过身份验证的用户”模式:

    1. Firebase 控制台中,依次前往 AI 服务 > AI Logic > 设置 标签页

    2. 已通过身份验证的用户模式 下,将 强制执行“已通过身份验证的用户”模式 的切换开关滑动到已强制执行

    3. 查看确认对话框,然后点击确认

停止强制执行“已通过身份验证的用户”模式

如果您停止强制执行“已通过身份验证的用户”模式,请注意以下事项:

  • 系统将允许通过 Firebase AI Logic 发送的未发送 not Firebase Authentication 凭据的请求。
  • 此设置是 项目级 设置,适用于 Firebase AI Logic

如需为 Firebase 项目停止强制执行“已通过身份验证的用户”模式,请按以下步骤操作:

  1. Firebase 控制台中,依次前往 AI 服务 > AI Logic > 设置 标签页

  2. 已通过身份验证的用户模式 下,关闭 强制执行“已通过身份验证的用户”模式

  3. 查看确认对话框,然后点击确认