Передача токена доступа Google с клиента на сервер - PullRequest
1 голос
/ 16 апреля 2019

У меня есть приложение, интегрированное со службами Google (в частности, Google Bigquery API.)

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

В настоящее время я передаю токены доступа на сторону сервера (через https), инициализируя библиотеки Google на сервере.сторона с этим токеном, и делать операции там.

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

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

Естьесть ли риски безопасности при таком подходе?И независимо от этого, это предлагаемый способ делать то, что я хочу?

1 Ответ

0 голосов
/ 20 апреля 2019

Независимо от реализации BigQuery oAuth2, лучшая практика защиты рынка - хранить ТОЛЬКО краткосрочный токен безопасности на стороне клиента.Даже это может быть проблемой в зависимости от вашей техники безопасности клиента и инфраструктуры.

Два важных момента из официальной OAuth 2.0: структура авторизации: использование токенов на предъявителя

Хранение токенов

Не хранить токены носителей в файлах cookie: Реализации НЕ ДОЛЖНЫ хранить токены носителей в файлах cookie, которые могут быть отправлены в открытом виде (это передача по умолчанию)режим для печенья).Реализации, которые хранят токены на предъявителя в файлах cookie, ДОЛЖНЫ принять меры предосторожности против подделки межсайтовых запросов.

Краткосрочный токен

Выпуск кратковременного носителятокены: токен-серверам СЛЕДУЕТ выпускать краткосрочные (один час или менее) токены-носители, особенно при выдаче токенов клиентам, которые работают в веб-браузере или других средах, где может произойти утечка информации.Использование короткоживущих токенов на предъявителя может уменьшить влияние их утечки.

Теперь просмотрите документацию Bigquery по этой ссылке

enter image description here

Их рекомендация: Сохранять токены обновления в безопасном долговременном хранилище , которые обычно не выполняются в среде хранения на стороне клиента.

Поскольку вы всегда получаете обновлениеТокен из API BigQuery oAuth2 вы можете использовать его во всех вызовах API, выполняемых на стороне сервера, тем самым предоставляя пользователю беспрепятственный безопасный поток.Проверьте это в google oauthplayground

enter image description here

КСТАТИ: Обычно выполнение вызовов со стороны клиента происходит из соображений производительности, в случае с BigQuery, посколькуЭто решение для больших данных. Мне кажется, что дополнительные несколько секунд, связанные с вызовами на стороне сервера, менее важны

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...