Автентифікація користувачів реєстру

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

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

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

В основі механізму автентифікації лежить Система управління ідентифікацією та доступом (IAM) Keycloak, яка взаємодіє з Сервісом для роботи з КЕП та інтегрованою системою електронної ідентифікації ID.GOV.UA (ICEI). Також на платформі функціонують специфічні сервіси автентифікації посадових осіб та отримувачів послуг реєстру — автентифікатори (див. детальніше — Логіка автентифікації користувачів).

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

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

Наразі Платформа підтримує 2 типи автентифікації :
  • автентифікація користувача за допомогою кваліфікованого електронного підпису (КЕП);

  • автентифікація користувача за допомогою інтегрованої системи електронної ідентифікації ID.GOV.UA (ІСЕІ) — зовнішнього постачальника ідентифікаційних даних.

2. Логіка автентифікації користувачів

За автентифікацію користувачів реєстру відповідають такі сервіси:

  • Сервіс автентифікації отримувачів послуг — keycloak-ds-citizen-authenticator;

  • Сервіс автентифікації посадових осіб — keycloak-ds-officer-authenticator.

Для ідентифікації користувача у системі, сервіс автентифікації має отримати з КЕП, або від зовнішнього надавача послуг (id.gov.ua) як обов’язкові вхідні параметри наступні атрибути:

  • drfo (РНОКПП) — ідентифікаційний номер, або серія і номер паспорта особи.

  • edrpou (ЄДРПОУ) — код організації, до якої належить особа.

  • fullName (ПІБ) — прізвище, ім’я та по батькові особи.

У процесі автентифікації відбувається пошук користувача у базі даних за атрибутом drfo. Якщо користувача з відповідним атрибутом знайдено, то відбувається порівняння атрибутів fullName та edrpou (за наявності). Порівняння атрибутів drfo та edrpou відбувається за повним збігом їх значень.

Наприклад:

Сервіс автентифікації посадових осіб отримує, РНОКПП особи, виконує запит до сервісу Keycloak, отримує там необхідний атрибут та звіряє його з тим, що вказано у КЕП. Якщо значення у Keycloak та КЕП повністю збігаються, то перевірка проходить успішно, якщо ні — користувач отримає помилку автентифікації.

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

Для атрибута fullName (ПІБ) застосовується інша стратегія — нечітке порівняння рядків, що не враховує спеціальні символи.

Проблематика використання стратегії чіткого порівняння (strictIgnoreCase)

Атрибут fullName в КЕП, який містить ПІБ особи та є нестандартизованим. Його заповнюють працівники АЦСК без єдиного підходу. Це призводить до незбігу значення fullName при перевипуску або використанні КЕП, виданого іншим АЦСК. Наприклад, інший КЕП може містити декілька пробілів замість одного, містити, або не містити спеціальні символи, як-от апостроф або дефіс.

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

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

Для розв’язання впроваджено нову стратегію нечіткого порівняння рядків, яка не враховує спецсимволи (alphanumericIgnoreCase).

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

  • Перед порівнянням рядки приводяться до нижнього регістру.

  • Видаляються усі символи, окрім латинських та кириличних літер та цифр.

  • Довжина рядка після нормалізації має бути не менш як 50% від оригінального.

Наприклад:

Якщо користувач заведений у Keycloak як fullName: "Маряна-Іриna Сергіївна", а у КЕП вказано fullName: "Мар’яна-Іриna Сергіївна!%?", то користувач зможе пройти автентифікацію та увійти до Кабінету.

3. Автентифікація за допомогою КЕП

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

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

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

Для отримання доступу до функцій Кабінету, користувач має увійти до системи, виконавши кроки, описані нижче в інструкції.

Автентифікація з КЕП доступна для користувачів Кабінетів посадової особи та отримувача послуг реєстру.

3.1. Передумови

Отримайте особистий ключ для підпису даних в одному з акредитованих центрів сертифікації ключів (АЦСК). Відкритий ключ зберігатиметься на сервері постачальника, в той час, як секретний (закритий) ключ необхідно буде зберегти на одному із захищених носіїв, доступних для використання при вході до системи за допомогою КЕП (див. крок 3 в підрозділі Проходження автентифікації).

3.2. Проходження автентифікації

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

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

Крок 1
  • Відкрийте сторінку входу до Кабінету отримувача послуг за адресою http://citizen-portal-<назва-реєстру>-main.apps.envone.dev.registry.eua.gov.ua/, якщо ви фізична, або юридична особа, або ФОП і хочете замовити послугу.

  • Відкрийте сторінку входу до Кабінету посадової особи за адресою http://officer-portal-<назва-реєстру>-main.apps.envone.dev.registry.eua.gov.ua/officer/, якщо ви посадова особа, що уповноважена надавати послуги.

    Адреси сервісів, що наведені у тексті вище, є шаблонними. Підставте назву свого реєстру в URL сервісу. При виникненні будь-яких питань, зверніться до адміністратора.
Крок 2

Натисніть Увійти до кабінету.

cp auth 1

