Совместное использование токенов обновления и идентификаторов клиентов

Возможно, этот вопрос уже был задан, но я не вижу много информации о refresh_token совместном использовании.

Итак, мы используем сценарий Azure Native API to Web API для аутентификации пользователей. На моем клиентском компьютере будет скрипт python, который при выполнении будет аутентифицировать пользователей и генерировать access_token и refresh_token. Для этого в сценариях есть client_id собственного приложения (client_secret для собственного приложения не требуется). После аутентификации мы используем токены для доступа к веб-API.

Вопрос: поскольку в клиентском приложении есть вся эта информация, если пользователь взломает код и получит доступ к client_id, access_token и refresh_token, сможет ли он использовать их для создания токенов и доступа к веб-API?

Хотя мы делаем access_token недолговечным до 10 минут, если он получит client_id и refresh_token, сможет ли он сгенерировать столько токенов, сколько хочет, и получить доступ к веб-API. Будет ли refresh_token с одной машины работать на другой машине? Я не могу найти документацию от Microsoft, в которой говорится, что refresh_tokens привязаны к машине на основе IP или MAC или чего-то еще.


person Venkatesh Marepalli    schedule 26.05.2017    source источник


Ответы (1)


Это то, что они называют токенами на предъявителя. Если токены будут взломаны, безопасности нет. Токены-носители должны передаваться по ssl и надежно храниться.

person Lingeshwaran Palaniappan    schedule 26.05.2017
comment
Надежно хранится? Клиентское приложение находится на клиентской машине, так как мы можем его безопасно хранить? Это моя забота - person Venkatesh Marepalli; 26.05.2017
comment
См. RFC по модели угроз OAuth 2.0 и соображениям безопасности, в частности в разделе «Угроза: получение токенов обновления» инструменты .ietf.org / html / rfc6819 # page-17 - person andresm53; 26.05.2017
comment
На каждой платформе есть рекомендованное хранилище для хранения токенов. В случае веб-браузеров подойдет локальное хранилище. - person Lingeshwaran Palaniappan; 26.05.2017