Пояснение по протоколу OAuth?

Вот уже который день разбираюсь в протоколе OAuth и никак в моей голове не уложится один момент:

Предположим, есть у меня некий сервис с REST API и OAuth-сервер. Я создаю десктоп (или мобильное) приложение, регистрирую его на OAuth-сервере и получаю сгенерированные им app_id и app_secret, которые впоследствии использую для получения токена. Предположим, мое приложение будет раз в минуту отсылать лог работы на сервис (методом POST), и работать оно должно 24/7 без вмешательства человека, а значит токен мне нужен бессрочный. Далее значит получаю я токен и начинаю работать с сервисом. При этом, как я понимаю, и app_id и app_secret и токен должны где-то хранится. В случае десктоп приложения это, например, конфигурационный файл или реестр Windows. Соответственно, эти данные можно скомуниздить и использовать в нехороших целях, например, тупо заDDoSить мой сервис каким нибудь сторонним приложением.


Правильно ли я рассуждаю или где-то ошибаюсь?
  • Вопрос задан
  • 3853 просмотра
Решения вопроса 1
fear86
@fear86
Developer
Потеря app_secret, равна потери пароля от чего либо.

Если например украсть ssh ключь, то тоже можно получить доступ к серверу. Secret — это и есть наш приватный ключ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@sergei-grigorev
Сделайте ограничение не более 3х запросов в секунду, как это сделано во Vkontakte API. Можно еще сделать проверку, если запросы слишком часто — то делать токен недействительным, соответственно пользователю придется заново аутентифицироваться, когда он захочет воспользоваться вашим приложеним.
Ответ написан
maxvipon
@maxvipon Автор вопроса
Сергей, спасибо за наводку. Буду смотреть и искать что-то для WCF.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы