Порядок авторизації в системі
Порядок взаємодії складових частин Системи ЦД та Системи ДУ під час ідентифікації користувача (клієнта) реалізується відповідно до протоколу OAuth 2.0.
Для ідентифікації Системи ДУ на сервері Системи ЦД, відповідні прикладні Системи ДУ попередньо реєструються згідно дотаткової угоди до Депозитарного договору з такою депозитарною утановою. Для забезпечення ідентифікації та згідно протоколу Oauth 2.0 для Системи ДУ встановлюються наступні параметри:
– ідентифікатор Системи ДУ client_id, який однозначно ідентифікує Систему ДУ;
– секретна строчка доступу client_secret, за якою сервер ЦД буде видавати серверу системи ДУ маркер доступу - access_token.
# Порядок взаємодії Систем ЦД та ДУ під час ідентифікації:
# 1. Запит на ідентифікацію, а саме:
# 1.1. відправка запиту на ідентифікацію
Відправка користувачем (клієнтом) запиту на ідентифікацію за методом GET протоколу HTTPS, обробка запиту та відправка сервером Системи ЦД відповіді до Системи ДУ:
GET
https://api.csd.ua/auth?client_id=client_id&state=state
# Параметри запиту
Параметр | Опис |
---|---|
client_id | Ідентифікатор Системи ДУ (значення наведене для прикладу) |
state | Параметр, значення якого має бути повернуто. Значення має бути випадковим |
1.2. обробкаа запиту та відправка сервером Системи ЦД серверу Cистеми ДУ відповіді на завершення ідентифікації у вигляді JSON-тексту виду:
Content-Type: application/json
{
«code»:«»,
«state»:«»
}
# Опис параметрів відповіді серверу прикладної системи на завершення ідентифікації
Параметр | Опис |
---|---|
code | Код авторизації |
state | Значення, що надсилалось у запиті |
# 2. Обробка сервером Системи ДУ етапу завершення ідентифікації користувача, а саме:
# 2.1. Отримання маркера доступу
Відправка сервером Системи ДУ запита серверу Системи ЦД на отримання маркера доступу за кодом завершення ідентифікації (code) методом POST протоколу HTTPS виду:
POST
https://api.csd.ua/auth/get-access-token?grant_type=authorization_code&client_id= client_id&client_secret= client_secret&code=code
Примітка
Код авторизації (code) може бути використаний лише один раз.
# 2.2. Отримання відповіді з маркером доступу
Обробка запиту та відправка сервером Системи ЦД серверу Cистеми ДУ відповіді з маркером доступу у вигляді JSON-тексту виду:
Content-Type: application/json
{
«access_token»:«»,
«token_type»:«bearer»,
«expires_in»:«»,
«refresh_token»:«»,
«user_id»:«»
}
# Опис параметрів відповіді серверу Cистеми ДУ з маркером доступу
Параметр | Опис |
---|---|
access_token | Маркер доступу (значення маркеру наведене для прикладу) |
token_type | Тип маркеру доступу (має фіксоване значення для застосування засобами ідентифікації – bearer – доступ за маркером для пред’явника) |
expires_in | Час завершення дії маркеру доступу |
user_id | Ідентифікатор ідентифікованого користувача |
refresh_token | Маркер для отримання нового маркеру доступу |
У сервері ідентифікації Системи ЦД ідентифікатори ідентифікованих користувачів (user_id) зберігаються у відпоідному журналі в базі даних (БД) і час завершення дії маркеру доступу (expires_in) вказує на термін існування відповідних записів у БД.
У разі помилки обробки запиту відправляється структура у вигляді JSON-тексту виду:
Content-Type: application/json
{
«error»:«invalid_grant»,
«error_description»:«»
}
# Опис параметрів помилки відповіді серверу системи ДУ з маркером доступу
Параметр | Опис |
---|---|
error | Тип помилки (значення наведене для прикладу) |
error_description | Опис помилки (значення наведене для прикладу) |
# 3. Запит на подовження дії маркеру доступу
# 3.1. Відправка запита на подовження дії маркера доступу
Відправка сервером Системи ДУ запита серверу ідентифікації Системи ЦД на подовження дії маркера доступу за маркером подовження дії маркеру доступу (refresh_token) методом POST протоколу HTTPS виду:
POST
https://api.csd.ua/auth/get-refresh-token?grant_type=refresh_token&
client_id= &
client_secret= &
refresh_token=
# 3.2. Отримання відповіді з маркером доступу
Обробка запиту та відправка сервером ідентифікації Системи ЦД серверу Системи ДУ відповіді з маркером доступу у вигляді JSON-тексту виду:
Content-Type: application/json
{
«access_token»:«»,
«token_type»:«bearer»,
«expires_in»:«»
}
# Опис параметрів відповіді серверу Системи ДУ з маркером доступу
Параметр | Опис |
---|---|
access_token | Тип помилки (значення наведене для прикладу) |
token_type | Тип маркеру доступу (має фіксоване значення для застосування засобами ідентифікації – bearer – доступ за маркером для пред’явника) |
expires_in | Час завершення дії маркеру доступу |
У разі помилки обробки запиту відправляється структура у вигляді JSON-тексту виду:
Content-Type: application/json
{
«error»:«invalid_grant»,
«error_description»:«»
}
# Запит на завершення сесії користувача
Запит складається з таких кроків:
# 4.1 Відправка запита на видалення даних сесії
Відправка сервером Системи ДУ запита серверу ідентифікації системи ЦД на видалення даних сесії користувача за маркером доступу (access_token) методом POST протоколу HTTPS виду:
POST
https://api.csd.ua/auth/get-user-logout?refresh_token=
# Опис параметрів запиту на отримання інформації про користувача Системи ДУ
Параметр | Опис |
---|---|
refresh_token | Маркер доступу |
# 4.2. Отримання відповіді з маркером доступу
Обробка запиту та відправка сервером ідентифікації Системи ЦД серверу Системи ДУ відповіді з маркером доступу у вигляді JSON-тексту виду:
Content-Type: application/json
{
«error»:«0»,
«error_description»:«»
}
У разі помилки обробки запиту відправляється структура у вигляді JSON-тексту виду:
Content-Type: application/json
{
«error»:«1»,
«error_description»:«»
}