SlideShare una empresa de Scribd logo
1 de 22
1
PROVISIONING & AUTHORING
@GabrielWalt – Product Manager – Web Experience Management
2
PROVISIONING & AUTHORING
Presentation Topics
1 Authentication
• Best Practices
• Authentication Handler
• Login Module
2 Resource Provisioning
• Best Practices
• Blueprints
• From Actions & Workflows
3 Author Scalability
• Vertical
• Horizontal
3
PROVISIONING & AUTHORING
1 Authentication
• Best Practices
• Authentication Handler
• Login Module
4
PROVISIONING & AUTHORING
1 Authentication
Best Practices
Keep it Simple
• Don’t micro-manage access rights for individual users or on individual pages
• Use groups to assign access rights
• Structure content around groups
• Use Allow statements to specify group access rights
5
PROVISIONING & AUTHORING
1 Authentication
Authentication Handler
Implements the method by which visitors provide credentials.
It must implement:
• Request Credentials
• Extract Credentials
• Drop Credentials
Example of implementations:
• HTTP Basic
• Form based
• Token based
• OpenID
• SAML 2.0
6
PROVISIONING & AUTHORING
1 Authentication
Login Module
Implements the method by which the server verifies the credentials.
Steps to add Login Modules:
• OSGi fragment bundle (since 5.5)
• Edit repository.xml file & jaas.conf file
• Update your startup script
• Restart CQ
Example Login Modules:
• CRX
• LDAP
7
PROVISIONING & AUTHORING
1 Authentication
LDAP Login Module
Useful Features
• Creates the users in the repository
• Can assign users to groups from LDAP
• Has a cache (with timeout and size settings)
• Can sync all users or a list of them at once
• Callbacks can be registered on user and group creation
8
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Create a user
curl -u admin:admin -FcreateUser=
-FauthorizableId=myUserName
-Frep:password=myPassword
-Fmembership=myGroupName
-Fprofile/myPropertyName=myPropertyValue
http://localhost:4502/libs/granite/security/post/authorizables
Create a group
curl -u admin:admin –FcreateGroup=
-FauthorizableId=myGroupName
http://localhost:4502/libs/granite/security/post/authorizables
9
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Edit an existing user
$ curl -u admin:admin -Fprofile/myPropertyName=myPropertyValue
http://localhost:4502/home/users/m/myUserName.rw.html
Set a user’s group memberships (overwriting existing group memberships)
$ curl -u admin:admin -Fmembership=myGroupName1 -Fmembership=myGroupName2
http://localhost:4502/home/users/m/myUserName.rw.html
Add/Remove users to/from a group (not impacting other memberships)
$ curl -u admin:admin
-FaddMembers=myUserName1 -FaddMembers=myUserName2
-FremoveMembers=myUserName3 -FremoveMembers=myUserName4
http://localhost:4502/home/groups/m/myGroupName.rw.html
10
PROVISIONING & AUTHORING
1 Authentication
Restful user & group management
Get current user’s information
$ curl -u admin:admin http://localhost:4502/libs/granite/security/currentuser.json
Delete a user or group
$ curl -u admin:admin –FdeleteAuthorizable=
http://localhost:4502/home/users/m/myUserName
11
PROVISIONING & AUTHORING
2 Resource Provisioning
• Best Practice
• Blueprints
• From Actions & Workflows
12
PROVISIONING & AUTHORING
2 Resource Provisioning
Best Practice
Keep it simple
• Keep number of templates low
• Keep number of components low
• Leverage CSS
• Build CSS-friendly markup
• Set smart classes on the pages
13
PROVISIONING & AUTHORING
2 Resource Provisioning
Blueprints
• Page structure ready to be provisioned
• Page structure can be customized (to some extent)
• A site owner can be defined (typically a group)
• Simple copy or LiveCopy is possible (for keeping pages in sync)
• A RolloutConfig can be added (to configure the components used for rendering)
14
PROVISIONING & AUTHORING
2 Resource Provisioning
From Actions & Workflows
Useful when resouces needs to be provisioned on demand.
Looking at the CQ 5.6+ New Community feature:
• Form for creating a new community
• Workflow for creating the content and setting ACL
15
PROVISIONING & AUTHORING
2 Resource Provisioning
New Community – deconstructing how it works:
1. New Community Form:
• Custom form component
• Configurable properties (livecopy & blueprint paths)
• Form action => forward.jsp
2. Forward.jsp
• Verifies values of submitted form
• Opens an admin session
• Creates a workflow node (below /etc/social/groups/)
• Adds to the workflow payload:
• form payload
• form properties
• current user id
16
PROVISIONING & AUTHORING
2 Resource Provisioning
New Community – deconstructing how it works:
3. Workflow launcher
• Has a workflow listening to node creations under /etc/social/groups/
4. “Create Community Live Copy” Workflow
• Creates a Live Copy from the master Community pages
• Activates the pages (which is probably not what you would do)
• Moves the workflow payload to the created parent page
17
PROVISIONING & AUTHORING
2 Resource Provisioning
6. “New Social Community Group” Workflow
• Creates admin group
• Adds original user to the admin group
• Sets ACL to the content for the admin group
New Community – deconstructing how it works:
5. Workflow launcher
• Has a workflow listening to page creation that has a payload
18
PROVISIONING & AUTHORING
3 Author Scalability
• Vertical
• Horizontal
19
PROVISIONING & AUTHORING
3 Author Scalability
Vertical Scalability
• Setup an Author Dispatcher
• Optimize Hardware
• Increase CPU, RAM & Disk speed
• Server load is affected by
• Image rendering & digital asset processing
• MSM Rollout
• Workflows
• Simple Editing
Sufficient for at least 50 editors editing content concurrently.
Approximation of # of logged-in users (of which only a fraction is editing concurrently!):
$ grep access.log
20
PROVISIONING & AUTHORING
3 Author Scalability
Horizontal Scalability
Sharding 1: Split different sites (or parts of sites) into separate author instances.
Publish instances are shared.
A
site 1
A
site 2
A
site 3
editing
editing
editing
P
P
P
replication
21
PROVISIONING & AUTHORING
3 Author Scalability
Horizontal Scalability
Sharding 2: Split different sites into separate author instances, but replicate to one
main author, e.g. for shared workflow processes.
A
site 1
A
site 2
A
site 3
editing
editing
editing
A
replication
P
replication
22
PROVISIONING & AUTHORING
Thank you!
@GabrielWalt – Product Manager – Web Experience Management

