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

Для управления правами доступа к ПО ExeMES используется ПО Keycloak. Конфигурация параметров для управления правами доступа к ПО ExeMES размещена в отдельном преднастроенном realm «exemes». Для работы с конфигурацией необходимо запустить административную web консоль Keycloak (URL для обращения конфигурируется при инсталляции Keycloak) и открыть realm «exemes».

Для конфигурации прав доступа к ПО ExeMES необходимо:

  1. Создать группы пользователей.

    Для создания группы пользователей необходимо перейти на вкладку «Groups» в консоли Keycloak и нажать кнопку «Create group», после чего в открывшемся всплывающем окне указать название группы. Предпочтительно указывать названия групп пользователей латинскими буквами.

  2. Назначить группам пользователей роли.

    В Keycloak предусмотрено 2 типа ролей: роли realm (глобальные) и роли клиента (роли конкретного приложения). Для настройки прав доступа к ExeMES необходимо назначить группе пользователей роли клиентов ExeMES.

    Изменять настройки глобальный ролей realm не требуется и не рекомендуется.

    Для ПО ExeMES в realm настроено 5 клиентов:

    При совместном использовании ExeMES и ExeReport в realm ExeMES будет доступен клиент exereport, который имеет 2 роли:

    • MR – роль с правами управления отчетами, настройки прав доступа к отчетам и настройки строк подключения к БД;
    • VR – роль с правами просмотра и экспорта отчетов.

    Подробнее об управлении доступом к ExeReport

    Для ExeMes Client предусмотрена единственная роль, которая регулирует доступ к web-интерфейсу приложения – AC, доступ к отдельным функциям по просмотру и редактированию данных регулируется на уровне доступа к web API функциям ExeMES Middleware.

    Для ExeMES Middleware предусмотрена роль, которая регулирует доступ к API интерфейсу приложения – MD, доступ к отдельным API функциям регулируется отдельными ролями, которые отвечают за разрешение доступа к соответствующим политикам (policy).

    Политики (policy)

    Политики (policy) – это правила, которые используются для проверки на уровне API функции наличия разрешения для доступа у пользователя: для API функции задается политика и при обращении пользователя проверяется соответствие пользователя назначенной политики функции. Узнать какая именно политика отвечает за использование той или иной функции можно, воспользовавшись Swagger: информация о политике каждой api функции приведена в описании каждой функции

    Название роли

    policy API функций

    Описание роли

    EAdm

    CanEditAdminTools

    Полный доступ к инструментам администратора в ExeMES Client:

    • проверка актуальности версии БД MESDB
    • обновление версии БД MESDB;
    • экспорт/импорт конфигурации ExeMES;
    • настройка и просмотр журнала аудита изменения данных;
    • просмотр всех привязанных к ExeMES файлов.

    EAttr

    IsCanEditAttr

    Разрешение на редактирование атрибутов

    ECategory

    IsCanEditCategory

    Разрешение на редактирование категорий материалов

    EChar

    IsCanEditChar

    Разрешение на редактирование характеристик

    ECons

    IsCanEditCons

    Разрешение на редактирование записей потребления

    ECust

    IsCanEditCust

    Разрешение на редактирование контрагентов

    ECustomData

    IsCanEditCustomData

    Разрешение на вызов custom API функции для чтения и записи данных из схемы отличной от public 

    EDataLog

    CanEditDataLog

    Разрешение на редактирование журнала данных

    EDataLogGrp

    CanEditDataLogGrp

    Разрешение на редактирование групп параметров журнала данных

    EEnt

    IsCanEditEnt

    Разрешение на редактирование объектов

    EInv

    IsCanEditInv

    Разрешение на редактирование остатков на складах

    EItem

    IsCanEditItem

    Разрешение на редактирование материалов

    EItemClass

    IsCanEditItemClass

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

    EItemGrade

    IsCanEditItemGrade

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

    EItemReason

    IsCanEditItemReason

    Разрешение на редактирование причин материалов

    EItemState

    IsCanEditItemState

    Разрешение на редактирование состояний материалов

    EJobExec

    IsCanRunJob

    Разрешение на редактирование запущенных заданий

    ELot

    IsCanEditLot

    Разрешение на редактирование партий и подпартий

    EParam

    IsCanEditParam

    Разрешение на редактирование параметров

    EPlanData

    IsCanEditPlanData

    Разрешение на редактирование планов

    EPlanSetting

    IsCanEditPlanSetting

    Разрешение на редактирование настроек планов

    EPlanType

    IsCanEditPlanType

    Разрешение на редактирование типов планов

    EProcess

    IsCanEditProcess

    Разрешение на редактирование процессов

    EProd

    IsCanEditProd

    Разрешение на редактирование записей производства

    EQMSpec

    IsCanEditQMSpec

    Разрешение на редактирование спецификаций управления качеством

    ESample

    IsCanEditSample

    Разрешение на редактирование проб

    ESamplePlan

    IsCanEditSamplePlan

    Разрешение на редактирование планов отбора проб

    ESamplePlanFreq

    IsCanEditSamplePlanFreq

    Разрешение на редактирование частот отбора проб

    EShift

    IsCanEditShift

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

    EShipment

    IsCanEditShipment

    Разрешение на редактирование отгрузок

    ESO

    IsCanEditSO

    Разрешение на редактирование клиентских заказов

    ESystemAttr

    IsCanEditSystemAttr

    Разрешение на редактирование системных атрибутов

    ETeam

    IsCanEditTeam

    Разрешение на редактирование бригад

    ETeamSchedule

    IsCanEditTeamSchedule

    Разрешение на редактирование расписаний бригад

    ETransfer

    IsCanEditTransfer

    Разрешение на редактирование записей о перемещении материалов

    EUOM

    IsCanEditUOM

    Разрешение на редактирование единиц измерения

    EUtil

    IsCanEditUtil

    Разрешение на редактирование причин состояния оборудования

    EUtilExecSetRaw

    IsCanEditUtilRawData

    Разрешение на редактирование сырых причин состояния оборудования

    EUtilHistory

    IsCanEditUtilData

    Разрешение на редактирование событий изменения состояния оборудования

    EUtilState

    IsCanEditUtilState

    Разрешение на редактирование состояний оборудования

    EWO

    IsCanEditWO

    Разрешение на редактирование производственных заказов

    VAdm

    CanViewAdminTools

    Ограниченный доступ к инструментам администратора в ExeMES Client:

    • проверка актуальности версии БД MESDB;
    • просмотр журнала аудита изменения данных;
    • просмотр всех привязанных к ExeMES файлов.

    VAttr

    IsCanViewAttr

    Разрешение на просмотр атрибутов

    VCategory

    IsCanViewCategory

    Разрешение на просмотр категорий

    VChar

    IsCanViewChar

    Разрешение на просмотр характеристик

    VCons

    IsCanViewCons

    Разрешение на просмотр записей потребления

    VCust

    IsCanViewCust

    Разрешение на просмотр контрагентов

    VCustomData

    IsCanViewCustomData

    Разрешение на вызов custom API функции для чтения данных из схемы отличной от public

    VDataLog

    CanViewDataLog

    Разрешение на просмотр журнала данных

    VDataLogGrp

    CanViewDataLogGrp

    Разрешение на просмотр групп параметров журнала данных

    VEnt

    IsCanViewEnt

    Разрешение на просмотр объектов

    VInv

    IsCanViewInv

    Разрешение на просмотр остатков на складах

    VItem

    IsCanViewItem

    Разрешение на просмотр материалов

    VItemClass

    IsCanViewItemClass

    Разрешение на просмотр классов материалов

    VItemGrade

    IsCanViewItemGrade

    Разрешение на просмотр сортов материалов

    VItemReason

    IsCanViewItemReason

    Разрешение на просмотр причин материалов

    VItemState

    IsCanViewItemState

    Разрешение на просмотр состояний материалов

    VLot

    IsCanViewLot

    Разрешение на просмотр партий и подпартий

    VParam

    IsCanViewParam

    Разрешение на просмотр параметров

    VPlanData

    IsCanViewPlanData

    Разрешение на просмотр планов

    VPlanSetting

    IsCanViewPlanSetting

    Разрешение на просмотр настроек планов

    VPlanType

    IsCanViewPlanType

    Разрешение на просмотр типов планов

    VProcess

    IsCanViewProcess

    Разрешение на просмотр процессов

    VProd

    IsCanViewProd

    Разрешение на просмотр записей производства

    VQMSpec

    IsCanViewQMSpec

    Разрешение на просмотр спецификаций управления качеством

    VSample

    IsCanViewSample

    Разрешение на просмотр проб

    VSamplePlan

    IsCanViewSamplePlan

    Разрешение на просмотр планов отбора проб

    VSamplePlanFreq

    IsCanViewSamplePlanFreq

    Разрешение на просмотр частот отбора проб

    VShift

    IsCanViewShift

    Разрешение на просмотр смен

    VShipment

    IsCanViewShipment

    Разрешение на просмотр отгрузок

    VSO

    IsCanViewSO

    Разрешение на просмотр клиентских заказов

    VSystemAttr

    IsCanViewSystemAttr

    Разрешение на просмотр системных атрибутов

    VTeam

    IsCanViewTeam

    Разрешение на просмотр бригад

    VTeamSchedule

    IsCanViewTeamSchedule

    Разрешение на просмотр расписаний бригад

    VTransfer

    IsCanViewTransfer

    Разрешение на просмотр перемещения материалов

    VUOM

    IsCanViewUOM

    Разрешение на просмотр единиц измерения

    VUtil

    IsCanViewUtil

    Разрешение на просмотр причин состояния оборудования

    VUtilHistory

    IsCanViewUtilData

    Разрешение на просмотр событий изменения состояния оборудования

    VUtilState

    IsCanViewUtilState

    Разрешение на просмотр состояний оборудования

    VWO

    IsCanViewWO

    Разрешение на просмотр производственных заказов

    Также для клиента ExeMES Middleware предусмотрены 2 роли для просмотра и управления настройками доступа:

    • EAccess - роль для изменения настроек доступа;
    • VAccess - роль для просмотра настроек доступа.

    Управление настройками доступа предусматривает настройку доступа к объектам из объектной модели.

    Для работы данного функционала также необходимо предоставить:

    • пользователю, ответственному за управление доступом - роли view-users и manage-authorization или роль realm-admin клиента realm-management;
    • сервисному аккаунту клиента mesmiddleware service-account-mesmiddleware - роль view-clients.

     Для ExeMES RuntimeClient предусмотрены 4 роли:

    Для ExeSched предусмотрена единственная роль, которая регулирует доступ к web-интерфейсу приложения – Scheduler.

    Для ExeMES Media Service предусмотрены 3 роли:

    • Admin - роль для возможности очистки неиспользуемых файлов, редактирования и просмотра файлов в ExeMES Client;
    • Editor - роль для возможности редактирования и просмотра файлов в ExeMES Client;
    • Viewer - роль для возможности просмотра файлов в ExeMES Client и ExeMES RuntimeClient.

    Для назначения роли группе пользователей необходимо открыть страницу с группами пользователей (пункт главного меню «Groups»), выбрать в списке групп пользователей необходимую группу, перейти на вкладку «Role mapping» и нажать кнопку «Assign role», после чего в открывшемся всплывающем окне отметить роли, с которыми необходимо ассоциировать группу пользователей.

    По умолчанию в окне отображаются роли realm, для отображения ролей клиентов необходимо переключить тип фильтра на «Filter by clients». В окне отобразятся только те роли, которые еще не ассоциированы для этой группы, рядом с каждой ролью будет указан клиент, к которому она относится. Для удобства навигации можно воспользоваться фильтром по имени роли (ввести в поле «Search by role name» полное или часть имени роли).

  3. Добавить пользователей в группы. Все пользователи, добавленные в группу, будут автоматически получать роли, ассоциированные с данной группой. Если пользователь включен в несколько групп, его полномочия будут определены в соответствии с полномочиями всех ролей, которые были ему ассоциированы.

    Для создания пользователя в Keycloak необходимо на странице с пользователями (пункт главного меню «Users») нажать кнопку «Add User», после чего в открывшемся всплывающем окне указать данные пользователя, такие как имя, фамилия, электронная почта и пароль.

    Чтобы добавить пользователя в группу необходимо нажать на кнопку «Join Groups» и в открывшемся всплывающем окне выбрать группы, в которые необходимо включить пользователя.

    Для завершения процесса создания пользователя необходимо нажать на кнопку «Create».

    Для вновь созданного пользователя необходимо задать пароль. Для этого на странице с пользователями (пункт главного меню «Users») необходимо выбрать пользователя, перейти на вкладку «Credentials» и нажать кнопку «Set password», после чего в открывшемся всплывающем окне задать временный или постоянный пароль для пользователя (регулируется переключателем Temporary: если он включен – пароль временный, если выключен  - постоянный). Временный пароль пользователь должен будет сменить при первом входе. Для завершения процесса задания пароля необходимо нажать на кнопку «Save», после чего подтвердить действие нажав на кнопку «Save password».

  4. Выполнить завершение сессий всех пользователей, для которых был настроен доступ.

    Для завершения сессии пользователя необходимо в левом меню Keycloak выбрать реалм «exemes» и перейти в пункт меню «Sessions»:

    Далее необходимо нажать на кнопку напротив пользователя, чью сессию необходимо завершить и выбрать пункт «Sign out»:

    После завершения сессии пользователю необходимо повторно авторизоваться в ExeMES

