Аутентифікація посадових осіб через портал id.gov.ua
Загальний опис
Надання можливості використовувати портал (id.gov.ua
) для аутентифікації в кабінеті посадової особи як альтернативу використання ІІТ-віджета. Основною перевагою використання id.gov.ua
над вбудованим в сторінку кабінету посадової особи віджета - додатковий рівень аудиту і контролю над процесом аутентифікації з боку державних органів, що набувається за рахунок створення додаткового централізованого сервісу керування користувачами, який лежить поза межами платформи (id.gov.ua
).
Загальні принципи та положення
-
Користувач посадової особи має існувати в реалмі посадових осіб відповідного реєстру
-
Наявність атрибутів (
drfo
,edrpou
,fullName
) в ключі посадової особи є обовʼязковою -
Значення атрибутів посадової особи в порталі
id.gov.ua
та атрибути користувача мають співпадати -
У випадку недотримання правил створення користувача буде неможливо аутентифікуватись в кабінеті посадової особи (користувач буде перенаправлений на сторінку з помилкою та формою аутентифікації)
-
Збереження чутливої інформації відбувається до центрального сховища секретів
-
Налаштування методу аутентифікації посадових осіб реєстру доступне через інтерфейс адмін-консолі Платформи
Функціональні сценарії
Конфігурація методу аутентифікації
Секрети зберігаються в Центральному сховищі секретів, за шляхом:
registry-kv/registry/%НАЗВА_РЕЄСТРУ%/officer-id-gov-ua-client-info
з ключами clientId
, clientSecret
для збереження ідентифікатора клієнта та клієнтського секрету відповідно
Інтерфейси адміністратора
Інтерфейс адмін-консолі


При перемиканні типу аутентифікації параметри для іншого типу лишаються незмінними, так щоб одночасно могло співіснувати дві конфігурації, але активна може бути тільки одна |
Технічний дизайн рішення
Загальна структура компонента
Назва контейнера | Опис |
---|---|
Officer id.gov.ua |
[Нове розширення] Аутентифікатор |
Citizen id.gov.ua |
Аутентифікатор |
REST API extension |
Розширення для пошуку користувачів за атрибутами |
Citizen authenticator |
Аутентифікатор для кабінету користувачів через плагін ІІТ |
Citezen authenticator |
Аутентифікатор для кабінету посадової особи через плагін ІІТ |
User storage provider |
Розширення для зберігання данних про користувачів в зашифрованому вигляді |
Діаграма розгортання
signWidget:
url: %ПОСИЛАННЯ_НА_ВІДЖЕТ%
keycloak:
realms:
officerPortal:
browserFlow: %НАЗВА_ПОСЛІДОВНОСТІ%
authFlows:
officerAuthFlow:
widgetHeight: %ВИСОТА_ВІДЖЕТА%
identityProviders:
idGovUa:
url: %ПОСИЛАННЯ_ДЛЯ_ID_GOV_UA%
secretKey: >-
registry-kv/registry/%НАЗВА_РЕЄСТРУ%/officer-id-gov-ua-client-info
Доступні значення для browserFlow
:
Назва послідовності | Опис |
---|---|
dso-officer-auth-flow |
Послідовність використовується для аутентифікації за допомогою ІІТ плагіну |
id-gov-ua-officer-redirector |
Послідованість для аутентифікації через сайт |
Зміна налаштувань компоненту через конфігурацію реєстру відбувається за рахунок переписування (override) параметрів values.yaml
registry-configuration chart в values.yaml
Helmfile реєстру.
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: officer-id-gov-ua-client-external-secrets
namespace: %НАЗВА_РЕЄСТРУ%
spec:
dataFrom:
- extract:
conversionStrategy: Default
decodingStrategy: None
key: {{ .Values.identityProviders.idGovUa.secretKey}}
refreshInterval: 10s
secretStoreRef:
kind: SecretStore
name: central-vault-secret-store
target:
creationPolicy: Owner
deletionPolicy: Retain
name: officer-id-gov-ua-client-secret
Високорівневий план розробки
План розробки
-
Створення розширення
Keycloak
(аутентифікатора та identity provider-а) -
Розширення конфігурації
Realm
-у посадових осіб послідовністю аутентифікації та побудови логіки створення додаткових ресурсів на рівніHelm chart
-у в залежності від обраної послідовності -
Винесення конфігурації на рівень шаблону реєстру
Helmfile
-у -
Створення зовнішніх секретів для збереження ідентифікатора та секрета для інтеграції з
id.gov.ua
-
Додавання екрану конфігурації в адміністративний портал