Всі статті
Опубліковано Оновлено 7 хв читання

OAuth простими словами для тих, хто має його впровадити

Від Команда Alt Auth

двоє людей тиснуть руки перед ноутбуком
Фото від Radission US на Unsplash

Документація OAuth написана для тих, хто реалізує провайдерів. Майже всі, хто її читає, натомість намагаються додати кнопку «Продовжити з Google», і розрив між цими двома аудиторіями — причина, чому тема здається складнішою, ніж є насправді.

Що насправді відбувається

Ви надсилаєте користувача до Google з повідомленням, хто ви і куди його повернути. Він входить на сторінці Google — ваш застосунок ніколи не бачить пароля. Google повертає його з коротким кодом. Ваш сервер обмінює цей код через зворотний канал на токен, що підтверджує, хто цей користувач. Ось і вся форма.

Де це йде не так

  • Обмін кодом у браузері, що зливає client secret.
  • Пропуск параметра state, який саме й зупиняє cross-site request forgery на callback.
  • Довіра до твердження про email без перевірки, що він підтверджений — непідтверджений email очікує захоплення облікового запису.
  • Припущення, що ідентифікатор користувача провайдера — це email. Це не так, і люди змінюють email.
  • Забутий випадок прив’язки облікових записів: та сама людина, другий провайдер, два акаунти.
“Небезпечна частина OAuth — не протокол. Це п’ять дрібних рішень, про які не згадав посібник.”

Кожна з цих речей обробляється за вас, коли інтеграція провайдера є конфігурацією, а не кодом. Вхід через Google доступний на кожному плані Alt Auth, включно з безкоштовним, а Apple, Facebook і Microsoft — на вищих планах.

OAuthІнженеріяОснови