[DRAFT] Можливість налаштовувати сервіс id.gov.ua як спосіб автентифікації для отримувачів послуг на рівні реєстру
Сторінка технічної документації є баченням майбутньої реалізації, актуальність якого може бути застарілою. |
Загальний опис
При розгортанні декількох реєстрів на одному екземплярі платформи може виникати потреба в інтеграції з сервісом id.gov.ua для отримувачів послуг на рівні окремого реєстру. При цьому ключ шифрування, який є обов’язковим для використання сервісу id.gov.ua, повинен бути різним для кожного реєстру. Управління цими ключами та налаштуваннями інтеграції повинно відбуватися через_Веб-інтерфейс управління платформою та реєстрами_.
Детальніше з архітектурою інтеграції з id.gov.ua можна ознайомитися за посиланням |
Концепти
-
Ключ за замовчуванням Сервісу цифрових підписів - ключ з яким виконується первинна ініціалізація та контекст якого використовується для виконання операцій якщо не вказано інший ключ
-
Ключ шифрування - ключ який використовується для інтеграції з сервісом id.gov.ua.
-
Ключ підпису - ключ який використовується для накладання цифрового підпису системи (електронна печатка)
-
Платформена інтеграція з id.gov.ua - інтеграція з сервісом id.gov.ua на рівні платформи
Функціональні сценарії
-
Налаштування інтеграції з id.gov.ua на рівні окремого реєстру для Кабінету отримувача послуг Адміністратором реєстру
-
Налаштування інтеграції з id.gov.ua на рівні окремого реєстру для Кабінету надавача послуг Адміністратором реєстру
-
Управління ключами Адміністратором платформи
-
Вибір Ключа шифрування для інтеграції з id.gov.ua на рівні окремого реєстру для Кабінету отримувача послуг Адміністратором реєстру зі списку попередньо зареєстрованих ключів
-
Вибір Ключа шифрування для інтеграції з id.gov.ua на рівні окремого реєстру для Кабінету надавача послуг Адміністратором реєстру зі списку попередньо зареєстрованих ключів
-
Вибір Ключа підпису для реєстру Адміністратором реєстру зі списку попередньо зареєстрованих ключів
Загальні принципи та положення
Сервіс цифрових підписів
-
Доступ до всіх операцій з ключем забезпечується Сервісом цифрових підписів
-
Сервіс цифрових підписів ініціюється з ключем за замовчуванням в контексті (поточна реалізація)
-
У Сервіс цифрових підписів можуть бути додані додаткові ключі з вказанням псевдоніма (alias)
-
Додаткові ключі можуть бути як файловими, так і з фізичного носія (Гряда-301, Алмаз тощо)
-
При виклику методів Сервісу цифрових підписів можна вказати псевдонім ключа, який буде використовуватися для тієї чи іншою операції
-
Якщо псевдонім ключа не вказано, то використовується ключ за замовчуванням
-
Вказати псевдонім ключа необхідно тільки для операцій, в яких результат операції залежить від контексту ключа (наприклад, методи /officer/verify, /citizen/verify, /owner не залежать від контексту ключа і результат буде однаковий для будь-якого ключа)
Інтеграція з id.gov.ua
-
Для можливості реєстрової інтеграції з id.gov.ua використовуються тіж самі реалізації автентифікатора (first login flow) та identity провайдерів, що і для платформеної інтеграції з id.gov.ua (IdGovUaIdentityProviderV2 та IdGovUaAuthenticator)
-
Автентифікатори, які відповідають за інтеграцію з id.gov.ua, повинні використовувати Сервіс цифрових підписів, розгорнутий в Підсистемі управління користувачами та ролями (platform-dso) (поточний стан)
-
Конфігурація автентифікаторів розширюється параметром для вказання Ключа шифрування для інтеграції з id.gov.ua
-
Автентифікатор посадових осіб для інтеграції з id.gov.ua так само розширюється параметром для вказання Ключа шифрування
-
Параметр Ключ шифрування може мати пусте значення. В такому випадку автентифікатор не буде передавати псевдоним Ключа шифрування в Сервіс цифрових підписів і буде використовуватися Ключ за замовчуванням
-
Для інтеграції з id.gov.ua на рівні реєстру додається новий ідентіті провайдер з типом IdGovUaIdentityProviderV2
-
Для логіну в кабінет отримувача послуг може бути обраний один з 3 типів автентифікації: widget, platform-id-gov-ua та registry-id-gov-ua
-
Тип автентифікації задається на рівні автентифікатора ds-citizen-authenticator
-
В залежності від обраного типу автентифікації на сторінці логіну відображається віджет або кнопка "Увійти через id.gov.ua"
-
Кнопка формує посилання або на платформений ідентіті провайдер або на реєстровий ідентіті провайдер для id.gov.ua в залежності від обраного параметру автентифікації
-
При використанні реєстрової або платформеної інтеграції з id.gov.ua не користувач все одно повинен обрати режим громадянина або фізичної особи на сторінці в Веб-інтерфейсі управління користувачами та ролями
Керування ключами
-
Адміністратор платформи має можливість керувати ключами в окремій секції Веб-інтерфейсу управління платформою та реєстрами
-
Всі ключі зберігаються у Підсистемі управління секретами та шифруванням
-
При налаштуванні Автентифікації отримувачів послуг Адміністратор реєстру може вказати тип "Реєстрова інтеграція з id.gov.ua" з можливістю вказати Посилання на id.gov.ua, ідентифікатор клієнта, секрет клієнта та обрати Ключ шифрування з переліку заздалегідь створених ключів Адміністратором платформи
-
При налаштуванні Автентифікації надавачів послуг Адміністратор реєстру додається необхідність обрати Ключ шифрування з переліку заздалегідь створених ключів Адміністратором платформи
-
Для раніше налаштованих інтеграцій значення в конфігурації реєстру залишається пустим і відповідний автентифікатор використовує Ключ за замовчуванням. При першому редагуванні секції, потрібно буде обрати ключ з переліку
-
Якщо немає жодного ключа для вибору то Адміністратор реєстру повинен бачити повідомлення про відсутність ключів і необхідність звернутися до Адміністратора платформи
Журнал рішень
-
Автентифікатори з Підсистеми управління користувачами та ролями не повинні отримувати доступ до Сервісу цифрових підписів Оперативної зони реєстру, а продовжувати використовувати сервіс зі своєї підсистеми
-
Система повинна надавати можливість керувати ключами централізовано у Веб-інтерфейсі управління платформою та реєстрами
Обсяг робіт
-
Додати опис для секції Керування платформою/Дані про ключ текстом, що це Ключ за замовчуванням Сервісу цифрових підписів Підсистеми управління користувачами та ролями Веб-інтерфейсу управління платформою та реєстрами
-
Додати опис для секції Керування платформою/Дані про ключ текстом, що це Ключ за замовчуванням Сервісу цифрових підписів Підсистеми управління користувачами та ролями Веб-інтерфейсу управління платформою та реєстрами
Попередня декомпозиція
-
Як Адміністратор Платформи я хочу мати можливість керувати ключами через Веб-інтерфейсу управління платформою та реєстрами
-
[FE] Додати можливість додавати файловий ключ в систему
-
[FE] Додати можливість додавати апаратний ключ в систему
-
[FE] Додати сторінку з переглядом ключів, які були внесені в систему
-
[FE] Додати можливість видаляти ключ, який був внесений в систему
-
[BE] Додати можливість вказувати додаткові ключі в Сервісі цифрових підписів
-
[BE] Додати можливість передавати псевдоним ключа в Сервіс цифрових підписів при виклику методів
-
[DEVOPS] Зберігати ключ, який був доданий у систему у Сервіс управління секретами та шифруванням
-
[DEVOPS] Видаляти ключ, який був видалений з систему з Сервісу управління секретами та шифруванням
-
[DEVOPS] Зберігати ключ, який був доданий у систему як додатковий ключ у Сервіс цифрових підписів Підсистеми управління користувачами та ролями
-
[DEVOPS] Видаляти ключ, який був видалений з системи як додатковий ключ у Сервісі цифрових підписів Підсистеми управління користувачами та ролями
-
-
Як Адміністратор реєстру я хочу мати можливість налаштовувати інтеграцію з id.gov.ua для отримувачів послуг на рівні реєстру через Веб-інтерфейсу управління платформою та реєстрами
-
[FE] Розширити секцію "Автентифікація отримувачів послуг" можливістю обрати тип автентифікації "Реєстрова інтеграція з id.gov.ua" (включно з вибором ключа шифрування з переліку)
-
[DEVOPS] Додати налаштування реалму Сервісу управління користувачами та ролями при реєстровій інтеграції з id gov ua (identity provider, authenticator, auth flow тощо)
-
[BE] Передавати псевдоним ключа при виклику методів Сервісу цифрових підписів з налаштувань в IdGovUaIdentityProviderV2
-
[BE] Помітити реалізацію IdGovUaIdentityProvider як deprecated
-
[FE/BE] Формувати посилання на кнопку "Вхід з id.gov.ua" на ідентіті провайдер який відповідає за реєстрову інтеграцію з id.gov.ua при відповідному налаштуванні
-
[BE] Додаткові потенційні зміни в автентифікаторах та ідентіті провайдері, які відповідають за реєстрову інтеграцію (перевірити чи потрібні зміни, для того щоб не додавати нову реалізацію)
-
-
Як Адміністратор реєстру я хочу мати можливість обирати Ключ шифрування при налаштуванні інтеграції з id.gov.ua для надавачів послуг через Веб-інтерфейсу управління платформою та реєстрами
-
[FE] Розширити секцію "Автентифікація надавачів послуг" для типу автентифікації id.gov.ua можливістю обрати ключ шифрування з переліку
-
[DEVOPS] Передавати налаштування по псевдониму ключа в ідентіті провайдер по інтеграції з id.gov.ua для надавачів послуг
-
[BE] Передавати псевдоним ключа при виклику методів Сервісу цифрових підписів з налаштувань в IdGovUaOfficerIdentityProvider
-
Всі налаштування зроблені в попередніх версіях повинні працювати і використовувати ключ за замовчуванням для шифрування |
Поза скоупом
-
Авторизація використання конкретного ключа при виклику методів Сервісу цифрових підписів
-
Вказання типу додаткового ключа (шифрування/підпису) в Сервісі цифрових підписів
-
Обмеження Адміністратора реєстру на використання певних ключів з переліку (всі ключі відкриті для використання всім Адміністраторам реєстру)
-
Налаштування Платформеної інтеграція з id.gov.ua через Веб-інтерфейс управління платформою та реєстрами (включно з можливістю вибору Ключа шифрування іншого від Ключа за замовчуванням)
-
Можливість вибору Ключа підпису для реєстру з переліку заздалегідь створених ключів Адміністратором платформи
-
Автоматичний редірект на сторіну id gov ua з Кабінета отримувача послуг і подальший вибір режиму роботи (фізична особа/ юридична особа)