Пояснення протоколу OAuth
Ось уже котрий день розбираюся в протоколі OAuth і ніяк в моїй голові не вдасться один момент:
Припустимо, є у мене якийсь сервіс із REST API та OAuth-сервер. Я створюю десктоп (або мобільний) додаток, реєструю його на OAuth-сервері та отримую згенеровані ним app_id та app_secret, які згодом використовую для отримання токена. Припустимо, мій додаток буде раз на хвилину відсилати лог роботи на сервіс (методом POST), і працювати він має 24/7 без втручання людини, а отже, токен мені потрібен безстроковий. Далі означає отримую я токен і починаю працювати з сервісом. При цьому, як я розумію, і app_id, і app_secret і токен мають десь зберігатися. У разі десктоп програми це, наприклад, файл конфігурації або реєстр Windows. Відповідно, ці дані можна комуніздити і використовувати в поганих цілях, наприклад, тупо заDDoSити мій сервіс яким-небудь стороннім додатком.
Чи правильно я міркую чи десь помиляюся?
Втрата app_secret, дорівнює втрати пароля від чогось.
Якщо наприклад вкрасти ssh ключ, теж можна отримати доступ до сервера. Secret це і є наш приватний ключ.
Тобто. якщо app_id і app_secret тупо зашифрувати і зашити в код програми, а поза програмою зберігати тільки токен, то це трохи безпечніше?
Хоча знову ось питання: в принципі, мені для стороннього додатку взагалі достатньо знати токен і я зможу надсилати запити до сервісу?