Отримання ролей з Keycloak-реалму: Get Keycloak roles by realm
Цей документ пояснює, як отримати перелік системних та реєстрових ролей з певного Keycloak-реалму.
1. Загальна інформація
Інтеграційне розширення Get Keycloak roles by realm дозволяє вам отримати список усіх ролей з певного Keycloak-реалму.
Назва | Пояснення |
---|---|
Бізнес-назва інтеграційного розширення |
Get Keycloak roles by realm |
Службова назва інтеграційного розширення |
|
Назва файлу в бібліотеці розширень |
keycloakGetRolesByRealmConnectorDelegate.json |
2. Перед початком
Якщо ви використовуєте функціональність Кабінету адміністратора регламентів для розробки реєстру, вам не потрібно встановлювати типові розширення, додаткові зовнішні застосунки та плагіни. Портал містить усе необхідне вбудоване з коробки. При моделюванні бізнес-процесів із використанням сторонніх застосунків, важливо інтегрувати каталог типових розширень з нашого репозиторію. Завітайте до business-process-modeler-extensions, щоб завантажити необхідні файли. Наприклад, для таких інструментів, як Camunda Modeler, у вашій теці /element-templates мають бути включені відповідні JSON-файли. Для детальних інструкцій, будь ласка, перегляньте Встановлення типових розширень. |
3. Налаштування делегата
Делегат Get Keycloak roles by realm призначений для використання у сервісних завданнях (Service Task) бізнес-процесу. Він отримує список усіх ролей з певного Keycloak-реалму:
-
citizen
— список ролей для призначення отримувачам послуг. -
officer
— список ролей для призначення надавачам послуг.
3.1. Налаштування сервісного завдання
-
Створіть завдання типу Service Task у вашому бізнес-процесі.
-
Назвіть завдання, наприклад,
Отримання переліку можливих регламентих ролей для реалма
. -
Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання.
3.2. Налаштування делегата
-
У полі Realm оберіть
Officer
для надавачів послуг абоCitizen
для отримувачів послуг. -
Оберіть Role Type, щоб визначити, які ролі повертати:
REGISTRY ROLES
,PLATFORM ROLES
абоALL ROLES
. Ви можете запитати всі (системні та реєстрові), лише системні, або лише реєстрові ролі, доступні для використання у реєстрі. За замовчуванням встановленоREGISTRY ROLES
. -
Вкажіть змінну процесу (наприклад,
rolesResponse
), куди буде збережено відповідь. Ця змінна буде тимчасовою (transient). Це дозволяє ефективно управляти отриманими даними без зайвого зберігання інформації в базі даних.
Результатом виконання запита буде повернення переліку назв ролей певного користувача для визначеного реалма: List<String>
.
[
"user",
"admin",
"hierarchy-registry-manager",
"personnel-officer-admin",
"reviewer"
]
Надалі ви зможете використовувати отриманий список ролей для різних цілей у бізнес-процесі. Наприклад, ви зможете отримати лише певну роль зі списку за індексом, сформувати payload із відповідним значенням та зберегти до тимчасової змінної для подальшого застосування у процесі:
// Визначення масиву ролей
def roles = ["user", "admin", "hierarchy-registry-manager", "personnel-officer-admin", "reviewer"]
// Отримання першої ролі з масиву
def firstRole = roles[0]
// Формування результату. Наприклад, створимо Map для тимчасової змінної payload
def payload = [firstRole: firstRole]
// Припустимо, що весь масив ролей є доступними ролями, які ми хочемо зберегти
def availableRoles = roles
// Запис даних у змінні процесу
set_transient_variable('payload', payload)
set_variable('availableRoles', availableRoles)
4. Приклад
Ось референтний приклад, який показує, як відповідний делегат використовується у бізнес-процесі:

Де можна знайти приклад референтного бізнес-процесу?Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого. Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами. Приклад BPMN-схеми процесу буде доступний у регламенті демо-реєстру за пошуком по ключовим словам — reference-officers-management. Назви форм ви можете знайти всередині відповідних користувацьких задач бізнес-процесу у полі |