Más contenido relacionado

La actualidad más candente

Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content RepositoryGabriel Walt
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentGabriel Walt
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsStefano Celentano
 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteEffectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteAEM HUB
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling ResolutionDEEPAK KHETAWAT
 
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIsExternalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIsSalesforce Developers
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMGabriel Walt
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt AEM HUB
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web ApplicationSachin Walvekar
 
New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0Dima Maleev
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!judofyr
 
SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021 SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021 Hanish Bansal
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesICF CIRCUIT
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Railscodeinmotion
 

La actualidad más candente (20)

Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
AEM Best Practices for Component Development
AEM Best Practices for Component DevelopmentAEM Best Practices for Component Development
AEM Best Practices for Component Development
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
Sling Dynamic Include
Sling Dynamic IncludeSling Dynamic Include
Sling Dynamic Include
 
Plugins unplugged
Plugins unpluggedPlugins unplugged
Plugins unplugged
 
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto LeiteEffectively Scale and Operate AEM with MongoDB by Norberto Leite
Effectively Scale and Operate AEM with MongoDB by Norberto Leite
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
 
Introduction To CodeIgniter
Introduction To CodeIgniterIntroduction To CodeIgniter
Introduction To CodeIgniter
 
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIsExternalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
Externalizing Chatter Using Heroku, Angular.js, Node.js and Chatter REST APIs
 
Optimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEMOptimizing HTML5 Sites with CQ5/WEM
Optimizing HTML5 Sites with CQ5/WEM
 
How we rest
How we restHow we rest
How we rest
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt
 
Making Of PHP Based Web Application
Making Of PHP Based Web ApplicationMaking Of PHP Based Web Application
Making Of PHP Based Web Application
 
New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0New Features Of ASP.Net 4 0
New Features Of ASP.Net 4 0
 
CQ 5.4 Deep-Dive
CQ 5.4 Deep-DiveCQ 5.4 Deep-Dive
CQ 5.4 Deep-Dive
 
Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!Ruby on Rails: Building Web Applications Is Fun Again!
Ruby on Rails: Building Web Applications Is Fun Again!
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021 SPA Editing with Sling to the rescue - adaptTo() 2021
SPA Editing with Sling to the rescue - adaptTo() 2021
 
CIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM SitesCIRCUIT 2015 - Content API's For AEM Sites
CIRCUIT 2015 - Content API's For AEM Sites
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 

Similar a CQ Provisionning & Authoring

Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPOscar Merida
 
Necto 16 training 17 - administration
Necto 16 training 17 -  administrationNecto 16 training 17 -  administration
Necto 16 training 17 - administrationPanorama Software
 
Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentryBrock Noland
 
359555069 aae-control room-usermanual
359555069 aae-control room-usermanual359555069 aae-control room-usermanual
359555069 aae-control room-usermanualBishnujitBanerjee
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileWASdev Community
 
PowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal PresentationPowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal PresentationScott Sutherland
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementSharkrit JOBBO
 
Service management Dec 11
Service management Dec 11Service management Dec 11
Service management Dec 11Richard Conway
 
Service Management Dec 11
Service Management Dec 11Service Management Dec 11
Service Management Dec 11clarendonint
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best PracticesAmazon Web Services
 
Open shift deployment review getting ready for day 2 operations
Open shift deployment review   getting ready for day 2 operationsOpen shift deployment review   getting ready for day 2 operations
Open shift deployment review getting ready for day 2 operationsHendrik van Run
 
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.pptvdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.pptssuserd4e7d6
 
Ruby on Rails Security Guide
Ruby on Rails Security GuideRuby on Rails Security Guide
Ruby on Rails Security Guideihji
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User AccountsRaja Waseem Akhtar
 
Enhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah EineckerEnhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah Eineckerhannonhill
 

Similar a CQ Provisionning & Authoring (20)

EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rap...
 
Staying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHPStaying Sane with Drupal NEPHP
Staying Sane with Drupal NEPHP
 
Necto 16 training 17 - administration
Necto 16 training 17 -  administrationNecto 16 training 17 -  administration
Necto 16 training 17 - administration
 
Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentry
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
 
359555069 aae-control room-usermanual
359555069 aae-control room-usermanual359555069 aae-control room-usermanual
359555069 aae-control room-usermanual
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
 
PowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal PresentationPowerUpSQL - 2018 Blackhat USA Arsenal Presentation
PowerUpSQL - 2018 Blackhat USA Arsenal Presentation
 
Windows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server ManagementWindows 2012 R2 Multi Server Management
Windows 2012 R2 Multi Server Management
 
Service management Dec 11
Service management Dec 11Service management Dec 11
Service management Dec 11
 
Service Management Dec 11
Service Management Dec 11Service Management Dec 11
Service Management Dec 11
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best Practices
 
Rest web services
Rest web servicesRest web services
Rest web services
 
Open shift deployment review getting ready for day 2 operations
Open shift deployment review   getting ready for day 2 operationsOpen shift deployment review   getting ready for day 2 operations
Open shift deployment review getting ready for day 2 operations
 
IAM Best Practices
IAM Best PracticesIAM Best Practices
IAM Best Practices
 
Moodle + Adobe Connect
Moodle + Adobe Connect Moodle + Adobe Connect
Moodle + Adobe Connect
 
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.pptvdocuments.net_lotus-notes-domino-administration-rakesh.ppt
vdocuments.net_lotus-notes-domino-administration-rakesh.ppt
 
Ruby on Rails Security Guide
Ruby on Rails Security GuideRuby on Rails Security Guide
Ruby on Rails Security Guide
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User Accounts
 
Enhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah EineckerEnhanced Workflows in Cascade Server by Leah Einecker
Enhanced Workflows in Cascade Server by Leah Einecker
 

