Ограничить обработку запросов только авторизованными пользователями.

Вы можете включить режим аутентификации пользователей для своего проекта Firebase. При включении этого режима все запросы к API Gemini через Firebase AI Logic должны поступать от аутентифицированных пользователей вашего приложения. В частности, конечный пользователь вашего приложения должен пройти аутентификацию с помощью Firebase Authentication , прежде чем отправлять запрос в Firebase AI Logic из вашего приложения. Если конечный пользователь не аутентифицирован, запрос блокируется.

В случае блокировки запроса будет отправлена ​​ошибка 401: unauthenticated .

Важные соображения

При работе в режиме аутентифицированных пользователей следует учитывать следующие важные моменты.

Когда включен режим аутентифицированных пользователей

При включении режима аутентифицированных пользователей следует учитывать следующее:

  • Этот параметр применяется ко всему проекту Firebase AI Logic .

    • Это относится ко всем приложениям, зарегистрированным в проекте.
    • Это относится только к тому проекту, где это правило действует.
  • Эта настройка блокирует все запросы через Firebase AI Logic , которые не отправляют учетные данные Firebase Authentication .

    • Перед отправкой запроса в Firebase AI Logic пользователь должен пройти аутентификацию через Firebase Authentication .
    • Этот параметр применяется ко всем запросам, отправляемым через Firebase AI Logic, как к API разработчика Gemini, так и к API Vertex AI Gemini .
    • Этот параметр применяется ко всем запросам, использующим шаблоны серверных подсказок .
    • Данная настройка не может быть применена к каждому пользователю, к каждому API или к каждому шаблону отдельно.
  • Эта настройка не блокирует запросы к API Gemini в вашем проекте, которые не выполняются через Firebase AI Logic .

  • Если вы используете гибридный режим / режим на устройстве :

    • Этот параметр блокирует запросы к облачной модели, если пользователь не авторизован.
    • Этот параметр не блокирует запросы к встроенной модели устройства независимо от состояния аутентификации пользователя.
  • Если вы используете Gemini Live API :

    • Эта настройка блокирует использование API Gemini Live для веб-приложений при работе с Firebase AI Logic — даже для авторизованных пользователей. Это включает веб-приложения, использующие Firebase JS SDK, или веб -приложения Flutter.
  • Если вы используете REST API Firebase AI Logic :

    • Этот параметр блокирует запросы на вывод данных , которые не отправляют учетные данные Firebase Authentication . Это включает запросы к шаблонам запросов сервера, таким как templateGenerateContent или templateStreamGenerateContent .
    • Этот параметр не блокирует запросы плоскости управления (например, запросы на управление шаблонами и конфигурациями), поскольку они защищены IAM.
  • Эта настройка не блокирует запросы к countTokens (API подсчета токенов).

Перед включением режима аутентифицированных пользователей

Перед включением режима аутентифицированных пользователей следует учитывать следующее:

  • Если у вас есть существующие версии приложения, которые не используют Firebase Authentication :

    • Эта настройка заблокирует запросы через Firebase AI Logic от существующих версий приложения.
    • Перед включением режима аутентифицированных пользователей убедитесь, что все активные клиенты обновлены и используют Firebase Authentication .
  • Более старые версии плагинов Flutter требуют специального создания экземпляра для отправки учетных данных Firebase Authentication вместе с запросами.

    • Если ваше приложение использует плагин Flutter firebase_ai версии 3.11.0 или ниже (BoM версии 4.12.0 или ниже) и не передает Authentication при создании экземпляра, этот параметр будет блокировать запросы через Firebase AI Logic — даже для аутентифицированных пользователей.
    • Перед включением режима аутентифицированных пользователей убедитесь, что все активные клиенты Flutter обновлены до более новой версии плагина.

Настройка Firebase Authentication

В документации Firebase Authentication представлены описания и инструкции по реализации поддерживаемых поставщиков аутентификации, включая использование паролей, номеров телефонов, популярных федеративных поставщиков идентификации (таких как Google, Facebook и GitHub) и многое другое.

После внедрения 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.

Принудительное использование режима аутентифицированных пользователей

Вот как включить режим аутентифицированных пользователей в вашем проекте Firebase:

  1. Если вы еще этого не сделали, ознакомьтесь с важными моментами, касающимися режима аутентифицированных пользователей, описанными ранее в этом руководстве.

  2. Если вы еще этого не сделали, настройте Firebase Authentication в своем приложении (как описано ранее в этом руководстве).

  3. Принудительное включение режима аутентифицированных пользователей:

    1. В консоли Firebase перейдите в раздел AI Services > AI Logic > вкладка Settings .

    2. В режиме «Аутентифицированные пользователи» переведите переключатель «Принудительное использование режима аутентифицированных пользователей» в положение «Принудительно» .

    3. Просмотрите диалоговое окно подтверждения, а затем нажмите «Подтвердить» .

Прекратить принудительное использование режима аутентифицированных пользователей.

Если вы отключите принудительное применение режима аутентифицированных пользователей, имейте в виду следующее:

  • Запросы через Firebase AI Logic , которые не отправляют учетные данные Firebase Authentication будут разрешены.
  • Это настройка для всего проекта , применяемая к Firebase AI Logic .

Вот как отключить принудительное использование режима аутентифицированных пользователей в вашем проекте Firebase:

  1. В консоли Firebase перейдите в раздел AI Services > AI Logic > вкладка Settings .

  2. В режиме «Аутентифицированные пользователи» отключите параметр «Принудительное использование режима аутентифицированных пользователей» .

  3. Просмотрите диалоговое окно подтверждения, а затем нажмите «Подтвердить» .