Мне нужно было получить доступ к сервису Google, то есть к Google Analytics, из моего приложения Symfony 2, поэтому мне пришлось использовать клиент API Google (версия 2). Прежде чем получить доступ к информации Google Analytics, мне пришлось создать ключ API, идентификатор клиента или учетную запись службы в консоли API Google.
В конце я создал учетную запись службы, и файл был загружен. Этот файл используется клиентом API Google для предоставления доступа к моей учетной записи Google Analytics и соответствующей собранной информации.
Мой вопрос:
В чем различия между ключом API, идентификатором клиента и учетной записью службы?
Когда создавать / использовать один поверх другого и почему?
Я не видел ни одной исчерпывающей статьи, которая объясняет, что я спрашиваю в этом вопросе.
API ключи аутентифицироваться для API, которые не имеют доступа к личным данным.
ID клиента аутентифицируется с вашей учетной записью Google.
учетная запись службы проверяет подлинность вашего приложения, когда вы не хотите использовать данные для входа в свою учетную запись (или любую учетную запись реального лица).
Вам все еще нужно добавить учетную запись службы в любую службу Google, к которой вы хотите получить доступ с помощью этой учетной записи службы.
Эта тема старая, но все еще добавляет информацию. Может помочь другим в будущем.
Google нужен уникальный идентификатор, чтобы связать его с вашим проектом (с вашим пакетом Android) для аутентификации и для управления трафиком или квотами.
Oauth и ключ API являются такими уникальными идентификаторами.
Идентификаторы клиента OAuth 2.0: Если ваше приложение использует протокол OAuth 2.0, используйте идентификатор клиента OAuth.
OAuth используется для создания токена доступа, который, в свою очередь, является уникальным идентификатором. Тем не менее, пользователь должен согласиться с согласием.
https://developers.google.com/identity/protocols/OAuth2
Ключи API: Ключ API — это уникальный идентификатор, который вы генерируете с помощью консоли. Преимущество в том, что пользователь не требует действий пользователя или согласия. Но вы не можете использовать ключ API для авторизации в отличие от OAuth. Используйте ключ API, если необходимые данные являются общедоступными и не требуют аутентификации пользователя, например карт Google.
Сервисный аккаунт API Google, такие как Prediction API и Google Cloud Storage, могут действовать от имени вашего приложения, не обращаясь к пользовательской информации. В этих ситуациях ваше приложение должно подтвердить свою идентичность API, но согласие пользователя не требуется. Аналогично, в корпоративных сценариях ваше приложение может запрашивать делегированный доступ к некоторым ресурсам.
Для этих типов межсерверных взаимодействий вам нужна служебная учетная запись.
https://developers.google.com/identity/protocols/OAuth2#serviceaccount