Вступление
В этой статье рассказывается о новой функции, которая позволяет администрировать пользователей и группы приложения с помощью интуитивно понятного и дружественного пользовательского интерфейса, интегрированного как в jBPM, так и в Drools Workbenches.
Перед установкой, настройкой и использованием этой функции в этой статье рассказывается о некоторых предыдущих концепциях, которые необходимо полностью понять для дальнейшего использования.
Итак, эта статья разбита на следующие разделы:
- Поставщики и возможности управления безопасностью
- Установка и настройка
- использование
Заметки:
- Эта функция включена в версию 6.4.0.Final.
- Источники доступны здесь .
Поставщики управления безопасностью
Среда безопасности обычно обеспечивается использованием области . Области используются для ограничения доступа к ресурсам различных приложений. Таким образом, области содержат информацию о пользователях, группах, ролях, разрешениях и любую другую связанную информацию.
В большинстве типичных сценариев безопасность приложения делегируется механизму безопасности контейнера, который одновременно использует определенную область. Важно учитывать, что существует несколько реализаций областей, например, Wildfly предоставляет область, основанную на файлах application-users.properties / application-roles.properties , Tomcat предоставляет область, основанную на файле tomcat-users.xml и т. Д. Имейте в виду, что нет единой области безопасности, на которую можно положиться, она может быть разной в каждой установке.
Рабочие среды jBPM и Drools не являются исключением, они построены на верхней платформе Uberfire (также известной как UF), которая также делегирует авторизацию и аутентификацию среде безопасности нижележащего контейнера, поэтому потребляемая область задается конкретной конфигурацией развертывания.
Поставщики управления безопасностью
Из-за возможных различных сред безопасности, которые должны поддерживаться, управление пользователями и группами предоставляет четко определенный API служб управления с некоторыми встроенными по умолчанию
провайдеры управления безопасностью . Поставщик управления безопасностью — это формальное имя, данное конкретной реализации службы управления пользователями и группами для данной области.
На данный момент по умолчанию доступно три поставщика управления безопасностью:
- Поставщик управления безопасностью Wildfly / EAP — Области, основанные на файлах свойств.
- Поставщик управления безопасностью Tomcat — Области на основе файлов XML.
- Поставщик управления безопасностью Keycloak — Для администрирования областей на основе Keycloak . Этот провайдер включен в качестве технического предварительного просмотра для следующей серии 7.0, которая в настоящее время находится в разработке.
Будьте в курсе новых провайдеров управления безопасностью в следующих выпусках. Вы можете легко создать и зарегистрировать своего собственного провайдера управления безопасностью, если ни один из значений по умолчанию не подходит для вашей среды.
Возможности провайдера управления безопасностью
Каждая область безопасности может обеспечить поддержку различных операций. Например, рассмотрим использование царства 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 . Информация для пользователя состоит из дополнительных метаданных пользователя, таких как фамилия, адрес и т. Д., Как показано на следующем рисунке:
Создание пользователя Таким образом, различные сервисы и компоненты на стороне клиента из API управления пользователями и группами основаны на возможностях.
Возможности используются для предоставления или ограничения доступной функциональности, предоставляемой различными службами и компонентами на стороне клиента. Примеры возможностей:
- Обновить пользователя
- Удалить пользователя
- Обновить пользовательские атрибуты
- Создать группу
- Назначить группы
- Назначать роли
- и т.д
Каждый поставщик управления безопасностью должен указать набор поддерживаемых возможностей. Из предыдущих примеров вы можете заметить, что поставщик управления безопасностью Wildfly не поддерживает возможность управления атрибутами для пользователя — пользователь состоит только из имени пользователя. С другой стороны, поставщик Keycloak поддерживает эту возможность.
Различные представления и компоненты пользовательского интерфейса зависят от возможностей, поддерживаемых каждым провайдером, поэтому, если возможность не поддерживается провайдером, который используется, пользовательский интерфейс не предоставляет представления для управления этой возможностью. В качестве примера рассмотрим, что конкретный поставщик не поддерживает удаление пользователей — кнопка удаления пользователя в пользовательском интерфейсе будет недоступна.
Пожалуйста, ознакомьтесь с документацией конкретного поставщика услуг, чтобы проверить все поддерживаемые возможности для каждого из них. Стандартные функции можно найти здесь .
Если среда безопасности не поддерживается ни одним из поставщиков по умолчанию, вы можете создать свою собственную. Пожалуйста, оставайтесь в курсе дальнейших статей о том, как создать собственный поставщик управления безопасностью.
Установка и настройка
Прежде чем рассматривать шаги по установке и настройке, обратите внимание, что следующие дистрибутивы Drools и jBPM поставляются со встроенными, предварительно установленными поставщиками управления безопасностью по умолчанию:
- Распространение Wildfly / EAP. В обоих дистрибутивах используется поставщик управления безопасностью Wildfly, настроенный для использования приложения по умолчанию для файлов областей по умолчанию users.properties и application-roles.properties.
- Распределение Tomcat — используется поставщик управления безопасностью Tomcat, настроенный для использования файла области по умолчанию tomcat-users.xml
Если настройки вашей области отличаются от настроек по умолчанию, пожалуйста, прочитайте документацию каждого провайдера, чтобы применить конкретные настройки.
С другой стороны, если вы создаете свой собственный поставщик управления безопасностью или хотите включить его в существующее приложение, рассмотрите следующие варианты установки:
- Включить функцию управления безопасностью в существующем дистрибутиве WAR
- Установка и установка в существующем или новом проекте (из источников)
ПРИМЕЧАНИЕ. Если в приложении не установлен поставщик управления безопасностью, не будет доступного пользовательского интерфейса для управления областью безопасности. После установки и настройки поставщика управления безопасностью пользовательские интерфейсы управления пользователями и группами автоматически включаются и становятся доступными из главного меню.
Включить функцию управления безопасностью в существующем дистрибутиве WAR
С учетом существующего дистрибутива WAR рабочих столов Drools и jBPM выполните следующие шаги для установки и включения функции управления пользователями:
- Убедитесь, что в WEB-INF / lib присутствуют следующие библиотеки:
- WEB-INF / Lib / uberfire-безопасность-менеджмент-апи-6.4.0.Final..jar
- WEB-INF / Lib / uberfire-безопасность управление-бэкенд-6.4.0.Final..jar
- Добавьте конкретную библиотеку для поставщика управления безопасностью для использования в WEB-INF / lib :
- Пример: WEB-INF / lib / uberfire-security-management-wildfly-6.4.0.Final..jar
- Если конкретный поставщик, который вы используете, требует больше библиотек, добавьте их. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
- Замените весь контент для файла WEB-INF / classes / security-management.properties или, если его нет, создайте его. Параметры, представленные в этом файле, зависят от конкретной реализации, которую вы используете. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
- Если вы развертываете на Wildfly или EAP, проверьте, требует ли обновление WEB-INF / jboss-deploy-structure.xml . Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации.
Установка и установка в существующем или новом проекте (из источников)
Если вы создаете веб-приложение на основе Uberfire и хотите включить функцию управления пользователями и группами, прочитайте эту инструкцию .
Отключение функции управления безопасностью
Функция управления безопасностью может быть отключена, и, таким образом, ни один из сервисов или пользовательский интерфейс не будет доступен
- Удаление поставщика управления безопасностью из приложения. Если конкретный поставщик управления безопасностью не установлен в приложении, функция управления пользователями и группами будет отключена, и пользователю не будут представлены никакие службы или пользовательский интерфейс.
- Удаление или комментирование файла конфигурации управления безопасностьюСнятие или комментирование всех строк в файле конфигурации, расположенном по адресу WEB-INF / classes / security-management.properties , отключит функцию управления пользователем и группой, и пользователю не будут представлены никакие сервисы или пользовательский интерфейс. ,
использование
Функция управления пользователями и группами представлена в двух разных ракурсах, доступных в главном главном меню (учитывая, что эта функция включена):
Прочитайте следующие разделы, чтобы узнать, как использовать перспективы управления пользователями и группами.
Управление пользователями
Интерфейс управления пользователями доступен из пункта меню « Управление пользователями» в главном меню.
Интерфейс представлен двумя основными панелями: проводником пользователей на западной панели и редактором пользователей в центральной:
В дополнение к перечислению всех пользователей проводник пользователей позволяет: на западной панели обозреватель пользователей по умолчанию перечисляет всех пользователей, присутствующих в области безопасности приложения:
- Поиск пользователей
При указании шаблона поиска в поле поиска список пользователей будет сокращен и будет отображать только пользователей, соответствующих шаблону поиска. Шаблоны поиска зависят от конкретного поставщика управления безопасностью, используемого приложением. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации. - Создание новых пользователей : При нажатии на кнопку « Создать нового пользователя» на центральной панели будет представлен новый экран для создания нового пользователя.
Пользовательский редактор на центральной панели используется для создания, просмотра, обновления или удаления пользователей. После создания нового пользователя или выбора существующего пользователя в проводнике пользователей открывается экран редактора пользователей.
Чтобы просмотреть существующего пользователя , щелкните существующего пользователя в проводнике пользователей, чтобы открыть экран редактора пользователей. Например, просмотр пользователя с правами администратора при использовании поставщика управления безопасностью Wildfly приводит к следующему экрану:
Та же операция просмотра с правами администратора, но при использовании провайдера управления безопасностью Keycloak вместо Wildfly приводит к следующему экрану:
Как видите, пользовательский редактор при использовании Keycloak sec. Поставщик управления включает в себя раздел управления атрибутами пользователя, но его нет при использовании Wildfly. Помните, что информация и действия, доступные в пользовательском интерфейсе, зависят от возможностей каждого провайдера (как описано в предыдущих разделах),
Просмотр пользователя в редакторе пользователя предоставляет следующую информацию (если провайдер поддерживает это):
- Имя пользователя
- Атрибуты пользователя
- Назначенные группы
- Назначенные роли
Чтобы обновить или удалить существующего пользователя , нажмите кнопку « Изменить» рядом с именем пользователя на экране редактора пользователя:
Обновите атрибуты пользователя. После того, как редактор пользователя представлен в режиме редактирования, можно выполнять различные операции (если это поддерживает поставщик управления безопасностью):
Существующие пользовательские атрибуты могут быть обновлены, такие как имя пользователя, фамилия и т. Д. Также могут быть созданы новые атрибуты, если поставщик управления безопасностью поддерживает это.
- Обновление назначенных групп . Всплывающее окно выбора группы отображается при нажатии кнопки Добавить в группы : Этот всплывающий экран позволяет пользователю искать и выбирать или отменять выбор групп, назначенных для редактируемого пользователя.
- Обновление назначенных ролей . Всплывающее окно выбора роли появляется при нажатии кнопки Добавить в роли : Этот всплывающий экран позволяет пользователю искать и выбирать или отменять выбор ролей, назначенных для редактируемого пользователя.
- Изменить пароль пользователя
Всплывающее окно смены пароля отображается при нажатии на кнопку « Изменить пароль» :
- Удалить пользователя
Редактируемый в данный момент пользователь может быть удален из области, нажав на кнопку Удалить .
Управление группой
Интерфейс управления группой доступен из пункта меню « Управление группой» в главном меню.
Интерфейс представлен с использованием двух основных панелей: проводника групп на западной панели и редактора групп в центральной:
Обозреватель групп на западной панели по умолчанию перечисляет все группы, присутствующие в области безопасности приложения:
Помимо перечисления всех групп, проводник групп позволяет:
- Поиск групп
При указании шаблона поиска в поле поиска список пользователей будет сокращен и будут отображаться только те пользователи, которые соответствуют шаблону поиска.
Шаблоны поиска зависят от конкретного поставщика управления безопасностью, используемого приложением. Пожалуйста, прочитайте документацию каждого провайдера для получения дополнительной информации
- Создать новые группы При нажатии на кнопку « Создать новую группу» на центральной панели будет представлен новый экран для создания новой группы. После создания новой группы она позволяет назначать пользователей:
Редактор групп на центральной панели используется для создания, просмотра или удаления групп. После создания новой группы или щелчка по существующей группе в проводнике групп открывается экран редактора групп.
Чтобы просмотреть существующую группу , щелкните существующего пользователя в проводнике групп, чтобы открыть экран редактора групп. Например, просмотр результатов группы продаж на этом экране:
Чтобы удалить существующую группу, просто нажмите кнопку Удалить .
Ссылка: | Управление пользователями и группами в jBPM и Drools Workbenches от нашего партнера JCG Джеффри Де-Смета в блоге Drools & jBPM . |