Дата: 26.06.2017

Використання OAuth 2.0


OAuth 2.0 - це відкритий протокол авторизації, який дозволяє видати одному додатку (сервісу) права на до ресурсів  користувача, що зберігаються у іншому додатку (сервісі). Протокол позбавляє необхідності довіряти додатку логін та пароль користувача, а також дозволяє видавати обмежений набір прав доступу, а не всі й одразу.

Для початку Вам необхідно зареєструвати свій додаток . Зареєстрованному додатку видається сгенерований унікальний номер клієнта client_id та секретний ключ клієнта client_secret , що будуть використовуватись у роботі з OAuth. Секретний ключ не повинен розповсюджуватись.

СХЕМА РОБОТИ OAuth

Спрощена схема роботи протоколу OAuth 2.0, що використовується Порталом наведена на малюнку нижче.

 api_oauth_flow

 

КРОК 1 - Запит НА АВТОРИЗАЦІЮ

Ваш веб або мобільний додаток повинен переспрямовувати користувачів на таку URL-адресу:

http://ucci-service.org/oauth/authorize

Наступні значення повинні бути передані як параметри GET запиту:

  • client_id - видається при реєстрації вашого додатку (обов'язково)
  • scope - сфери застосування (обов'язково)
  • redirect_uri - посилання для переспрямовування (обов'язково)
  • response_type - задає тип відповіді
  • state - параметр, який використовується для запобігання підробки, унікальний для користувача, який авторизується

КРОК 2 - Отримання гранту авторизаціїї

На сторінці авторизації у користувача запитується дозвіл на видання прав доступу до його ресурсів. Якщо користувач дає дозвіл на використання його ресурсів, відбувається переспрямовування на вказану URL-адресу(redirect_uri) з додаванням гранту авторизації (code) до параметрів GET запиту

КРОК 3 - Запит на Отримання КЛЮЧУ ДОступу

Далі сервер Вашого додатку виконує POST-запит з отриманим грантом авторизації (code) в якості параметра. 

Якщо все добре, обмінюйте code авторизації на токен доступу, використовуючи API метод oauth.access

http://ucci-sevice.org/oauth/access

  • client_id - видається при реєстрації вашого додатку (обов'язково)
  • client_secret - видається при реєстрації вашого додатку (обов'язково)
  • code - тимчасовий код авторизації (обов'язково)
  • redirect_uri - повинен відповідати надіслланному раніше URI (якщо його було надіслано)

КРОК 4 - ОТРИМАННЯ КЛЮЧУ ДОСТУПУ

У відповідь на POST-запит Вам повернеться ключ доступу (token

{
   "ok": true,
   "access_token": "xoxp-...-...",
   "expires": 36000,
   "account_id": 123
}

 

Надалі Ви використовуєте отриманий ключ доступу, я параметр, за викликів методів API від імені користувача. Ключ доступу буде функціонувати, доки користувач не видалить Ваш додаток та/або не вичерпається термін дії данного ключу.