Статьи

Управление пользователями и группами в jBPM и Drools Workbenches

Вступление

В этой статье рассказывается о новой функции, которая позволяет администрировать пользователей и группы приложения с помощью интуитивно понятного и дружественного пользовательского интерфейса, интегрированного как в jBPM, так и в Drools Workbenches.

Управление пользователями и группами

Управление пользователями и группами

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

Итак, эта статья разбита на следующие разделы:

  • Поставщики и возможности управления безопасностью
  • Установка и настройка
  • использование

Заметки:

  • Эта функция включена в версию 6.4.0.Final.
  • Источники доступны здесь .

Поставщики управления безопасностью

Среда безопасности обычно обеспечивается использованием области . Области используются для ограничения доступа к ресурсам различных приложений. Таким образом, области содержат информацию о пользователях, группах, ролях, разрешениях и любую другую связанную информацию.

В большинстве типичных сценариев безопасность приложения делегируется механизму безопасности контейнера, который одновременно использует определенную область. Важно учитывать, что существует несколько реализаций областей, например, Wildfly предоставляет область, основанную на файлах application-users.properties / application-roles.properties , Tomcat предоставляет область, основанную на файле tomcat-users.xml и т. Д. Имейте в виду, что нет единой области безопасности, на которую можно положиться, она может быть разной в каждой установке.

Рабочие среды jBPM и Drools не являются исключением, они построены на верхней платформе Uberfire (также известной как UF), которая также делегирует авторизацию и аутентификацию среде безопасности нижележащего контейнера, поэтому потребляемая область задается конкретной конфигурацией развертывания.

Поставщики управления безопасностью

Из-за возможных различных сред безопасности, которые должны поддерживаться, управление пользователями и группами предоставляет четко определенный API служб управления с некоторыми встроенными по умолчанию
провайдеры управления безопасностью . Поставщик управления безопасностью — это формальное имя, данное конкретной реализации службы управления пользователями и группами для данной области.

На данный момент по умолчанию доступно три поставщика управления безопасностью:

Будьте в курсе новых провайдеров управления безопасностью в следующих выпусках. Вы можете легко создать и зарегистрировать своего собственного провайдера управления безопасностью, если ни один из значений по умолчанию не подходит для вашей среды.

Возможности провайдера управления безопасностью

Каждая область безопасности может обеспечить поддержку различных операций. Например, рассмотрим использование царства Wildfly на основе файлов свойств. Содержимое для application-users.properties выглядит следующим образом:

01
02
03
04
05
06
07
08
09
10
11
12
admin=207b6e0cc556d7084b5e2db7d822555c
salaboy=d4af256e7007fea2e581d539e05edd1b
maciej=3c8609f5e0c908a8c361ca633ed23844
kris=0bfd0f47d4817f2557c91cbab38bb92d
katy=fd37b5d0b82ce027bfad677a54fbccee
john=afda4373c6021f3f5841cd6c0a027244
jack=984ba30e11dda7b9ed86ba7b73d01481
director=6b7f87a92b62bedd0a5a94c98bd83e21
user=c5568adea472163dfc00c19c6348a665
guest=b5d048a237bfd2874b6928e1f37ee15e
kiewb=78541b7b451d8012223f29ba5141bcc2
kieserver=16c6511893651c9b4b57e0c027a96075

Как видите, он основан на парах ключ-значение, где ключом является имя пользователя, а значением является хешированное значение для пароля пользователя. Таким образом, пользователь просто определяется ключом, его именем пользователя, у него нет ни имени, ни адреса, и т. Д.

С другой стороны, рассмотрим использование области, предоставляемой сервером Keycloak . Информация для пользователя состоит из дополнительных метаданных пользователя, таких как фамилия, адрес и т. Д., Как показано на следующем рисунке:

admin_user_view

Администратор редактирует пользователя с помощью Keycloak sec. провайдер управления

Создание пользователя Таким образом, различные сервисы и компоненты на стороне клиента из API управления пользователями и группами основаны на возможностях.
Возможности используются для предоставления или ограничения доступной функциональности, предоставляемой различными службами и компонентами на стороне клиента. Примеры возможностей:

  • Обновить пользователя
  • Удалить пользователя
  • Обновить пользовательские атрибуты
  • Создать группу
  • Назначить группы
  • Назначать роли  
  • и т.д

Каждый поставщик управления безопасностью должен указать набор поддерживаемых возможностей. Из предыдущих примеров вы можете заметить, что поставщик управления безопасностью Wildfly не поддерживает возможность управления атрибутами для пользователя — пользователь состоит только из имени пользователя. С другой стороны, поставщик Keycloak поддерживает эту возможность.

