почему нельзя украсть токен доступа? - PullRequest
24 голосов
/ 08 июля 2011

Я изучаю OAuth и у меня есть вопрос, я не могу найти ответ ..

Я понял, что маркер запроса авторизовать или нет приложение для использования API. Но как только пользователь получил токен доступа, что произойдет, если кто-то украдет его токен доступа?

Представьте, что у нас есть что-то вроде http://www.example.com/api/article/1?access_token=******access_token******

Если я передам этот URL другому пользователю, у другого будет мой доступ, и поэтому API больше не будет защищен?

1 Ответ

9 голосов
/ 09 июля 2011

Краткий ответ: Да, для OAuth2 - тот, кто имеет действительный токен access_token, будет иметь доступ к ресурсам, указанным этим токеном.Как долго зависит от OAuth2 реализация провайдера.

Длинный ответ об OAuth1 и 2:

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

OAuth 2 отличается - возможно, более важно, чтобы токены доступа оставались конфиденциальными.Поэтому провайдер API должен гарантировать, что токены доступа, которые в OAuth2 также известны как токены канала-носителя, действительны только в течение максимально короткого времени.Эти токены работают как пароли и, если они перехвачены, могут быть немедленно использованы злоумышленником.Следовательно, спецификация OAuth2 (с токеном-носителем) требует, чтобы все взаимодействие осуществлялось по протоколу SSL - поскольку криптография не встроена в спецификацию.Обычно токены доступа имеют короткий срок действия, который может обновляться с помощью «токена обновления», который имеет более длительный срок действия, но передается только тогда, когда потребитель получает исходный токен носителя и когда обновляется токен носителя.

...