Тип приложения Google Oauth2 Веб-сервер против настольного приложения?

Я пытаюсь создать веб-приложение для своего сервера, которое может подключать формы моего веб-сайта к Google Sheet. При создании идентификатора клиента OAuth и секрета я выбрал веб-сервер, и мне нужно было ввести URI обратного вызова для обработки кода авторизации, возвращаемого Google в качестве ответа.

введите описание изображения здесь

Что ж, теперь я создал другой идентификатор клиента, но на этот раз я выбрал тип приложения как Рабочий стол, и мне не нужно было вводить какой-либо URI перенаправления. В моем приложении PHP я использовал URI перенаправления как urn:ietf:wg:oauth:2.0:oob.

введите описание изображения здесь

Однако в обоих случаях мне удалось получить токен доступа и токен обновления, а мой API листов Google работал без сбоев.

Итак, мой вопрос, почему я должен выбрать тип приложения как веб-сервер и сделать дополнительный шаг, введя URI перенаправления? Какая от этого польза?

Вы можете проверить Quickstart Oauthflow здесь, https://developers.google.com/sheets / api / quickstart / php # stepurn:ietf:wg:oauth:2.0:oobturn_on_the


person SkyRar    schedule 15.09.2020    source источник


Ответы (1)


Итак, мой вопрос, почему я должен выбрать тип приложения как веб-сервер и сделать дополнительный шаг, введя URI перенаправления? Какая от этого польза?

Безопасность. Клиент веб-сервера вернет аутентификацию вашему серверу. Установленный вернет его туда, откуда пришел запрос. Если кто-то узнал ваш идентификатор клиента и секрет для веб-приложения, он не смог бы его использовать. Однако, если кто-то получил ваш идентификатор клиента и секрет для установленного приложения, он мог бы легко использовать его, чтобы выдать себя за вашу учетную запись разработчика.

Что такое идентификатор клиента и секрет клиента.

Считайте идентификатор клиента логином, а секрет - паролем. Эти логин и пароль идентифицируют ваш проект для Google, и они идентифицируют разработчика этого проекта как вас.

Вы, как разработчик, несете ответственность за этот логин и пароль. Если он украден, то, насколько Google видит, это ваше приложение, использующее его, у Google нет другого способа узнать об этом. Если логин и пароль для настольного приложения украдены, кто-то может разместить приложение, и, насколько известно, это будет ваше приложение.

Вы создаете супер-классное почтовое приложение, которое дает доступ к учетной записи gmail пользователя. Он становится очень популярным, и многие люди знают его имя. Кто-то крадет ваш идентификатор клиента, и секрет создает приложение, которое выглядит точно так же, как ваше супер-классное почтовое приложение. Никто не может знать, что это не так. Поскольку он настроен как настольное приложение, этот человек может затем установить его и начать сбор авторизации от ваших потенциальных пользователей, даже не подозревая о них. Это похоже на ваше приложение, только ответы будут отправляться на urn: ietf: wg: oauth: 2.0: oob, который является хост-сервером человека, который установил это приложение, чтобы имитировать ваше.

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

person DaImTo    schedule 15.09.2020
comment
Вы имеете в виду, что если я устанавливаю Desktop App, любое количество серверов, установленных на этом рабочем столе, может выдавать себя за мою учетную запись. Это? - person SkyRar; 15.09.2020
comment
Я имею в виду, если вы установите его в настольное приложение. И кто-то каким-то образом ворует ваш идентификатор клиента и секрет клиента. Затем они могут использовать это для создания приложения, которое, насколько Google может определить, является ли вы пользователями, которые входят в систему, это вы. Этот злой человек может затем спамить API так много, что Google заблокирует вас за спам, и у вас не будет возможности получить доступ к своей учетной записи до скончания веков. Также от вашего имени будут украдены пользовательские данные, что может повлечь за собой ответственность по юридическим причинам. - person DaImTo; 16.09.2020