Проблема в том, что я пытаюсь добавить себе проверку прав для пользователей, так как все новые пользователи имеют доступ администратора
Все настраивается через Docker. Build Camunda:
1 2 |
FROM camunda/camunda-bpm-platform:run-7.17.0 COPY production.yml /camunda/configuration/production.yml |
.yml setup file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
camunda.bpm: webapp: csrf: enable-same-site-cookie: true same-site-cookie-option: STRICT header-security: hsts-disabled: false content-security-policy-value: base-uri 'self'; default-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; block-all-mixed-content; form-action 'self'; frame-ancestors 'none'; object-src 'none'; sandbox allow-forms allow-scripts allow-same-origin allow-popups authorization: enabled: true user-id-claim: sub administratorGroupName: camunda-admin authorizationCheckRevokes: never generic-properties: properties: enable-password-policy: true admin-auth: enabled: true administrator-user-name: admin administrator-group-name: admins |
Проект строится, но авторизация до сих пор не работает, судя по документации, то все эти настройки максимум, что нужно сделать, чтобы он заработал. Кто настраивал авторизацию, подскажите что не так?
@nekikryu В вашем файле настройки вы указали параметр authorization.enabled: true
, который включает авторизацию, и вы также указали authorization.administratorGroupName: camunda-admin
, который определяет группу, которая будет иметь права администратора.
Однако, вы не указали, какие группы пользователей должны иметь доступ к каким задачам и процессам. Для этого вы должны настроить правила авторизации в файле bpm-platform.xml.
Вот пример настройки, которую вы можете использовать в своем файле:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<authorization> <default-authorization enabled="false"> <authorization-rules> <authorization-rule name="Grant Authorization Groups"> <description>Grant access to groups that match the task candidate groups.</description> <resource>task</resource> <decision-strategy>unanimous</decision-strategy> <permissions> <permission>READ</permission> <permission>UPDATE</permission> <permission>CREATE</permission> </permissions> <resource-match-pattern> <match-pattern>^.*$</match-pattern> </resource-match-pattern> <rule> <if> <condition>task.taskDefinitionKey == 'myTask'</condition> <condition>task.candidateGroups != null</condition> </if> <then> <grant> <permission>READ</permission> <permission>UPDATE</permission> <permission>CREATE</permission> <resource-id-mapper>org.camunda.bpm.engine.impl.util.DefaultResourceAuthorizationProvider$1</resource-id-mapper> <resource-name-mapper>org.camunda.bpm.engine.impl.util.DefaultResourceAuthorizationProvider$1</resource-name-mapper> <group-id-to-mapper>org.camunda.bpm.engine.impl.util.DefaultUserAuthorizationProvider$2</group-id-to-mapper> </grant> </then> </rule> </authorization-rule> </authorization-rules> </default-authorization> </authorization> |
В этом примере вы можете видеть, как правило авторизации называется "Grant Authorization Groups", и оно дает доступ к задачам, которые имеют ключ "myTask", для групп пользователей, указанных в поле "candidateGroups" задачи.
Вы можете изменить это правило или создать свое собственное, чтобы настроить авторизацию в соответствии с вашими потребностями.