Различные представления и компоненты пользовательского интерфейса зависят от возможностей, поддерживаемых каждым провайдером, поэтому, если возможность не поддерживается провайдером, который используется, пользовательский интерфейс не предоставляет представления для управления этой возможностью. В качестве примера рассмотрим, что конкретный поставщик не поддерживает удаление пользователей — кнопка удаления пользователя в пользовательском интерфейсе будет недоступна.

Пожалуйста, ознакомьтесь с документацией конкретного поставщика услуг, чтобы проверить все поддерживаемые возможности для каждого из них. Стандартные функции можно найти здесь .

Если среда безопасности не поддерживается ни одним из поставщиков по умолчанию, вы можете создать свою собственную. Пожалуйста, оставайтесь в курсе дальнейших статей о том, как создать собственный поставщик управления безопасностью.

Установка и настройка

Прежде чем рассматривать шаги по установке и настройке, обратите внимание, что следующие дистрибутивы Drools и jBPM поставляются со встроенными, предварительно установленными поставщиками управления безопасностью по умолчанию:

Если настройки вашей области отличаются от настроек по умолчанию, пожалуйста, прочитайте документацию каждого провайдера, чтобы применить конкретные настройки.

С другой стороны, если вы создаете свой собственный поставщик управления безопасностью или хотите включить его в существующее приложение, рассмотрите следующие варианты установки:

  • Включить функцию управления безопасностью в существующем дистрибутиве WAR
  • Установка и установка в существующем или новом проекте (из источников)

ПРИМЕЧАНИЕ. Если в приложении не установлен поставщик управления безопасностью, не будет доступного пользовательского интерфейса для управления областью безопасности. После установки и настройки поставщика управления безопасностью пользовательские интерфейсы управления пользователями и группами автоматически включаются и становятся доступными из главного меню.

Включить функцию управления безопасностью в существующем дистрибутиве WAR

С учетом существующего дистрибутива WAR рабочих столов Drools и jBPM выполните следующие шаги для установки и включения функции управления пользователями:

  1. Убедитесь, что в WEB-INF / lib присутствуют следующие библиотеки:
    • WEB-INF / Lib / uberfire-безопасность-менеджмент-апи-6.4.0.Final..jar
    • WEB-INF / Lib / uberfire-безопасность управление-бэкенд-6.4.0.Final..jar
  2. Добавьте конкретную библиотеку для поставщика управления безопасностью для использования в WEB-INF / lib :
    • Пример: WEB-INF / lib / uberfire-security-management-wildfly-6.4.0.Final..jar
    • Если конкретный поставщик, который вы используете, требует больше библиотек, добавьте их. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
  3. Замените весь контент для файла WEB-INF / classes / security-management.properties или, если его нет, создайте его. Параметры, представленные в этом файле, зависят от конкретной реализации, которую вы используете. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
  4. Если вы развертываете на Wildfly или EAP, проверьте, требует ли обновление WEB-INF / jboss-deploy-structure.xml . Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.

Установка и установка в существующем или новом проекте (из источников)

Если вы создаете веб-приложение на основе Uberfire и хотите включить функцию управления пользователями и группами, прочитайте эту инструкцию .

Отключение функции управления безопасностью

Функция управления безопасностью может быть отключена, и, таким образом, ни один из сервисов или пользовательский интерфейс не будет доступен

  • Удаление поставщика управления безопасностью из приложения. Если конкретный поставщик управления безопасностью не установлен в приложении, функция управления пользователями и группами будет отключена, и пользователю не будут представлены никакие службы или пользовательский интерфейс.
  • Удаление или комментирование файла конфигурации управления безопасностьюСнятие или комментирование всех строк в файле конфигурации, расположенном по адресу WEB-INF / classes / security-management.properties , отключит функцию управления пользователем и группой, и пользователю не будут представлены никакие сервисы или пользовательский интерфейс. ,

использование

Функция управления пользователями и группами представлена ​​в двух разных ракурсах, доступных в главном главном меню (учитывая, что эта функция включена):

главное меню

Элементы меню управления пользователями и группами

Прочитайте следующие разделы, чтобы узнать, как использовать перспективы управления пользователями и группами.

Управление пользователями

Интерфейс управления пользователями доступен из пункта меню « Управление пользователями» в главном меню.

Интерфейс представлен двумя основными панелями: проводником пользователей на западной панели и редактором пользователей в центральной:

users_perspective

Перспектива управления пользователями

