apache sling & friends tech meetup berlin, 26-28 … · 2020-02-28 · apache sling &...

39
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool – Simplified Rights & Roles Rollout R. Gruber, J. Koschorke, Netcentric

Upload: others

Post on 07-Aug-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

APACHE SLING & FRIENDS TECH MEETUPBERLIN, 26-28 SEPTEMBER 2016

AC Tool – Simplified Rights & Roles RolloutR. Gruber, J. Koschorke, Netcentric

Page 2: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

adaptTo() 2016 2

What are ACLs?

Page 3: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

What Are ACLs Used For?

adaptTo() 2016 3

Page 4: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

adaptTo() 2016 4

Why to use a tool for ACL rollout?

Page 5: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why Use a Tool for AC Rules?

adaptTo() 2016 5

Tend to be complex Need to be understandable Must be consistent Need to be portable between stages Need automation

Page 6: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 7: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 8: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 9: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 10: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 11: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Why a New Tool?

adaptTo() 2016 6

Aspect Content Package ACL Setup Service AC Tool

Readability hard to readreadable for small setups

humanreadable files

Run mode support

Consistency old entries stay old entries staydeletes oldACLs

Export ACL Packager

Maintenance complexone OSGIconfiguration

multiple files

Page 12: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

adaptTo() 2016 7

How does AC Tool work?

Page 13: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

File Structure

adaptTo() 2016 8

Yaml format Multiple files per folder Run mode in folder name

Page 14: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Sections

adaptTo() 2016 9

- group_config……

- user_config……

- ace_config……

config.yaml- editors

- name: Page Editors…

- admins- name: Page Editors

Group configuration

- editors- path: /content

…- admins

- path: /content…

ACEs

Page 15: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Group Definitions

adaptTo() 2016 10

- group_config:

- editors:

- name: Page Editors

isMemberOf: staff

members: joe

description: All page editors

path: myproject

Page 16: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Assign ACEs to Groups

adaptTo() 2016 11

Simple ACE

- ace_config:

- editors:

- path: /content

permission: allow

privileges: jcr:read,rep:write

Page 17: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Assign ACEs to Groups

adaptTo() 2016 12

Using restrictions- ace_config:

- editors:

- path: /content

permission: allow

privileges: jcr:read

restrictions:

rep:glob: /jcr:*

Restrict to jcrattributes

Page 18: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

ACE ordering

adaptTo() 2016 13

Consistent order of ACEs

System ACEs

Deny rules

Allow rules

Page 19: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

14

User Creation

Page 20: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

User Creation: user_config

15

Primarily for test users and System users Profile content creation Preferences content creation

Page 21: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

User Creation: Examples

16

- poweruser

- name: PowerUserTestUser

isMemberOf: powerusers

password: secret

path: myproject

profileContent: <jcr:root

jcr:primaryType="nt:unstructured"

email="[email protected]"/>

- system_reader:

- name: system-reader

isMemberOf: system-read

path: myproject

isSystemUser: true

Page 22: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

17

Installation of ACEs

Page 23: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Curl

JCR Listener

Install Hook

Installation: JMX

18

JMX

Page 24: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Curl

JCR Listener

Install Hook

Installation: JMX

19

JMX

status informations

Page 25: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Curl

JCR Listener

Install Hook

Installation: JMX

20

JMX

execute

Page 26: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Curl

JCR Listener

Install Hook

Installation: JMX

21

JMX

purge permissions

Page 27: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Curl

JCR Listener

Install Hook

Installation: JMX

22

JMX

create exports

Page 28: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

JMX

JCR Listener

Install Hook

Installation: Curl

23

Curlcurl -sS --retry 1 -u admin:admin -X POST

"http://localhost:4502/system/console/jmx/biz.netcentric

cq.tools.actool:id='ac+installation'/op/execute/"

Page 29: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

JMX

Curl

Install Hook

Installation: JCR Listener

24

• Event based trigger:• On new upload• On change in deployed config• Can be disabled

JCR Listener

Page 30: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

JMX

Curl

JCR Listener

Installation: Install Hook

25

Install Hook

<plugin>

<groupId>com.day.jcr.vault</groupId>

<artifactId>content-package-maven-plugin</artifactId>

<configuration>

<properties>

<installhook.actool.class>

biz.netcentric.cq.tools.actool.installhook.AcToolInstallHook

</installhook.actool.class>

</properties>

</configuration>

</plugin>

Page 31: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

26

Live Demo

Page 32: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

27

Best Practices

Page 33: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Best Practises: Some General Hints

28

Avoid deny ACEs whenever possible Split configuration files by project/topic Create demo users with test content Keep it simple

Page 34: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Best Practises: Fragments

29

Dogma: separation of functional aspects and content Permission specific groups: fragments Functional fragments Content fragments

In addition: One fragment-basic-restrict-for-everyone One fragment-basic-allow

Page 35: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Best Practises: Fragments

30

Desired group permissions through combination of fragments

Page 36: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Best Practises: Fragments

31

PROs Separation of allow and denies, no mix Decreased length of ACLs Reusability Transparency

CONs Increased number of total groups

Page 37: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

32

Links

Page 38: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

Links

33

AC Tool homepage:https://github.com/Netcentric/accesscontroltool

Netcentric:https://github.com/Netcentrichttp://www.netcentric.biz/

Page 39: APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 … · 2020-02-28 · APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2016 AC Tool –Simplified Rights & Roles Rollout

34

Thank you