Что такое googleapis.com и почему приложения подключаются к нему
googleapis.com — это пространство доменных имён, которое Google использует для множества своих интерфейсов прикладного программирования, обычно называемых API. Это не один API и не обычная главная страница для пользователей. Полезной частью адреса часто является полное имя хоста перед .googleapis.com, например serviceusage.googleapis.com, поскольку оно указывает на сервис, к которому пытается обратиться приложение.
Если вы обнаружили этот домен в инструментах разработчика браузера, журнале межсетевого экрана, настройках приложения или сообщении об ошибке, одно лишь имя даёт только часть ответа. Вам всё ещё потребуются полное имя хоста, приложение, отправившее запрос, и документация конкретного сервиса Google.
Для чего используется googleapis.com
Google предоставляет API, чтобы программное обеспечение могло запрашивать данные или выполнять действия через документированные интерфейсы. К этим интерфейсам могут обращаться сайты, мобильные приложения, серверные программы, инструменты командной строки и собственные продукты Google.
Многие из этих интерфейсов используют имя хоста конкретного сервиса, оканчивающееся на googleapis.com. Благодаря этому шаблону связанные конечные точки легко распознавать, а отдельные сервисы остаются обособленными.
Например, в документации Google адрес serviceusage.googleapis.com используется для Service Usage API. Этот сервис помогает проектам Google Cloud просматривать доступные им сервисы и управлять ими. Другое имя хоста в том же родительском домене может обслуживать совершенно иной API.
Представьте googleapis.com как название улицы, а не отдельный магазин. Полное имя хоста больше похоже на номер здания. Путь и метод запроса затем помогают определить конкретное окно, к которому обращается приложение.
Это различие предотвращает распространённую ошибку: увидеть один запрос к googleapis.com и решить, что он представляет все API Google. Это не так. Каждый сервис может определять собственные:
- Ресурсы и операции
- Требования к аутентификации
- Разрешения и области доступа OAuth
- Форматы запросов и ответов
- Ограничения использования и правила оплаты
- Условия, уведомления о конфиденциальности и методы обработки данных
Почему приложение подключается к googleapis.com
Приложение подключается к имени хоста *.googleapis.com, когда ему требуется API Google или связанный сервис для разработчиков. Запрос может обеспечивать видимую функцию, например загрузку картографических данных, или фоновую задачу, например проверку того, включён ли облачный сервис.
Родительский домен не сообщает, какая функция была задействована. Чтобы разобраться в подключении, начните с этих четырёх сведений:
- Полное имя хоста, включая всё, что находится перед
.googleapis.com - Путь запроса и HTTP-метод
- Страница, приложение, расширение или процесс, инициировавшие запрос
- Официальная документация названного сервиса
Этот контекст также помогает отличить трафик, созданный продуктом Google, от трафика, созданного независимым разработчиком. Стороннее приложение может использовать API Google по своему выбору, поэтому имя хоста назначения не доказывает, что Google разработала соответствующую функцию или контролирует методы обеспечения конфиденциальности в приложении.
Является ли googleapis.com одним API?
Нет. Домен обслуживает множество API и сервисов для разработчиков. Если считать его одним продуктом, это скроет существенные различия между расположенными под ним конечными точками.
Google описывает API через ресурсы и методы. Ресурс может представлять объект, которым управляет сервис, а метод описывает операцию, которую можно выполнить. Точная модель определяется конкретным API.
Google также публикует Google API Discovery Service. Он предоставляет машиночитаемые описания поддерживаемых API. Документ обнаружения может описывать методы, параметры, схемы и области доступа OAuth, чтобы инструменты могли понимать API.
Discovery Service — не то же самое, что каждый описываемый им API. Он предоставляет метаданные. Конечная точка конкретного сервиса выполняет документированную операцию. Разделение этих ролей упрощает интерпретацию сообщений об ошибках и сетевой активности.
Как работает аутентификация
Не каждый запрос использует один и тот же метод аутентификации. Некоторые операции могут быть общедоступными. Для других требуется проект, аутентифицированный субъект, определённое разрешение или согласие пользователя.
В документации API Google часто встречаются три термина:
| Метод | Что он обычно делает | Чего он не доказывает |
|---|---|---|
| Ключ API | Идентифицирует вызывающий проект или приложение | Он не означает, что пользователь предоставил доступ к закрытым данным своей учётной записи |
| OAuth 2.0 | Позволяет приложению запрашивать делегированный доступ в пределах указанных областей | Согласие на одну область доступа не предоставляет все разрешения |
| Сервисный аккаунт | Представляет рабочую нагрузку или приложение, а не человека | Аккаунту всё равно требуется разрешение на выполнение операции |
Ключ API обычно используется для идентификации вызывающей стороны и применения элементов управления или квот на уровне проекта. Поскольку это учётные данные, ключ следует ограничивать и защищать в соответствии с рекомендациями Google.
OAuth 2.0 используется, когда приложению требуется авторизованный доступ, связанный с пользователем. Приложение запрашивает одну или несколько областей доступа. Эти области описывают запрашиваемый доступ, а пользователь или организация могут решить, предоставлять ли его.
Сервисный аккаунт представляет программное обеспечение. Он часто используется во взаимодействиях между серверами и в облачных рабочих нагрузках, где нет человека, который мог бы подтверждать каждый запрос. Сервисный аккаунт может выполнять только действия, разрешённые назначенными ему ролями и разрешениями.
Документация конечной точки является источником истины. Не определяйте тип учётных данных только по суффиксу googleapis.com.
Как идентифицировать запрос
Предположим, что журнал браузера или сети показывает подключение к адресу googleapis.com. Используйте последовательную процедуру, а не пытайтесь угадать назначение по названию бренда.
1. Скопируйте полный URL
Сохраните имя хоста, путь и строку запроса. Перед передачей записи другому человеку скройте токены, ключи API, заголовки авторизации и персональные данные.
Имя хоста часто указывает на сервис. Путь может указывать на ресурс или метод. HTTP-метод, например GET или POST, даёт ещё одну подсказку.
2. Найдите инициатора
Инструменты разработчика браузера могут показать, какой скрипт или страница инициировали запрос. Серверные журналы могут связать его с процессом или компонентом. В управляемой сети определить источник помогают сведения об устройстве и приложении.
Этот шаг важен, поскольку к одному API могут обращаться несколько не связанных между собой приложений.
3. Сопоставьте имя хоста с официальной документацией
Найдите точное имя хоста сервиса в документации Google для разработчиков или Google Cloud. Убедитесь, что документированная конечная точка совпадает с наблюдаемым хостом, а не полагайтесь на сообщение на форуме или похожее имя.
Документация должна описывать доступные операции, необходимые учётные данные, разрешения, квоты и ответы с ошибками.
4. Проверьте авторизацию
Если запрос использует OAuth, проверьте запрашиваемые области доступа. Если используется сервисный аккаунт, проверьте его роли. Если используется ключ API, проверьте, какие API, источники или адреса разрешено использовать этому ключу.
Учётные данные должны быть ограничены тем, что необходимо приложению. Работоспособные учётные данные не обязательно ограничены надлежащим образом.
5. Проверьте отправляемые данные
Изучите поля запроса и документацию сервиса. Имя хоста сообщает, куда был направлен трафик, но не раскрывает полное содержимое или назначение этого трафика.
Какие вопросы о конфиденциальности следует задать
Google публикует общие условия использования API и информацию о конфиденциальности, но фактическое влияние на конфиденциальность зависит от сервиса, операции и приложения, отправляющего запрос.
Задайте конкретные вопросы:
- Какое имя хоста конкретного сервиса получает запрос?
- Содержит ли запрос идентификаторы, сведения об учётной записи, местоположение, файлы или другие конфиденциальные данные?
- Вызывающей стороной является продукт Google или стороннее приложение?
- Какие области доступа OAuth или облачные разрешения задействованы?
- Что говорится в собственном уведомлении приложения о конфиденциальности?
- Публикует ли сервис дополнительные условия или сведения о сроках хранения?
- Может ли интеграция работать с меньшим объёмом данных или более узкими разрешениями?
Знакомый адрес назначения не заменяет проверку приложения. Независимое приложение по-прежнему обязано объяснять, почему оно использует API и как обрабатывает данные.
Безопасен ли googleapis.com?
Домен связан с инфраструктурой API Google, но слово «безопасен» выражает слишком широкий вывод для одного суффикса имени хоста. Безопасность зависит от конкретной конечной точки, вызывающей стороны, её учётных данных и выполняемого действия.
Даже законный API может использоваться плохо спроектированным приложением. Действительный запрос может раскрыть больше данных, чем необходимо, если его разрешения слишком широки. Похожее имя хоста также может вводить в заблуждение, поэтому следует внимательно проверять полный зарегистрированный домен и TLS-соединение.
Учитывайте полный контекст:
- Убедитесь, что имя хоста действительно оканчивается на
.googleapis.comи после него нет дополнительных слов. - Определите приложение, отправляющее запрос.
- Проверьте конечную точку по официальной документации Google.
- Проверьте запрашиваемые области доступа и разрешения.
- Ограничьте учётные данные и сетевую политику минимально необходимой областью.
- Исследуйте неожиданный объём трафика, адреса назначения или поля данных.
Следует ли разрешать или блокировать весь домен?
Универсального ответа нет. Полная блокировка может нарушить работу не связанных между собой приложений, поскольку родительский домен используется многими сервисами. Полное разрешение может оказаться шире необходимого, если приложению требуется лишь одно документированное имя хоста.
В корпоративной сети более узкое правило обычно проще понять и проверить. Определите имя хоста сервиса и бизнес-функцию, для которой он необходим. Затем примените политику безопасности организации и протестируйте результат.
На личном устройстве сначала определите, какое приложение или расширение браузера инициировало подключение. Отключение или удаление неожиданного инициатора может дать больше информации, чем блокировка крупного общего домена с последующим ожиданием того, что перестанет работать.
При устранении ошибки API проверяйте не только подключение. К распространённым причинам относятся:
- API не включён для проекта
- Учётные данные отсутствуют, недействительны или ограничены неправильно
- У субъекта нет необходимой роли или области доступа OAuth
- Действует квота или правило оплаты
- В запросе используется неправильный сервис, путь, метод или регион
- Локальный межсетевой экран, прокси-сервер или правило DNS блокирует имя хоста
Документация сервиса и возвращённое тело ошибки обычно обеспечивают более точную диагностику, чем открытие пустого родительского домена в браузере.
Кому необходимо понимать, что такое googleapis.com?
Разработчикам это необходимо при настройке и отладке интеграций с API Google. Администраторам — при составлении карты зависимостей приложений. Специалистам по безопасности и конфиденциальности — при проверке исходящих подключений, учётных данных и потоков данных. Обычные пользователи могут встретить его в сообщении об ошибке или инструменте обеспечения конфиденциальности.
Всем четырём группам полезно одно и то же правило: сохраняйте полное имя хоста и оценивайте конкретный сервис в контексте.
Краткий ответ: googleapis.com — это общее пространство имён для множества конечных точек API Google. Оно полезно тем, что программное обеспечение может обращаться к документированным сервисам Google через имена хостов конкретных сервисов. Но как объяснение оно ограничено, поскольку одно лишь родительское имя не раскрывает назначение запроса, разрешения, вызывающую сторону или данные. Чтобы получить эти ответы, найдите по точному имени хоста официальную документацию сервиса.
Успешный ответ не гарантирует безопасность. Измерения отражают одно наблюдение в определённый момент времени.