Крок 3
  1. Оберіть тип послуг:

    • Для громадян — якщо ви бажаєте увійти як фізична особа (параметр встановлюється за замовчуванням);

    • Для бізнесу — якщо ви бажаєте увійти як ФОП або юридична особа.

  2. Оберіть тип носія особистого ключа.
    Оберіть Файловий носій (параметр встановлюється за замовчуванням).

    cp auth 2

  3. У полі Кваліфікований надавач ел. довірчих послуг оберіть один з акредитованих центрів сертифікації ключів (АЦСК), натиснувши на елемент випадного списку, або залиште значення Визначити автоматично, встановлене за замовчуванням.

    cp auth 3

  4. Оберіть особистий ключ:

    • У полі Особистий ключ натисніть Обрати.

    • Знайдіть особистий ключ (наприклад key-6.dat) та натисніть Open для підтвердження.

      cp auth 4

  5. У полі Пароль захисту ключа введіть пароль захисту ключа.

  6. Натисніть Зчитати для перевірки введених даних.

    cp auth 5

Крок 4
  1. На формі підпису даних натисніть Увійти для входу до Кабінету.

  2. (Альтернативно) Натисніть Змінити ключ, якщо необхідно обрати інший ключ для входу.

    cp auth 6

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

    cp auth 7 wrong key

    У разі введення невірних ідентифікаційних даних (як-от пароль захисту ключа тощо), на кроці підпису даних сервер повертає таку помилку:

    cp auth 8 wrong credentials

Після успішного проходження автентифікації у Кабінеті отримувача послуг, під час першого входу, особі буде запропоновано пройти процес онбордингу[1]. Після проходження цього процесу, особа отримає доступ до функцій Кабінету.

У Кабінеті посадової особи процес онбордингу не передбачений. Тому перед входом до Кабінету необхідно переконатися, що адміністратор доступу створив відповідного користувача.

4. Автентифікація з ID.GOV.UA

Платформа надає можливість здійснювати автентифікацію за вбудованого віджета id.gov.ua — Інтегрованої системи електронної ідентифікації (ІСЕІ).

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

ІСЕІ id.gov.ua має атестат відповідності комплексної системи захисту інформації (КСЗІ), тому персональні дані користувачів надійно захищені.

Для отримання деталей підключення та використання ID.GOV.UA, будь ласка, зверніться до технічної документації або офіційного сайту.

4.1. Автентифікація посадових осіб (надавачів послуг)

  1. Найперше, виконайте крок 1 та крок 2 у попередньому розділі цього документа.

  2. Натисніть на відповідний елемент для автентифікації з ID.GOV.UA:

    cp auth idgovua 1

  3. Оберіть вхід за допомогою Електронного підпису.

    user auth idgovua 4 02

  4. Оберіть метод автентифікації — Файловий носій.

    Посадові особи можуть автентифікуватися лише через файловий носій.

    Файловий носій – це спеціальний файл, який містить ваш особистий ключ. Зазвичай цей файл має назву Key-6 з розширенням *.dat (зустрічаються також розширення *.pfx, *.pk8, *.zs2, *.jks).

    user auth idgovua 1

  5. Завантажте із зовнішнього носія чи власного комп’ютера файл із вашим особистим ключем.

    user auth idgovua 2

  6. Вкажіть пароль доступу до особистого ключа у відповідному полі та натисніть Продовжити.

    user auth idgovua 3

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

4.2. Автентифікація отримувачів послуг

  1. Увійдіть до Кабінету отримувача послуг (див. крок 1 та крок 2 цього документа).

  2. Оберіть опцію Для громадян.

    user auth idgovua 4 01

    Автентифікація з id.gov.ua можлива лише ДЛЯ ГРОМАДЯН. Якщо ви представник бізнесу, то зможете увійти до Кабінету лише з КЕП.
    Фізичним особам доступні обидві опції для автентифікації: КЕП та id.gov.ua.

  3. Автентифікуйтеся через віджет ID.GOV.UA.

    user auth idgovua 4 1

  4. Оберіть бажану схему (спосіб) автентифікації.

    Отримувачі послуг реєстру можуть використовувати такі способи автентифікації з id.gov.ua:

    • Електронний підпис

    • Bank ID НБУ

    • Дія.Підпис

    user auth idgovua 4

  5. Дотримуйтеся інструкцій, описаних у підрозділах нижче.

    Уся обробка даних відбувається на стороні id.gov.ua. Детальніше про кожен тип автентифікації ви можете дізнатися на офіційному сайті.

4.2.1. Автентифікація з електронним підписом

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

  1. Увійдіть за допомогою електронного підпису.

  2. Оберіть тип ключа, яким ви хочете підписати дані:

    • Файловий носій

    • Токен

    • Хмарне сховище

    • ID-картка

user auth idgovua 5

4.2.2. Автентифікація з BankID НБУ

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

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

user auth idgovua 6

У разі успішної автентифікації на сайті банку, система Bank ID передасть ваші персональні дані, що дозволить вас ідентифікувати.

user auth idgovua 7

4.2.3. Автентифікація з Дія.Підпис

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

Отримати особистий ключ віддалено за допомогою мобільного застосунку Дія мають можливість громадяни України, які є власниками ID-картки або біометричного закордонного паспорта.

Щоб авторизуватися на сайті за допомогою Дія ID, вам необхідно:

  1. Відсканувати QR-код.

  2. Зчитати особистий ключ шляхом сканування обличчя (перевірки за фото) та вводу пароля до особистого ключа.

  3. У разі успішної автентифікації у мобільному застосунку Дія, система передає ваші персональні дані, що дозволить вас ідентифікувати.

    user auth idgovua 8


1. Онбординг — реєстрація в системі для надання прав доступу до функцій Кабінету отримувача послуг.