Вы можете включить режим аутентифицированных пользователей для проекта Firebase. Если это правило включено, все запросы Gemini API через Firebase AI Logic должны отправляться аутентифицированными пользователями вашего приложения. В частности, конечный пользователь вашего приложения должен пройти аутентификацию с помощью 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 API и Agent Platform Gemini API (formerly Vertex AI).
- Этот параметр применяется ко всем запросам, в которых используются шаблоны запросов на сервере.
- Этот параметр нельзя применить на уровне пользователя, API или шаблона.
Этот параметр не блокирует запросы Gemini API в вашем проекте, которые не отправляются через Firebase AI Logic.
Если вы используете гибридное или локальное решение:
- Этот параметр блокирует запросы к облачной модели, если пользователь не прошел аутентификацию.
- Этот параметр не блокирует запросы к модели на устройстве независимо от статуса аутентификации пользователя.
Если вы используете Gemini Live API:
- Этот параметр блокирует использование Gemini Live API для веб-приложений при использовании Firebase AI Logic, даже для аутентифицированных пользователей. Это относится к веб-приложениям, в которых используется Firebase JS SDK или Flutter web.
Если вы используете REST API Firebase AI Logic:
- Этот параметр блокирует запросы вывода, которые не отправляют учетные данные Firebase Authentication. Сюда относятся запросы шаблонов подсказок для сервера, например
templateGenerateContentилиtemplateStreamGenerateContent. - Этот параметр не блокирует запросы управляющего уровня (например, для управления шаблонами и конфигурациями), поскольку они защищены IAM.
- Этот параметр блокирует запросы вывода, которые не отправляют учетные данные Firebase Authentication. Сюда относятся запросы шаблонов подсказок для сервера, например
Этот параметр не блокирует запросы к
countTokens(API Count Tokens).
Перед тем как включить режим аутентифицированных пользователей
Прежде чем включать режим аутентифицированных пользователей, обратите внимание на следующее:
Если у вас есть версии приложения, в которых не используется 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 обновлены до более новой версии плагина до принудительного включения режима authenticated-users.
- Если в вашем приложении используется плагин 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 Logic.
Как принудительно включить режим аутентифицированных пользователей
Чтобы включить режим аутентифицированных пользователей для проекта Firebase, выполните следующие действия:
Если вы ещё не сделали этого, ознакомьтесь с важными соображениями для режима аутентифицированных пользователей, приведенными ранее в этом руководстве.
Если вы ещё этого не сделали, настройте Firebase Authentication в приложении (как описано выше).
Принудительно включите режим аутентифицированных пользователей:
В консоли Firebase выберите Сервисы ИИ > Логика ИИ > вкладка Настройки.
В разделе Режим аутентифицированных пользователей переведите переключатель Принудительно включить режим аутентифицированных пользователей в положение Включено.
В диалоговом окне подтверждения нажмите Подтвердить.
Как отключить режим аутентифицированных пользователей
Если вы отключите режим аутентифицированных пользователей, учитывайте следующее:
- Запросы через Firebase AI Logic, в которых не отправляются учетные данные Firebase Authentication, будут разрешены.
- Это настройка на уровне проекта для Firebase AI Logic.
Чтобы отключить принудительное использование режима аутентифицированных пользователей для проекта Firebase, выполните следующие действия:
В консоли Firebase выберите Сервисы ИИ > Логика ИИ > вкладка Настройки.
В разделе Режим аутентифицированных пользователей отключите параметр Принудительно включить режим аутентифицированных пользователей.
В диалоговом окне подтверждения нажмите Подтвердить.