Управління доступом

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

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

2. Визначення

Основні терміни та поняття, пов’язані з управлінням доступом, включають:

  • Автентифікація (Authentication): Процес підтвердження ідентичності користувача, зазвичай заснований на введенні логіну та пароля, або використанні токенів та інших методів.

  • Авторизація (Authorization): Процес визначення та надання користувачеві прав доступу до певних ресурсів або функцій на основі його ролі чи обов’язків.

  • Роль (Role): Набір дозволів, який призначається користувачам для визначення їхнього рівня доступу та функціональних можливостей. Ролі групують схожі права.

  • Дозвіл (Permission): Конкретне право або дозвіл на виконання певної дії або доступ до певних ресурсів. Дозволи пов’язані з конкретними ролями.

  • Сесія (Session): Період часу, протягом якого користувач залишається в системі після входу. Управління сесіями дозволяє контролювати тривалість та статус сеансів.

  • Один обліковий запис для багатьох послуг (Single Sign-On - SSO): Механізм, який дозволяє користувачам увійти в систему одного сервісу та автоматично отримати доступ до інших послуг без потреби повторного вводу облікових даних.

3. Принципи управління доступом

Принципи управління доступом встановлюють основні настанови та підходи до реалізації безпеки та ефективності управління доступом на платформі реєстрів.

  • Принцип найменшого привілею (Principle of Least Privilege - PoLP): Користувачеві надаються лише ті права, які необхідні для виконання його завдань. Це зменшує ризики несанкціонованого використання та поширення прав доступу.

  • Принцип обмеженого доступу (Need-to-Know Principle): Користувачі отримують доступ лише до тієї інформації, яка необхідна для виконання їхніх обов’язків. Це допомагає уникнути розголошення зайвої інформації.

  • Гнучкість (Flexibility): Система управління доступом повинна бути гнучкою, щоб враховувати різноманітні потреби користувачів та зміни в організаційних процесах.

  • Автоматизація (Automation): Використання автоматичних процесів для керування доступом допомагає зменшити можливість помилок та підвищити ефективність адміністрування.ро

4. Методи управління доступом

Платформа реєстрів будує свою авторизаційну модель на наступних методах управління:

  • RBAC (Role-Based Access Control) - це метод управління доступом до даних на платформі, який оснований на присвоєнні користувачам окремих ролей та виділенні дозволів відповідно до цих ролей. Використовуючи RBAC, адміністратор реєстрів та розробники регламенту визначають рівень доступу для кожної ролі, а також процедуру присвоєння користувачам відповідних ролей. Таким чином, користувачі отримують доступ лише до тих даних та бізнес-процесів, які дозволені для їхніх ролей.

  • RLS (Row-Level Security) - це метод управління доступом до даних на рівні рядків у базі даних. Він дозволяє адміністраторам обмежувати доступ користувачів до окремих рядків таблиці залежно від атрибутів користувачів, таких як ієрархічний код або катоттг. Row-Level Security працює запроваджуючи політики безпеки на рівні рядків, які залежать від атрибутів користувача. Таким чином, забезпечується, що користувачі матимуть доступ лише до тих рядків, до яких вони мають дозвіл.

5. Компоненти системи управління доступом

Управління доступом на Платформі Реєстрів здійснюється за допомогою чотирьох ключових складових, а саме:

  • Сервіс управління користувачами та ролями: Реалізований на базі програмного забезпечення Keycloak. Відповідає за управління користувачами та їх доступом, налаштуваннями автентифікації, авторизації, single sign-on (SSO) та інтеграції з зовнішніми Identity Providers на Платформі реєстрів.

  • Внутрішній OAuth сервер: Реалізований на базі програмного забезпечення OAuth Openshift. Компонент підсистеми управління користувачами та ролями який забезпечує автентифікацію та авторизацію для певних адміністративних сервісів платформи. Компонент являється проміжною ланкою в процесі автентифікації між сервісам та основним сервісом управління користувачами та ролями.

  • IIT Віджет: Автентифікація користувачів за допомогою кваліфікованого електронного підпису (КЕП) відбувається з використанням встановленого на стороні браузера стороннього віджета IIT для виконання операцій, що вимагають шифрування та підпису даних, а також сервісу для роботи з КЕП, що використовує окрему криптобібліотеку від IIT на стороні платформи для перевірки цілісності та незмінності даних, що передаються з вебклієнта.

  • Інтегрована Система Електронної Ідентифікації ID.GOV.UA (ІСЕІ):

