Внедрите проверку приложений Firebase для защиты API от неавторизованных клиентов.

При вызове 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 содержит описания поставщиков аттестации, а также инструкции по внедрению.

  1. Выберите поставщика по умолчанию и следуйте инструкциям по внедрению по следующим ссылкам:

    Обратите внимание: если ни один из поставщиков по умолчанию не отвечает вашим потребностям, вы можете реализовать собственного поставщика , который использует либо стороннего поставщика аттестации, либо ваши собственные методы аттестации.

  2. (Рекомендуется) Подготовьтесь к предстоящей улучшенной защите от App Check (известной как защита от повторного воспроизведения ).

  3. (Обязательно) Прежде чем выпустить приложение для реальных пользователей, включите принудительную 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+).
Поддержка других платформ будет реализована в течение следующих нескольких недель.

По умолчанию App Check использует токены сеанса с настраиваемым временем жизни (TTL) от 30 минут до 7 дней . Эти токены кэшируются App Check SDK и отправляются вместе с запросами из вашего приложения.

В будущем App Check добавит возможность включить защиту от повторного воспроизведения для Firebase AI Logic (аналогично поддержке, которую App Check уже предлагает для некоторых других ресурсов). Включение защиты от повторного воспроизведения улучшает защиту следующим образом:

  • App Check разрешит только те запросы, которые сопровождаются специальным токеном, называемым токеном ограниченного использования .

  • После проверки токена ограниченного использования он потребляется, так что его можно использовать только один раз, что предотвращает атаки повторного воспроизведения.

Чтобы подготовиться к защите от повторного воспроизведения, мы рекомендуем включить использование токенов ограниченного использования при настройке App Check . Таким образом, когда защита от повторного воспроизведения станет доступна, вы сможете включить её раньше, поскольку больше пользователей будут использовать версии вашего приложения, отправляющие токены ограниченного использования.

Обратите внимание на следующее, если вы сейчас включите использование токенов ограниченного использования в своем приложении (пока защита от повторного воспроизведения недоступна):

  • App Check не блокирует использование действительных токенов сеанса .

  • Как и токены сеансов, токены ограниченного использования кэшируются SDK App Check и отправляются вместе с запросами. Эти токены ограниченного использования обеспечивают немного более высокую степень защиты, чем токены сеансов по умолчанию, поскольку у токенов ограниченного использования более короткий срок жизни (TTL) (всего 5 минут и не может быть изменен) по сравнению с токенами сеансов.

  • Несмотря на то, что токены ограниченного использования действительны в течение 5 минут , SDK всё равно будет генерировать новый токен для каждого запроса. Этот процесс может добавить некоторую задержку к вашему запросу.

Однако, когда в будущем для Firebase AI Logic станет доступна защита от повторного воспроизведения (и вы её включите), использование токенов сеанса и повторное использование токенов с ограниченным сроком действия станет невозможным. Обратите внимание, что дополнительная задержка, связанная с генерацией нового токена для каждого запроса, всё равно будет иметь место.

Разрешить использование токенов ограниченного использования

Щелкните своего поставщика API Gemini , чтобы просмотреть специфичный для этого поставщика контент и код на этой странице.

Вот как включить использование токенов с ограниченным использованием:

  1. Реализуйте App Check и убедитесь, что вы включили принудительное применение App Check для своего приложения.

  2. В своем приложении во время создания экземпляра включите использование токенов ограниченного использования, установив для параметра 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

    Поддержка использования токенов ограниченного использования в приложениях Flutter будет реализована в следующем выпуске. Следите за обновлениями!

    Единство

    Поддержка использования токенов ограниченного использования в играх Unity появится в будущих версиях. Следите за обновлениями!

Узнайте, как Firebase AI Logic интегрируется с App Check

Для использования Firebase AI Logic SDK необходимо включить Firebase AI Logic API ( firebasevertexai.googleapis.com ) в вашем проекте Firebase. Это связано с тем, что запросы, отправляемые Firebase AI Logic SDK, сначала отправляются на сервер Firebase AI Logic , который выступает в качестве прокси-шлюза, где выполняется проверка Firebase App Check прежде чем запрос будет передан на серверную часть выбранного вами поставщика Gemini API и API для доступа к моделям Gemini и Imagen .