Управління перевіркою в ЕДР для автентифікації бізнес-користувачів
Загальний опис
Розробка можливості відключення, технічним адміністратором реєстру, перевірки наявності в ЕДР користувача при вході Для бізнесу.
Загальні принципи та положення
-
Перевірка отримувача послуг в ЕДР здійснюється шляхом інтеграції реєстру з ЕДР через ШБО Трембіта.
-
Без перевірки в ЕДР КЕП громадянина буде класифікуватись як ФОП.
Актори
-
Фізична Особа Підприємець (ФОП)
-
Представник Фізичної Особи Підприємця (ФОП)
-
Представник Юридичної Особи
-
Технічний адміністратор реєстру.
Функціональні сценарії
Технічний адміністратор реєстру через інтерфейс адмін-консолі може змінити поведінку, а саме перевірку наявності та стану активності користувача в ЕДР, для користувачів, що обрали вхід Для бізнесу на сторінці автентифікації.
Поточний підхід до автентифікації.
Activity diagram
). Зміни в класифікації користувача без доступу до ЕДРТехнічний дизайн рішення
Впровадження додаткового параметра, що відповідальний за включення/виключення даної перевірки на рівні конфігурації компоненти registry-configuration
з подальшим винесенням його до шаблонів реєстрів. Додавання додаткової гілки в автентифікатора keycloak-ds-citizen-authenticator
визначення типу користувача без звернення до ЕДР.
Привести назви до одного формату Subject як тип суб’єкта чи роль користувача; |
keycloak-ds-citizen-authenticator
.package com.epam.digital.data.platform.keycloak.ds.citizen.authenticator.registration;
public class BusinessRegistrationService implements RegistrationService {
...
public UserModel registerUser(AbstractAuthenticationFlowContext ctx, UserAttributes attributes) {
boolean isEdrCheckActive = obtainConfiguration();
Subject currentUserRole = calculateEntityRole(ctx, attributes, isEdrCheckActive);
...
}
private Subject calculateEntityRole(AbstractAuthenticationFlowContext ctx, UserAttributes attributes, boolean isEdrCheckActive) {
if (isEdrCheckActive) {
EdrEntity edrEntity = ....
return getSubject(attributes, edrEntity);
}
return getSubject(attributes);
}
...
}
Конфігурація параметрів інтеграції з ЕДР поза межами даного дизайну. |
registry-configuration
.keycloak:
authFlows:
citizenAuthFlow:
authenticators:
dsCitizenAuthenticator:
authenticatorConfig:
edrCheck: true
Міграція існуючих реєстрів
Міграція існуючих реєстрів відбувається шляхом оновлення поточної конфігурації реєстру оновленими параметрами з шаблону реєстру. Тобто, під час міграції реєстру на нову версію відбувається перенесення значень і структур шляхом злиття гілок шаблону до поточної конфігурації реєстру.