Keycloak предоставляет возможность импортировать пользователей из внешних источников данных: т.е. группы и пользователи могут быть импортированы из Active Directory, что обеспечит сквозную аутентификацию в ExeMES для пользователей корпоративного домена.

Для настройки синхронизации с  Active Directory (AD) необходимо открыть окно с настройками федераций (пункт главного меню «User federation») консоли. Keycloak, нажать на кнопку «Add Ldap providers», после чего в открывшемся окне указать параметры подключения к LDAP провайдеру:

  • в разделе General Options задаются общие параметры:
    • Console display name - имя подключения (возможно указать произвольный текст);
    • Vendor – тип провайдера, необходимо выбрать из выпадающего списка «Active Directory»;

  • в разделе Connection and authentication settings задаются параметры для подключения к серверу AD (параметры подключения зависят от настроек вашего корпоративного домена):
    • Connection URL – адрес для подключения к AD в формате: ldap://IP-адрес домена;
    • Enable StartTLS – флаг, обозначающий необходимость шифрования подключения к LDAP с помощью StartTLS, по умолчанию устанавливается в «off»;
    • Use Truststore SPI – параметр, обозначающий будет ли соединение использовать SPI хранилище доверенных сертификатов (глобальное хранилище ключей Keycloak), по умолчанию устанавливается значение «Never»;
    • Connection pooling – флаг, обозначающий необходимо ли использовать пул (кэш) соединений вместо установки нового соединения при каждом запросе, по умолчанию устанавливается в «off»;
    • Connection timeout – таймаут для соединения в миллисекундах, по умолчанию параметр остается пустым.