Último

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Último (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

CQ Provisionning & Authoring

  • 1. 1 PROVISIONING & AUTHORING @GabrielWalt – Product Manager – Web Experience Management
  • 2. 2 PROVISIONING & AUTHORING Presentation Topics 1 Authentication • Best Practices • Authentication Handler • Login Module 2 Resource Provisioning • Best Practices • Blueprints • From Actions & Workflows 3 Author Scalability • Vertical • Horizontal
  • 3. 3 PROVISIONING & AUTHORING 1 Authentication • Best Practices • Authentication Handler • Login Module
  • 4. 4 PROVISIONING & AUTHORING 1 Authentication Best Practices Keep it Simple • Don’t micro-manage access rights for individual users or on individual pages • Use groups to assign access rights • Structure content around groups • Use Allow statements to specify group access rights
  • 5. 5 PROVISIONING & AUTHORING 1 Authentication Authentication Handler Implements the method by which visitors provide credentials. It must implement: • Request Credentials • Extract Credentials • Drop Credentials Example of implementations: • HTTP Basic • Form based • Token based • OpenID • SAML 2.0
  • 6. 6 PROVISIONING & AUTHORING 1 Authentication Login Module Implements the method by which the server verifies the credentials. Steps to add Login Modules: • OSGi fragment bundle (since 5.5) • Edit repository.xml file & jaas.conf file • Update your startup script • Restart CQ Example Login Modules: • CRX • LDAP
  • 7. 7 PROVISIONING & AUTHORING 1 Authentication LDAP Login Module Useful Features • Creates the users in the repository • Can assign users to groups from LDAP • Has a cache (with timeout and size settings) • Can sync all users or a list of them at once • Callbacks can be registered on user and group creation
  • 8. 8 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Create a user curl -u admin:admin -FcreateUser= -FauthorizableId=myUserName -Frep:password=myPassword -Fmembership=myGroupName -Fprofile/myPropertyName=myPropertyValue http://localhost:4502/libs/granite/security/post/authorizables Create a group curl -u admin:admin –FcreateGroup= -FauthorizableId=myGroupName http://localhost:4502/libs/granite/security/post/authorizables
  • 9. 9 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Edit an existing user $ curl -u admin:admin -Fprofile/myPropertyName=myPropertyValue http://localhost:4502/home/users/m/myUserName.rw.html Set a user’s group memberships (overwriting existing group memberships) $ curl -u admin:admin -Fmembership=myGroupName1 -Fmembership=myGroupName2 http://localhost:4502/home/users/m/myUserName.rw.html Add/Remove users to/from a group (not impacting other memberships) $ curl -u admin:admin -FaddMembers=myUserName1 -FaddMembers=myUserName2 -FremoveMembers=myUserName3 -FremoveMembers=myUserName4 http://localhost:4502/home/groups/m/myGroupName.rw.html
  • 10. 10 PROVISIONING & AUTHORING 1 Authentication Restful user & group management Get current user’s information $ curl -u admin:admin http://localhost:4502/libs/granite/security/currentuser.json Delete a user or group $ curl -u admin:admin –FdeleteAuthorizable= http://localhost:4502/home/users/m/myUserName
  • 11. 11 PROVISIONING & AUTHORING 2 Resource Provisioning • Best Practice • Blueprints • From Actions & Workflows
  • 12. 12 PROVISIONING & AUTHORING 2 Resource Provisioning Best Practice Keep it simple • Keep number of templates low • Keep number of components low • Leverage CSS • Build CSS-friendly markup • Set smart classes on the pages
  • 13. 13 PROVISIONING & AUTHORING 2 Resource Provisioning Blueprints • Page structure ready to be provisioned • Page structure can be customized (to some extent) • A site owner can be defined (typically a group) • Simple copy or LiveCopy is possible (for keeping pages in sync) • A RolloutConfig can be added (to configure the components used for rendering)
  • 14. 14 PROVISIONING & AUTHORING 2 Resource Provisioning From Actions & Workflows Useful when resouces needs to be provisioned on demand. Looking at the CQ 5.6+ New Community feature: • Form for creating a new community • Workflow for creating the content and setting ACL
  • 15. 15 PROVISIONING & AUTHORING 2 Resource Provisioning New Community – deconstructing how it works: 1. New Community Form: • Custom form component • Configurable properties (livecopy & blueprint paths) • Form action => forward.jsp 2. Forward.jsp • Verifies values of submitted form • Opens an admin session • Creates a workflow node (below /etc/social/groups/) • Adds to the workflow payload: • form payload • form properties • current user id
  • 16. 16 PROVISIONING & AUTHORING 2 Resource Provisioning New Community – deconstructing how it works: 3. Workflow launcher • Has a workflow listening to node creations under /etc/social/groups/ 4. “Create Community Live Copy” Workflow • Creates a Live Copy from the master Community pages • Activates the pages (which is probably not what you would do) • Moves the workflow payload to the created parent page
  • 17. 17 PROVISIONING & AUTHORING 2 Resource Provisioning 6. “New Social Community Group” Workflow • Creates admin group • Adds original user to the admin group • Sets ACL to the content for the admin group New Community – deconstructing how it works: 5. Workflow launcher • Has a workflow listening to page creation that has a payload
  • 18. 18 PROVISIONING & AUTHORING 3 Author Scalability • Vertical • Horizontal
  • 19. 19 PROVISIONING & AUTHORING 3 Author Scalability Vertical Scalability • Setup an Author Dispatcher • Optimize Hardware • Increase CPU, RAM & Disk speed • Server load is affected by • Image rendering & digital asset processing • MSM Rollout • Workflows • Simple Editing Sufficient for at least 50 editors editing content concurrently. Approximation of # of logged-in users (of which only a fraction is editing concurrently!): $ grep access.log
  • 20. 20 PROVISIONING & AUTHORING 3 Author Scalability Horizontal Scalability Sharding 1: Split different sites (or parts of sites) into separate author instances. Publish instances are shared. A site 1 A site 2 A site 3 editing editing editing P P P replication
  • 21. 21 PROVISIONING & AUTHORING 3 Author Scalability Horizontal Scalability Sharding 2: Split different sites into separate author instances, but replicate to one main author, e.g. for shared workflow processes. A site 1 A site 2 A site 3 editing editing editing A replication P replication
  • 22. 22 PROVISIONING & AUTHORING Thank you! @GabrielWalt – Product Manager – Web Experience Management