Проблемы с правами доступа в Camunda

Пользователь

от nekikryu , в категории: Java , 2 года назад

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

Все настраивается через 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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaren , 2 года назад

@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" задачи.

Вы можете изменить это правило или создать свое собственное, чтобы настроить авторизацию в соответствии с вашими потребностями.