Зовнішній Identity Provider в Сервісі управління користувачами та ролями (Keycloak). Завдяки використанню ІСЕІ, кабінет надає можливість пройти e-ідентифікацію за допомогою електронних підписів (на файловому, хмарному чи інших захищених носіях, за допомогою MobileID) та BankID НБУ.

6. Створення та видалення користувачів

Користувач Процедура створення Процедура видалення

Рут адміністратор

Автоматичне створення під час розгортання платформи

Не видаляється

Технічний адміністратор Платформи

Адміністратор створюється створюється кореневим (рут) адміністратором платформи та адміністратором того ж рівня

Може бути видаленим адміністратором такого ж рівня

Адміністратор реєстру

Може бути видаленим адміністратором такого ж рівня та адміністратором платформи

Отримувач послуг

Створюється автоматично під час самореєстрації (автентифікації на платформі)

Не видаляється

Надавач послуг

  • Створюється автоматично під час самореєстрації

  • Створений адміністратором реєстру через KeyCloak

  • Створений при імпорті посадових осіб

Можливе видалення через KeyCloak

7. Автентифікація

7.1. Методи автентифікації

Актор Метод автентифікації Тип автентифікації

Отримувач послуг

  • Інтегрована Система Електронної Ідентифікації ID.GOV.UA

  • IIT Віджет

  • Електронні підписи на файловому, хмарному чи інших захищених носіях, за допомогою MobileID та BankID

  • Електронні підписи на файловому або захищеному носії

  • Пароль захисту ключа

Надавач послуг

  • Інтегрована Система Електронної Ідентифікації ID.GOV.UA

  • IIT Віджет

  • Електронні підписи на файловому, хмарному чи інших захищених носіях, за допомогою MobileID та BankID

  • Електронні підписи на файловому або захищеному носії

  • Пароль захисту ключа

Адміністратор

  • Openshift OAuth

  • Облікові дані

7.2. Опис процесу автентифікації

Автентифікація на платформі реєстрів для отримувачів та надавачів послуг відбувається одним з вибраних методів - Інтегрована Система Електронної Ідентифікації ID.GOV.UA або IIT Віджет що виступають сторонніми identity провайдерами в підсистемі управління користувачами та ролями а саме в KeyCloak. Вибір методу автентифікації делегується адміністратору реєстру.

На відміну від методу автентифікації перелічених користувачів адміністратор реєстру автентифікується за допомогою своїх облікових даних. Процес відбувається також через підсистему управління користувачами і ролями але вже через openshift-sso identity provider та зберігається в KeyCloak.

8. Авторизація

Розмежування прав доступу на платформі реалізовано на базі ролей. Ролі поділені на дав типи - системні та регламентні. Системні ролі з відповідними дозволами постачаються разом з платформою. Регламентні ролі спроектовані для досягнення гнучкості процесу розмежування прав та надання можливостей розробнику регламенту покрити всі необхідні потреби у різноманітних реєстрах.

З акторами та ролями на платормі можна ознайомитись у відповідних розділах:

9. Процес призначення ролей користувачам.

Отримувач послуг:

Процес автентифікації отримувача послуг закінчується входом його у відповідний кабінет. Під час процесу первинної автентифікації громадянина відбувається створення його профілю в KeyCloak Realm та заповнення атрибутів зареєстрованого користувача інформацією отриманою з електронного підпису та даних отриманих у результаті інтеграції з ЄДР. Система автоматично присвоює одну з трьох системних ролей відповідно до атрибутів користувача:

unregistered_individual - фізична особа unregistered_entrepreneur - фоп або представник unregistered_legal - представник юридичної особи

Перелічені системні ролі надають отримувачу послуг доступ до своїх даних та до єдиного доступного бізнес-процесу - онбордингу. Як тільки користувач закінчує виконання онбордингу відбувається заміна тимчасової ролі з префіксом UNREGISTERED на відповідну постійну:

individual - фізична особа entrepreneur - фоп або представник legal - представник юридичної особи

