При прямом вызове API из мобильного или веб-приложения (например, API, предоставляющие доступ к моделям генеративного ИИ), API уязвим для злоупотреблений со стороны неавторизованных клиентов. Для защиты таких API можно использовать Firebase App Check , чтобы убедиться, что все входящие вызовы API поступают из вашего приложения.
Firebase AI Logic предоставляет прокси-шлюз, позволяющий интегрироваться с Firebase App Check и защищать API моделей генеративного ИИ, вызываемые вашими мобильными и веб-приложениями. Использование App Check с SDK Firebase AI Logic поддерживает все наши конфигурации:
Обеспечивает защиту обоих поставщиков "Gemini API": Gemini Developer API и Vertex AI Gemini API .
Защищает все поддерживаемые модели, как модели Gemini , так и модели Imagen .
Краткое описание принципа работы App Check
С помощью App Check устройства, на которых работает ваше приложение, используют поставщика аттестации приложений или устройств, который проверяет одно или оба из следующих условий:
- Запросы поступают из вашего подлинного приложения.
- Запросы поступают с подлинного, не подвергавшегося модификациям устройства.
Это подтверждение добавляется к каждому запросу, который ваше приложение отправляет с помощью Firebase AI Logic SDK. При включении проверки App Check запросы от клиентов без действительного подтверждения будут отклонены, как и любые запросы, исходящие от приложения или платформы, которые вы не авторизовали.
Мы рекомендуем при настройке App Check подготовиться к предстоящей расширенной защите (известной как защита от повторного воспроизведения ).
Подробную информацию об App Check , включая квоты и лимиты, можно найти в его документации.
Доступные поставщики и инструкции по внедрению
В документации App Check представлены описания поставщиков услуг аттестации, а также инструкции по внедрению.
Выберите поставщика услуг по умолчанию и следуйте инструкциям по внедрению по следующим ссылкам:
- Платформы Apple : DeviceCheck или App Attest
- Android : Проверка целостности игрового процесса
- Веб-сайт : reCAPTCHA Enterprise
- Flutter : Поддерживает все перечисленные выше провайдеры по умолчанию.
Кроме того, обязательно соблюдайте особые требования к созданию экземпляров для Flutter и App Check . - Unity : Поддерживает все перечисленные выше поставщики по умолчанию.
Обратите внимание, что если ни один из стандартных поставщиков не удовлетворяет вашим потребностям, вы можете реализовать собственный поставщик , использующий либо сторонний поставщик аттестации, либо ваши собственные методы аттестации.
(Рекомендуется) Подготовьтесь к предстоящей усиленной защите от App Check (известной как защита от повторного воспроизведения ).
(Обязательно) Перед выпуском приложения для реальных пользователей включите проверку App Check .
Для Flutter требуется специальная инициализация экземпляра.
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
При использовании App Check с Firebase AI Logic в приложениях Flutter необходимо явно передавать App Check при создании экземпляра, следующим образом:
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
Подготовьтесь к предстоящей усиленной защите.
| Поддержка использования токенов ограниченного действия реализована для платформ Apple (v12.2.0+), Android (v17.2.0+, BoM v34.2.0+), Web (v12.3.0+) и Flutter (v3.2.0+, BoM v4.2.0+). Поддержка Unity появится в ближайшее время. |
По умолчанию App Check использует токены сессии с настраиваемым временем жизни (TTL) от
В будущем App Check добавит возможность включения защиты от повторного воспроизведения для Firebase AI Logic (аналогично поддержке, которую App Check уже предоставляет для некоторых других ресурсов). При включении защиты от повторного воспроизведения она повышает уровень защиты следующим образом:
App Check разрешит запросы только в том случае, если они сопровождаются специальным токеном, называемым токеном ограниченного использования .
После проверки токена ограниченного использования он расходуется, так что его можно использовать только один раз, что предотвращает атаки повторного использования.
Для подготовки к защите от повторного воспроизведения мы рекомендуем включить использование токенов ограниченного использования в рамках настройки App Check . Таким образом, когда защита от повторного воспроизведения станет доступна, вы сможете включить ее раньше, поскольку больше ваших пользователей будут использовать версии вашего приложения, которые отправляют токены ограниченного использования.
Обратите внимание на следующее, если вы сейчас включите использование токенов ограниченного действия в своем приложении (пока защита от повторного воспроизведения недоступна):
App Check не блокирует использование действительных токенов сессии .
Подобно токенам сессии, токены ограниченного использования кэшируются SDK App Check и отправляются вместе с запросами. Эти токены ограниченного использования обеспечивают небольшую дополнительную защиту по сравнению со стандартными токенами сессии, поскольку имеют более короткий срок действия (всего
5 минут , и он не регулируется) по сравнению с токенами сессии.Несмотря на то, что токены ограниченного использования действительны в течение
5 минут , SDK всё равно будет генерировать новый токен для каждого запроса. Этот процесс может добавить некоторую задержку к вашему запросу.
Однако, когда в будущем для Firebase AI Logic станет доступна защита от повторного воспроизведения (и вы её включите), использование сессионных токенов и повторное использование токенов ограниченного срока действия станет невозможным. Обратите внимание, что дополнительная задержка, связанная с генерацией нового токена для каждого запроса, всё равно будет присутствовать.
Разрешить использование токенов ограниченного действия
Чтобы просмотреть контент и код, относящиеся к вашему поставщику API Gemini , нажмите на него. |
Вот как включить использование токенов ограниченного применения:
Внедрите App Check ) и убедитесь, что для вашего приложения включена функция принудительного применения App Check .
В процессе создания экземпляра приложения включите использование токенов ограниченного использования, установив параметр
useLimitedUseAppCheckTokensвtrue:Быстрый
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Единство
Использование токенов ограниченного действия в играх Unity будет поддерживаться в будущих релизах. Следите за обновлениями!
Разберитесь, как Firebase AI Logic интегрируется с App Check
Для использования SDK Firebase AI Logic необходимо включить API Firebase AI Logic ( firebasevertexai.googleapis.com ) в вашем проекте Firebase. Это связано с тем, что запросы, отправляемые SDK Firebase AI Logic, сначала направляются на сервер Firebase AI Logic , который выступает в качестве прокси-шлюза, где происходит проверка Firebase App Check прежде чем запрос будет разрешен к бэкэнду выбранного вами поставщика « Gemini API » и API для доступа к моделям Gemini и Imagen .