Вопросы безопасности OAuth2 для client_id - PullRequest
3 голосов
/ 04 января 2012

При использовании потока User-agent с OAuth2 для мобильной платформы сервер авторизации не может аутентифицировать client_id приложения.

Таким образом, любой может выдать себя за мое приложение, скопировав client_id (получить все токены доступа от моего имени), и это применимо к Facebook, Foursquare, ...

Это не управляется OAuth2?Или я что-то пропустил?

Для веб-приложений (поток веб-сервера) токен доступа хранится на стороне сервера, а клиент аутентифицируется с использованием секретного ключа.

Ответы [ 2 ]

4 голосов
/ 05 января 2012

Нет хорошего ответа. Собственные обратные вызовы приложений обычно выполняются с помощью пользовательских зарегистрированных схем URI (например, URI перенаправления обратного вызова выглядит примерно так: myapp: // oauth? Code = xyz123). К сожалению, любое приложение может претендовать на владение данной схемой протокола и получить обратный вызов.

Эта проблема является синонимом попытки заблокировать любой протокол с помощью «доверенных клиентов». Подумайте о битве сетей IM, чтобы заблокировать сторонних клиентов (в начале 2000-х). В конце концов они сдались - поскольку любые развернутые конечные точки клиента и протокола могут быть перепроектированы сторонними разработчиками.

Примечание. В списке рассылки OAuth WG также активно обсуждается эта тема: http://www.ietf.org/mail-archive/web/oauth/current/msg08177.html

2 голосов
/ 04 января 2012

Обычно client_id связан с URL сайта - ответы / перенаправления OAuth будут отправляться только зарегистрированному URL.Таким образом, злоумышленник не сможет получить результаты запроса на своем сайте (если только ваши страницы и страницы злоумышленника не находятся в одном домене).

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