Вы можете включить режим аутентифицированных пользователей для проекта 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(Count Tokens 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 обновлены до более новой версии плагина.
- Если в вашем приложении используется плагин 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 выберите AI Services (Сервисы ИИ) > AI Logic (Логика ИИ) > вкладка Settings (Настройки).
В разделе Режим аутентифицированных пользователей установите переключатель Принудительно использовать режим аутентифицированных пользователей в положение Принудительно.
В диалоговом окне подтверждения нажмите Подтвердить.
Как отключить принудительное применение режима аутентифицированных пользователей
Если вы отключите режим аутентифицированных пользователей, обратите внимание на следующее:
- Запросы через Firebase AI Logic, которые не отправляют учетные данные Firebase Authentication, будут разрешены.
- Это настройка Firebase AI Logic на уровне проекта.
Чтобы отключить режим аутентифицированных пользователей для проекта Firebase, выполните следующие действия:
В консоли Firebase выберите AI Services (Сервисы ИИ) > AI Logic (Логика ИИ) > вкладка Settings (Настройки).
В разделе Режим аутентифицированных пользователей отключите параметр Принудительно включить режим аутентифицированных пользователей.
В диалоговом окне подтверждения нажмите Подтвердить.