В дополнение к перечислению всех пользователей проводник пользователей позволяет: на западной панели обозреватель пользователей по умолчанию перечисляет всех пользователей, присутствующих в области безопасности приложения:

  • Поиск пользователей users_explorer_search
    При указании шаблона поиска в поле поиска список пользователей будет сокращен и будет отображать только пользователей, соответствующих шаблону поиска. Шаблоны поиска зависят от конкретного поставщика управления безопасностью, используемого приложением. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
  • Создание новых пользователей : create_new_user При нажатии на кнопку « Создать нового пользователя» на центральной панели будет представлен новый экран для создания нового пользователя.

Пользовательский редактор на центральной панели используется для создания, просмотра, обновления или удаления пользователей. После создания нового пользователя или выбора существующего пользователя в проводнике пользователей открывается экран редактора пользователей.

Чтобы просмотреть существующего пользователя , щелкните существующего пользователя в проводнике пользователей, чтобы открыть экран редактора пользователей. Например, просмотр пользователя с правами администратора при использовании поставщика управления безопасностью Wildfly приводит к следующему экрану:

Просмотр администратора

Просмотр администратора

Та же операция просмотра с правами администратора, но при использовании провайдера управления безопасностью Keycloak вместо Wildfly приводит к следующему экрану:

Использование Keycloak sec. провайдер управления

Использование Keycloak sec. провайдер управления

Как видите, пользовательский редактор при использовании Keycloak sec. Поставщик управления включает в себя раздел управления атрибутами пользователя, но его нет при использовании Wildfly. Помните, что информация и действия, доступные в пользовательском интерфейсе, зависят от возможностей каждого провайдера (как описано в предыдущих разделах),

Просмотр пользователя в редакторе пользователя предоставляет следующую информацию (если провайдер поддерживает это):

  • Имя пользователя
  • Атрибуты пользователя
  • Назначенные группы
  • Назначенные роли

Чтобы обновить или удалить существующего пользователя , нажмите кнопку « Изменить» рядом с именем пользователя на экране редактора пользователя:

Редактирование администратора

Редактирование администратора

Обновите атрибуты пользователя. После того, как редактор пользователя представлен в режиме редактирования, можно выполнять различные операции (если это поддерживает поставщик управления безопасностью):

user_attributes Существующие пользовательские атрибуты могут быть обновлены, такие как имя пользователя, фамилия и т. Д. Также могут быть созданы новые атрибуты, если поставщик управления безопасностью поддерживает это.

  • Обновление назначенных групп . Всплывающее окно выбора группы отображается при нажатии кнопки Добавить в группы : groups_selection Этот всплывающий экран позволяет пользователю искать и выбирать или отменять выбор групп, назначенных для редактируемого пользователя.
  • Обновление назначенных ролей . Всплывающее окно выбора роли появляется при нажатии кнопки Добавить в роли : roles_selection Этот всплывающий экран позволяет пользователю искать и выбирать или отменять выбор ролей, назначенных для редактируемого пользователя.
  • Изменить пароль пользователя

Всплывающее окно смены пароля отображается при нажатии на кнопку « Изменить пароль» : сменить пароль

  • Удалить пользователя

Редактируемый в данный момент пользователь может быть удален из области, нажав на кнопку Удалить .

Управление группой

Интерфейс управления группой доступен из пункта меню « Управление группой» в главном меню.

Интерфейс представлен с использованием двух основных панелей: проводника групп на западной панели и редактора групп в центральной:

Перспектива управления группой

Перспектива управления группой

Обозреватель групп на западной панели по умолчанию перечисляет все группы, присутствующие в области безопасности приложения:

Исследователь групп

Исследователь групп

Помимо перечисления всех групп, проводник групп позволяет:

  • Поиск групп

При указании шаблона поиска в поле поиска список пользователей будет сокращен и будут отображаться только те пользователи, которые соответствуют шаблону поиска.

groups_explorer_search

Исследователь групп фильтруется с помощью поиска

Шаблоны поиска зависят от конкретного поставщика управления безопасностью, используемого приложением. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации

  • Создать новые группы create_group_button При нажатии на кнопку « Создать новую группу» на центральной панели будет представлен новый экран для создания новой группы. После создания новой группы она позволяет назначать пользователей:
    Назначить пользователей в недавно созданную группу

    Назначить пользователей в недавно созданную группу

Редактор групп на центральной панели используется для создания, просмотра или удаления групп. После создания новой группы или щелчка по существующей группе в проводнике групп открывается экран редактора групп.

Чтобы просмотреть существующую группу , щелкните существующего пользователя в проводнике групп, чтобы открыть экран редактора групп. Например, просмотр результатов группы продаж на этом экране:

Просмотр группы продаж

Просмотр группы продаж

Чтобы удалить существующую группу, просто нажмите кнопку Удалить .