Catch up on everthing we announced at this year's Firebase Summit. Learn more

Узнайте об использовании и управлении ключами API для Firebase

Ключ API - это уникальная строка, которая используется для маршрутизации запросов к вашему проекту Firebase при взаимодействии с Firebase и службами Google. На этой странице описывается основная информация о ключах API, а также рекомендации по использованию ключей API и управлению ими с приложениями Firebase.

Общая информация о ключах API и Firebase

Ключи API для Firebase отличаются от обычных ключей API

В отличии от , как ключи API обычно используются ключи API для служб Firebase не используются для контроля доступа к ресурсам серверных; это можно сделать только с помощью правил безопасности Firebase (чтобы контролировать, какие пользователи могут получать доступ к ресурсам) и проверки приложений (чтобы контролировать, какие приложения могут получать доступ к ресурсам).

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

Хотя ключи API для служб Firebase безопасны для включения в коде, есть несколько случаев конкретных , когда следует принуждать ограничения для ключа API; например, если вы используете Firebase ML, Firebase Authentication с методом входа по электронной почте / паролю или оплачиваемый Google Cloud API. Узнайте больше об этих случаях позже на этой странице.

Создание ключей API

У проекта Firebase может быть много ключей API, но каждый ключ API может быть связан только с одним проектом Firebase.

Ключи API, автоматически создаваемые Firebase для ваших приложений Firebase

Firebase автоматически создает ключи API для вашего проекта, когда вы выполняете любое из следующих действий:

  • Создание проекта Firebase> Browser key автоматически создается
  • Создать Firebase Apple App> iOS key автоматически создается
  • Создать Firebase Android App> Android key автоматически создается

Вы также можете создавать свои собственные ключи API в Google Cloud Console , например , для разработки или отладки . Узнайте больше о том, когда это может быть рекомендовано позже на этой странице.

Поиск ключей API

Вы можете просматривать и управлять ключами API все вашего проекта в API - интерфейсы и услуги> Учетные панели в Google Cloud Console.

Вы также можете узнать , какой ключ API автоматически согласованы с Firebase App в следующих местах. По умолчанию все вашего проекта Firebase Apps для одной и той же платформы (Apple против Android против Web) будут использовать один и тот же ключ API.

  • Firebase компании Apple Apps - Поиск авто подобранная ключ приложение , в API в файле конфигурации Firebase, GoogleService-Info.plist , в API_KEY поле.

  • Firebase Android программы и приложения - Найти автоматическое соответствие ключа API приложение , находится в файле конфигурации Firebase, google-services.json , в current_key поле.

  • Firebase Web Apps - Поиск авто подобранной ключ API приложения , находится в объекте конфигурации Firebase, в apiKey поле.

Использование ключа API

Ключи API используются для идентификации вашего проекта Firebase при взаимодействии со службами Firebase / Google. В частности, они используются для связывания запросов API с вашим проектом для квотирования и выставления счетов. Они также полезны для доступа к общедоступным данным.

Например, вы можете явно использовать ключ API, передав его значение в вызов REST API в качестве параметра запроса. Этот пример показывает , как вы могли бы сделать запрос к динамической ссылке ссылки Shortener API :

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Когда ваше приложение обращается к API Firebase, оно автоматически ищет в файле / объекте конфигурации Firebase ключ API вашего проекта. Однако вы можете установить ключи API, используя другой механизм, включая переменные среды.

Применить ограничения на ключи API (рекомендуется)

Хотя нет необходимости рассматривать ключ API для служб Firebase как секрет, есть некоторые конкретные случаи (см. Ниже), в которых вы можете принять дополнительные меры для защиты своего проекта от неправильного использования ключа API.

Ограничьте квоту, если вы используете аутентификацию на основе пароля

При использовании паролей на основе Firebase аутентификации и кто - то завладеет вашим ключом API, они не смогут получить доступ к любому из данных Cloud Storage базы данных вашего проекта Firebase или до тех пор , как эти данные защищены правилами безопасности Firebase . Однако они могут использовать ваш ключ API для доступа к конечным точкам аутентификации Firebase и делать запросы аутентификации для вашего проекта.

Для того, чтобы смягчить возможность того, что кто - то может неправильно использовать ключ API , чтобы попытаться атаки грубой силы, вы можете затянуть квоты по умолчанию для identitytoolkit.googleapis.com конечных точек , чтобы отразить обычные ожидания трафика вашего приложения. Имейте в виду, что если вы ужесточите эту квоту и ваше приложение внезапно получит пользователей, вы можете получить ошибки входа, пока не увеличите квоту. Вы можете изменить квоты API вашего проекта в Google Cloud Console .

Используйте отдельные ограниченные ключи API для определенных типов API.

Хотя ключи API, используемые для служб Firebase, обычно не нужно рассматривать как секретные, вам следует принять некоторые дополнительные меры предосторожности с ключами API, используемыми для предоставления доступа к API Google Cloud, которые вы включили вручную.

Если вы используете Google Cloud API (на любой платформе), который не включается автоматически Firebase (то есть вы включили его самостоятельно), вам следует подумать о создании отдельных ограниченных ключей API для использования с этими API. Это особенно важно, если API предназначен для платной службы Google Cloud.

Например, если вы используете Cloud API , видения Firebase ML на прошивке, вы должны создать отдельные ключи API , которые вы используете только для доступа к Cloud Вижна API.

Используя отдельные, ограниченные ключи API для не Firebase API , вы можете вращать или заменять ключи , когда это необходимо и добавить дополнительные ограничения на ключи API , не нарушая ваше использование услуг Firebase.

Используйте клавиши со среды конкретного API (рекомендуется)

Если вы настраиваете разные проекты Firebase для разных сред, таких как промежуточная и производственная, важно, чтобы каждый экземпляр приложения взаимодействовал со своим соответствующим проектом Firebase. Например, ваш промежуточный экземпляр приложения никогда не должен взаимодействовать с вашим производственным проектом Firebase. Это также означает, что ваше промежуточное приложение должно использовать ключи API, связанные с вашим промежуточным проектом Firebase.

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

Обратите внимание, что если вы используете Firebase Local Emulator Suite для разработки вместе с Firebase ML, вы должны создать и использовать ключ API только для отладки. Инструкции по созданию такого рода ключ можно найти в документации Firebase ML .

FAQs