Когда использовать закрытый ключ во время рабочего процесса Google OAuth? - PullRequest
0 голосов
/ 23 декабря 2018

Я создаю рабочий процесс на основе OAuth для защиты некоторых ресурсов, и мне интересно, действительно ли секретный ключ клиента, предоставляемый Google, полезен для других целей, помимо входа в JSON Web Token (JWT).

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

Есть ли что-то, чего мне не хватает в данный момент?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Секрет клиента Google используется для идентификации вашего приложения / веб-сайта для Google OAuth 2.0.«Секрет клиента» ничего не будет значить за пределами Сервисов Google.

В ваших комментариях к вопросам вы спрашиваете, безопасно ли отправлять токен доступа на сервер.Если вы правильно внедрили Google OAuth 2.0, вашему серверу был отправлен токен доступа как часть процесса аутентификации.Нет необходимости отправлять токен от клиента на сервер, так как он уже есть на сервере (вы должны были сохранить токен доступа, токен обновления и идентификатор клиента после аутентификации как часть состояния сеанса клиента).Во время авторизации пользователь предоставил вашему приложению / веб-сайту разрешение на использование запрошенных областей.

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

0 голосов
/ 23 декабря 2018

Да, вам нужно client_secret для обмена access_token , я предполагаю, что ваше текущее приложение использует код авторизации тип предоставления для обмена access_token , которыйне нужно client_secret , только redirect_uri и client_id , потому что вы не можете безопасно хранить client_secret в чистом внешнем приложении.

В oauth2 есть другой тип предоставления, например, Учетные данные клиента (в основном используются серверным приложением), вам необходимо предоставить client_id и client_secret для обмена access_token.

Подробнее о типе гранта oauth-2 можно узнать здесь

...