Збереження ролей користувачів до Keycloak: Save user roles

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

Цей документ надає інструкції щодо збереження ролей користувачів до Keycloak.

1. Загальна інформація

Загальне інтеграційне розширення-делегат надає можливість взаємодіяти із сервісом управління ідентифікацією та доступом Keycloak для зміни ролей користувача. Делегат налаштовується у сервісних задачах (Service Task) бізнес-процесу за допомогою шаблону Save user roles.

Таблиця 1. Короткі відомості про делегат
Назва Пояснення

Бізнес-назва

Save user roles

Службова назва

${keycloakSaveUserRoleConnectorDelegate}

Назва файлу у бібліотеці розширень

keycloakSaveUserRoleConnectorDelegate.json

2. Перед початком

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

При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень.

3. Налаштування делегата

Делегат Save user roles призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він надає можливість додавати або змінювати ролі для надавачів та отримувачів послуг у Keycloak-реалмах citizen та officer.

3.1. Налаштування сервісного завдання

  1. Створіть Service Task.

  2. У полі Name вкажіть назву сервісної задачі.

  3. Застосуйте шаблон делегата Save user roles зі списку доступних у каталозі.

    save user roles 01

3.2. Налаштування делегата

  1. У секції Inputs  Roles передайте ролі, які необхідно призначити користувачу. Наприклад, officer.

    У нашому прикладі передається одна роль (officer) масивом (List).

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

    • List — список/масив;

    • Map — ключі-значення;

    • Script — скрипт;

    • String or expression — рядок або вираз.

    Приклад 1. Масив ролей, які необхідно призначити користувачу
    ['officer', 'manager1', 'manager2']
    • officer — системна роль, яка призначається користувачу після реєстрації.

    • manager1 та manager2 — можуть бути регламентними ролями у реєстрі.

  2. Вкажіть ім’я користувача (username) у системі Keycloak. Це можна зробити, наприклад, за допомогою juel-функції initiator():

    ${initiator().userName}
  3. Оберіть реалм Keycloak, до якого відноситься користувач. Наприклад, officer, при реєстрації посадових осіб.

    Доступні опції реалмів:

    • CITIZEN — реалм, в якому зберігаються отримувачі послуг та їх ролі.

    • OFFICER — реалм, в якому зберігаються посадові особи (надавачі послуг) та їх ролі.

  4. Вкажіть тип ролей, які можуть бути змінені для користувача. Доступні опції:

    • ALL ROLES — усі поточні ролі будуть заміщені переліком ролей, вказаних у секції Roles.

    • PLATFORM ROLES — поточні системні ролі, призначені користувачу, будуть заміщені переліком ролей, вказаних у секції Roles. Поточні регламентні/реєстрові ролі залишаться без змін.

    • REGISTRY ROLES — у користувача будуть заміщені лише регламентні/реєстрові ролі.

    • Якщо при налаштуванні делегата як input-параметри передати масив ролей, одна з яких — системна, а дві інші - регламентні (тут — officer та manager1 і manager2), то необхідно обрати опцію ALL ROLES.

    • Якщо при налаштуванні делегата передати системну роль (тут — officer), то необхідно обрати опцію PLATFORM ROLES.

    • Якщо при налаштуванні делегата передати регламентні ролі (тут — manager1 і manager2), то необхідно обрати опцію REGISTRY ROLES.

Після завершення операції, делегат не отримує жодних даних у відповідь.

4. Приклад

Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі:

delegate save user roles 1
Зображення 1. Референтний приклад. Самостійна реєстрація надавачів послуг
Де можна знайти приклад референтного бізнес-процесу?

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

Еталонний регламент з прикладами для України зберігається в репозиторії ua-registry-demo-regulation.

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

Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — officer-selfregistration-handmoderation. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі Form key.