После задания настроек необходимо проверить подключение нажав на кнопку «Test connection». При успешном подключении в правом верхнем углу появится надпись «Successfully connected to LDAP»

 

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

    • Bind type – тип метода аутентификации, по умолчанию устанавливается значение «simple»;
    • Bind DN – доменная учетная запись в формате [имя домена]\[логин], с которой необходимо авторизоваться в домене, учетная запись должна обладать правами администратора домена;
    • Bind credentials - пароль от учетной записи, указанной в параметре «Bind DN».

После задания настроек необходимо проверить прохождение аутентификации в домене нажав на кнопку «Test authentication». При успешной аутентификации в правом верхнем углу появится надпись «Successfully connected to LDAP».

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

  • в разделе LDAP searching and updating необходимо указать параметры для экспорта данных:
    • Edit mode – режим взаимодействия с доменом, по умолчанию устанавливается значение «READ_ONLY»;
    • Users DN – элемент дерева домена, где располагаются пользователи, которых необходимо импортировать: DC=[Домен],DC=[Доменная_Зона];
    • Username LDAP attribute – имя атрибута в домене, который хранит логин пользователя, по умолчанию устанавливается значение «cn»;
    • RDN LDAP attribute – имя атрибута в домене, который используется в качестве RDN логина пользователя (обычно совпадает с атрибутом, который хранил логин пользователя), по умолчанию устанавливается значение «cn»;
    • UUID LDAP attribute – имя атрибута в домене, который хранит уникальный идентификатор (UID) пользователя, по умолчанию устанавливается значение «objectGUID»;
    • User object classes – перечень классов пользователей, разделенных запятой, которые должны быть импортированы, по умолчанию устанавливается значение «person, organizationalPerson, user»;
    • User LDAP filter – фильтр для поиска импортируемых пользователей в домене. Пример:(memberOf:1.2.840.113556.1.4.1941:=CN=MyMainGroup,OU=MyOrganizationalUnit,DC=MyDomain,DC=com);
    • Search scope – тип поиска, по умолчанию устанавливается значение «Subtree» (для поиска во вложенных объектах);
    • Read timeout – таймаут для операций чтения в миллисекундах, по умолчанию параметр остается пустым;
    • Pagination – флаг, обозначающий, что необходимо использовать постраничный поиск в LDAP, по умолчанию устанавливается значение «off».

  • в разделе Synchronization settings необходимо указать настройки синхронизации с доменом:
    • Import users – флаг, обозначающий, что необходимо импортировать пользователей из AD, по умолчанию устанавливается значение «on»;
    • Sync Registrations - флаг, обозначающий, что необходимо импортировать созданных пользователей в Keycloak в AD, по умолчанию устанавливается значение «on»;
    • Batch size – количество пользователей, которое может быть импортировано из AD за одну транзакцию, по умолчанию параметр остается пустым;
    • Periodic full sync - флаг, обозначающий, что необходимо периодически синхронизировать всех пользователей из AD с пользователями Keycloak, по умолчанию устанавливается значение «on». Также необходимо установить в поле «Full sync period» период синхронизации в секундах, по умолчанию устанавливается значение 3600;
    • Periodic changed users sync - флаг, обозначающий, что необходимо периодически синхронизировать созданных или измененных пользователей из AD с пользователями Keycloak, по умолчанию устанавливается значение «on». Также необходимо установить в поле «Changed users sync period» период синхронизации в секундах, по умолчанию устанавливается значение 60.

  • в разделе Kerberos integration необходимо указать параметры для использования протокола Kerberos:
    • Allow Kerberos authentication - флаг, обозначающий, что необходимо использовать HTTP авторизацию пользователей с SPNEGO/Kerberos токенами, по умолчанию устанавливается значение «Off»;
    • Use Kerberos for password authentication - флаг, обозначающий, что необходимо использовать модуль входа Kerberos для проверки подлинности пары логин/пароль, по умолчанию устанавливается значение «Off».

  • в разделе Cache settings необходимо указать параметры кэширования:
    • Cache policy – политика кэширования, которая регулирует время очистки кэша, по умолчанию устанавливается значение «DEFAULT», что означает применение настроек по умолчанию для глобального кеша.

  • в разделе Advanced settings необходимо указать дополнительные параметры:
    • Enable the LDAPv3 password modify extended operation – флаг, обозначающий необходимость использования LDAPv3 (RFC-3062), по умолчанию устанавливается значение «Off»;
    • Validate password policy – флаг, обозначающий, что Keycloak должен проверять пароль на соответствие политикам realm перед его обновлением (синхронизацией с AD), по умолчанию устанавливается значение «Off»;
    • Trust email – флаг, обозначающий, что Keycloak не должен проверять адрес электронной почты перед его обновлением (синхронизацией с AD), по умолчанию устанавливается значение «Off».

