Чим відрізняються OAuth 1 від OAuth 2

Обкладинка допису: Чим відрізняються OAuth 1 від OAuth 2
ЗмістНатисність на посилання, щоб перейти до потрібного місця

OAuth 1

OAuth 1 був розроблений на початку 2000-х як спосіб безпечного доступу сторонніх додатків до ресурсів користувача без передачі пароля. Основна ідея полягала в тому, щоб сторонній сервіс міг робити запити від імені користувача, але кожен запит підписувався криптографічно, щоб гарантувати, що він не змінений і походить від авторизованого клієнта.
Особливості OAuth 1:
  • Криптографічний підпис кожного запиту (HMAC-SHA1 або RSA-SHA1).
  • Використовував два типи токенів: request token для початку авторизації і access token для доступу до ресурсів.
  • Міг працювати навіть без HTTPS, бо безпеку забезпечував підпис запиту.
  • Підходив переважно для серверних застосунків і обмеженої кількості сценаріїв авторизації.
OAuth 1 активно використовувався у таких сервісах, як Twitter API v1 або старі версії LinkedIn, але через складність у реалізації і проблеми з підписами його поступово замінив OAuth 2.

OAuth 2

OAuth 2 з’явився у 2012 році як спрощена, гнучкіша і сучасна версія протоколу для авторизації та доступу до ресурсів. Його мета - зробити роботу розробників простішою, дозволити різним типам клієнтів (веб, мобільні додатки, SPA) легко отримувати доступ до ресурсів користувача, не передаючи пароль.
Особливості OAuth 2:
  • Використовує токени доступу (access token) та опційно refresh token. Access token короткостроковий, refresh token дозволяє продовжити сесію.
  • Не потребує криптографічного підпису запиту - безпека забезпечується через HTTPS.
  • Підтримує різні потоки авторизації: authorization code (для серверних веб-клієнтів), implicit (для SPA), password (для довірених клієнтів) та client credentials (для сервер-сервер взаємодії).
  • Набагато простіше в реалізації та підтримується сучасними API (Google, Facebook, GitHub, Microsoft, Stripe тощо).
Коли що краще використовувати:
  • OAuth 1: якщо ви працюєте з дуже старими API, які його потребують, або в середовищі без HTTPS, де важлива криптографія на рівні запиту.
  • OAuth 2: для сучасних веб та мобільних додатків, SPA, API, де HTTPS гарантовано. Також зручний для сторонніх клієнтів, бо підтримує refresh токени та різні потоки авторизації.

Порівняння OAuth 1 і OAuth 2 на практиці

  • Складність: OAuth 1 складніший через підписи, OAuth 2 простіший і гнучкіший.
  • Безпека: OAuth 1 безпечний навіть без HTTPS, OAuth 2 потребує HTTPS.
  • Гнучкість: OAuth 1 обмежений, OAuth 2 підтримує багато потоків авторизації.
  • Використання сьогодні: OAuth 1 майже не використовується, OAuth 2 - стандарт для сучасних API і сервісів.
OAuth 1 був про безпечну авторизацію без HTTPS, OAuth 2 - про гнучкість, простоту і сучасні сценарії для веб і мобільних додатків.

Цей допис поки що не має жодних доповнень від автора/ки.

Що таке факторіальна складність?
16 вер., 19:03

Що таке факторіальна складність?

meme code
meme code@memecode
Що таке NP-складність?
16 вер., 19:31

Що таке NP-складність?

meme code
meme code@memecode
Offset vs Cursor Pagination у Rails: що вибрати та чому
24 вер., 15:22

Offset vs Cursor Pagination у Rails: що вибрати та чому

meme code
meme code@memecode
Що таке Row Security в PostgreSQL і навіщо це Rails-розробникам
04 жовт., 19:06

Що таке Row Security в PostgreSQL і навіщо це Rails-розробникам

meme code
meme code@memecode
Що таке ivar у Ruby / Rails?
19 жовт., 20:12

Що таке ivar у Ruby / Rails?

meme code
meme code@memecode
Основні способи аутентифікації в API
19 жовт., 20:26

Основні способи аутентифікації в API

meme code
meme code@memecode