Механізм надання доступу громадянину до бізнес процесів у кабінеті користувача базується саме на вказаних ролях. Саме розробник регламенту описує авторизаційні правила вказаних ролей до бізнес-процесів.

Надавач послуг:

Надавачу послуг ролі можуть бути присвоєні під час проходження автореєстрації, за умови якщо така можливість увімкнена на рівні реєстру, створення напряму через KeyCloak, створення під час пакетного завантаження користувачів та набуття регламентної ролі через відповідний бізнес-процес.

Під час самореєстрації надавач послуг автентифікується в кабінеті та заходить в свій кабінет. При цьому його профіль створюється у KeyCloak та збагачується відповідними атрибутами. При проходженні успішного процесу автентифікації надавачу послуг присвоюється тимчасова роль ungergistered-officer. Зміна ролі на системну officer для автоматично створених надавачів послуг здійснюється за допомогою бізнес-процесів та лежить повністю у зоні відповідальності моделювання бізнес процесу. Для підвищення зручності та гнучкості системи авторизації існує можливість створення повністю автоматичних (БП які підтверджують користувача та змінюють тимчасову роль на системну) та напів-автоматичних (БП які вимагають втручання керівників реєстру у процес підтвердження доступу) бізнес-процесів.

Також за принципом найменшого привілею надавачам послуг створеним під час автентифікації призначаються ролі за замовченням які вказані в конфігурації реєстру.

Адміністратори:

При створенні адміністратора платформи або адміністратора реєстру за замовчування їм надається стандратна відповідна роль за принципами найменшого привілею (Principle of Least Privilege) та обмеженого доступу (Need-to-Know Principle) щоб вони отримали доступ лише до тієї інформації, яка необхідна для виконання їхніх обов’язків.

Далі додаткові ролі до платформенних та реєстрових адміністративних сервісів можуть бути додані через KeyCloak.

10. Управління ролями та дозволами

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

Детальна інформація доступна у розділі:

11. RLS (Row-Level Security)

Платформа реєстрів надає можливість побудувати ієрархічну модель доступу до об’єктів даних відповідно до рівнів ієрархічної структури та ролей користувачів. Це дозволяє забезпечити контроль над доступом до об’єктів на основі їх ієрархічного положення та ролі користувача.

Ієрархічна модель складається з трьох основних частин:

  • Ієрархічної структури

  • Присвоєних атрибутів користувачів

  • RLS правил

Модель надає змогу розробникам регламенту спроектувати надання дозволів на доступ до даних реєстру враховуючи комплексність структури організації. Яскрави прикладом використання ієрархічної иоделі є побудова рольової модель за територіальною прив’язкою (КАТОТТГ)

За умови використання ієрархічної моделі ефективні права доступу до даних можна відобразити на наступній діаграмі.

effective permissions

Детальна інформація доступна за посиланням Ієрархічна модель

12. Керування сесіями

Управління сесіями та їх забезпечення має важливе значення у контексті безпеки та коректного функціонування Платформи Реєстрів. Сесія є тимчасовими діалогом між користувачем та системою, який відбувається під час аутентифікації та авторизації користувача. Управління сесіями дозволяє слідкувати за активністю користувача, автентифікувати його, встановлювати часові обмеження, та, у разі потреби, здійснювати примусове відключення користувача.

Підсистема управління користувачами та ролями налаштована таким чином:

Максимальний час існування активної сесії. За закінченням цього терміну користувачеві буде запропоновано пройти процедуру входу до кабінету

10 годин

Тривалість відсутності дій з боку користувача яка призведе до події логауту

30 хвилин

Підтримка паралельних сесій

Так

Усі адміністративні сервіси та кабінети користувачів викнують повний ланцюжок виходу при ініціювання події логаута. Збереження сесій також спроектовано надійно та безпечно. На стороні клієнту сесії зберігаються в coockie та сконфігуровні таким чином щоб передача відбувалась лише по захищеному каналу заязку задля захисту від перехоплення. Встановлено захист від несанкціонованого доступу клієнтськими скриптами, наприклад, JavaScript. Це зменшує ризик атак на перехоплення куків або XSS-атак. В додачу сконфігурований захист від CSRF-атак, що забезпечує, що кукі використовується лише на цільовому веб-сайті.

На стороні бекенду сесії користувачів зберігаютсья у Redis Sentinel.