После задания настроек необходимо проверить синхронизацию с AD нажав на кнопку «Query Supported Extension». При успешной аутентификации в правом верхнем углу появится надпись «Successfully connected to LDAP».

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

 В завершение настройки необходимо нажать кнопку Save.

После завершения настройки в окне с настройками федераций (пункт главного меню «User federation») консоли Keycloak появится созданное выше подключение.

Далее необходимо настроить синхронизацию групп пользователей, для этого необходимо нажать на значок подключения в окне с настройками федераций, после чего перейти на вкладку «Mappers» в открывшемся окне и нажать на кнопку «Add mapper».

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

  • Name – название объекта (маппера), произвольный текст, по умолчанию устанавливается значение «Grp»;
  • Mapper type – тип объекта (маппера), по умолчанию устанавливается значение «group-ldap-mapper»;
  • LDAP Groups DN – фильтр для сопоставления групп в формате: OU=Подразделение_В_ AD,DC=Домен,DC=Доменная_зона. Пример: OU=MyOrganizationalUnit,DC=MyDomain,DC=com;
  • Group Name LDAP Attribute – имя атрибута AD, в котором хранится имя группы пользователей, по умолчанию устанавливается значение «cn»;
  • Group Object Classes - перечень классов групп пользователей, разделенных запятой, которые должны быть импортированы, по умолчанию устанавливается значение «group»;
  • Preserve Group Inheritance – флаг, обозначающий включение или выключение распространения группового наследования. То есть в случае, если группа пользователей состоит из других групп пользователей, то вся эта иерархия наследования также перенесётся в Keycloak, по умолчанию устанавливается значение «Off»;
  • Ignore Missing Groups – флаг, обозначающий, что необходимо игнорировать отсутствующие группы, по умолчанию устанавливается значение «On»;
  • Membership LDAP Attribute - имя атрибута AD, в котором хранится сопоставление пользователей группам, по умолчанию устанавливается значение «member»;
  • Membership Attribute Type – тип атрибута, в котором хранится сопоставление пользователей группам, по умолчанию устанавливается значение «DN»;
  • Membership User LDAP Attribute - имя атрибута AD, в котором хранится сопоставление пользователя к группам, по умолчанию устанавливается значение «cn»;
  • LDAP Filter – преднастроенный дополнительный фильтр для сопоставления, по умолчанию поле необходимо оставить пустым;
  • Mode – режим сопоставления, по умолчанию устанавливается значение «READ_ONLY»;
  • User Groups Retrieve Strategy – стратегия экспорта групп, по умолчанию устанавливается значение «LOAD_GROUPS_BY_MEMBER_ATTRIBUTE»;
  • Member-Of LDAP Attribute – имя атрибута AD, в котором для пользователя хранится перечень групп, в которые он включен, по умолчанию устанавливается значение «memberOf»;
  • Mapped Group Attributes – перечень атрибутов групп AD, которые необходимо сопоставить с атрибутами Keycloak, по умолчанию поле необходимо оставить пустым;
  • Drop non-existing groups during sync – флаг, обозначающий необходимость удаления групп из Keycloak, которые больше не существуют в AD, по умолчанию устанавливается значение «Off»;
  • Groups Path – путь, куда необходимо синхронизировать группы из AD, по умолчанию устанавливается значение «/» (корневая группа).

После завершения настройки группы и пользователи из AD, согласно заданной конфигурации, должны появиться с Keycloak. Далее этим группам можно будет назначать роли, как описано выше.

  • No labels