Отримання ролей з Keycloak-реалму: Get Keycloak roles by realm

Цей документ пояснює, як отримати перелік системних та реєстрових ролей з певного Keycloak-реалму.

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

Інтеграційне розширення Get Keycloak roles by realm дозволяє вам отримати список усіх ролей з певного Keycloak-реалму.

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

Бізнес-назва інтеграційного розширення

Get Keycloak roles by realm

Службова назва інтеграційного розширення

${keycloakGetRolesByRealmConnectorDelegate}

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

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. Налаштування сервісного завдання

  1. Створіть завдання типу Service Task у вашому бізнес-процесі.

  2. Назвіть завдання, наприклад, Отримання переліку можливих регламентих ролей для реалма.

  3. Застосуйте шаблон делегата, обравши відповідний зі списку в налаштуваннях завдання.

    get keycloak roles by realm 1

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

  1. У полі Realm оберіть Officer для надавачів послуг або Citizen для отримувачів послуг.

  2. Оберіть Role Type, щоб визначити, які ролі повертати: REGISTRY ROLES, PLATFORM ROLES або ALL ROLES. Ви можете запитати всі (системні та реєстрові), лише системні, або лише реєстрові ролі, доступні для використання у реєстрі. За замовчуванням встановлено REGISTRY ROLES.

  3. Вкажіть змінну процесу (наприклад, rolesResponse), куди буде збережено відповідь. Ця змінна буде тимчасовою (transient). Це дозволяє ефективно управляти отриманими даними без зайвого зберігання інформації в базі даних.

Результатом виконання запита буде повернення переліку назв ролей певного користувача для визначеного реалма: List<String>.

Приклад відповіді зі списком ролей у форматі JSON
[
  "user",
  "admin",
  "hierarchy-registry-manager",
  "personnel-officer-admin",
  "reviewer"
]

Надалі ви зможете використовувати отриманий список ролей для різних цілей у бізнес-процесі. Наприклад, ви зможете отримати лише певну роль зі списку за індексом, сформувати payload із відповідним значенням та зберегти до тимчасової змінної для подальшого застосування у процесі:

Приклад groovy-скрипту для отримання першої ролі з масиву
// Визначення масиву ролей
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. Приклад

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

get keycloak roles by realm 2
Зображення 1. Референтний приклад. Управління користувачами
Де можна знайти приклад референтного бізнес-процесу?

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

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

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