SlideShare a Scribd company logo
1 of 23
1
PERMISSION-SENSITIVE CACHING
SOLUTIONS FOR CLOSED USER GROUPS
Content Management Entitlements in CQ 5
2
INTRODUCTIONS
Paul McMahon – Vice President and Adobe Practice Lead at Acquity Group an
Accenture Interactive Company
Over 10 years of experience with CQ
Jon Ito – Senior Application Architect at Acquity Group an Accenture Interactive
Company
Over 5 years of experience with CQ
Acquity Group is a leading Brand eCommerce® and digital marketing company,
now part of Accenture Interactive. Acquity Group leverages the Internet, mobile
devices and social media to enhance its clients' brands and eCommerce
performance. It is the digital agency of record for a number of well-known global
brands in multiple industries. Acquity Group has served more than 600 companies
and their global brands through thirteen offices in North America.
3
AGENDA
Outline
• What are Closed User Groups
• How to configure standard CUG implementation with the Dispatcher Session
Management feature
• Challenges with session management approach
• What is Permission Sensitive Caching (PSC)
• Implement PSC Servlet
• Configure Dispatcher
• Best Practices
• Questions
4
WHAT ARE CLOSED USER GROUPS
And why would you need permission sensitive caching
What are closed user groups (CUGs)
Mechanism to allow authors to manage access to secured
content
Allows securing of content with having to manage normal JCR
permission structures
What is Permission Sensitive Caching
Mechanism allow Dispatcher to selectively return cached
secured content based on permissions
Leverages a servlet on the publish server to determine if a
user should have access to any piece of secured content.
5
CLOSED USER GROUPS (CUG)
What is Closed User Groups (CUG) in CQ 5?
CUG is used to limit access to specific pages that reside within a published site
• Requires assigned Users to login and provide credentials for access
• Native Functionality in CQ
• Provides “White List” type of administration at a group Level
• Managed at the page level
• Configurable Properties:
– Login Page
– Realm
– Allowed Groups
• Inherited by child pages
• LinkChecker
– Redirect Pages
6
SET UP CLOSED USER GROUPS
Configure Groups and Users
Create a Group for your CUG
No need to assign any permissions to the group
Assign users to the group
Activate any users assigned to the group
Activate the group
• Important Note – group membership is stored on the group nodes,
so the order of activation is important. If the users are not already
active when you activate the group the membership will not be
present. Once a user is active all group membership changes are
activated by replicating the group, not the member
7
SET UP CLOSED USER GROUPS
Apply the CUG to Pages
Create a location in your site to hold security content
Easiest solution is to select a single location to hold all secure
content, however you can have multiple locations
Create content within the secured location
Open the page properties of the secured location and enable
CUG for this location:
• Select the Advanced Tab
• Select the login page (in the case the Geomettrix Login
Page)
• Select a group or groups that permitted to view the content
Activate the page(s) and view on the publish site (4503)
8
SET UP CLOSED USER GROUPS
Integrating to Dispatcher
In the standard implementation Dispatcher’s session management feature is utilized
to allow the secured content to be cached:
• You could choose to not cache your secured content either by setting no cache
headers or by exempting it in dispatcher.any, however this is not a common choice.
• One key point about session management is that it applies at the farm level and when
enabled it assumes that all requests to the farm must be authenticated.
• Any request to the farm that isn’t authenticated is NOT RETURNED FROM CACHE.
9
SET UP CLOSED USER GROUPS
Dispatcher Session Management Configuration
Steps to configure Dispatcher session management:
If you site contains both secure and non-secure content you must add a second
farm to you dispatcher configurations, one for the secure content and one for
the non-secure content.
The non-secure farm must deny the path to secure content in the filter section,
and the secure farm must deny all and only allow the secure content path.
The secure farm should add the session management element at the farm level
• /sessionmanagement
• {
• /directory "/apps/apache/httpd/Apache22/.sessions"
• /header "Cookie:login-token"
• }
The header value is based on the cookie used by the out of the box form
authentication handler – if your authentication mechanism uses a different
cookie or header that value must be specified.
10
CHALLENGES
What doesn’t work
Dispatcher’s session management works well enough in the in an implementation with a simple
set of requirements. Key points where begins to encounter issues are:
Multiple Sets of secure content with different groups allowed to view content
• In this scenario each different set of secure content requires its own dispatcher farm and each group
must use a different authentication header
• Session management does not distinguish between authenticated users – either a user is
authenticated or not
• Just adding another farm doesn’t solve the problem – if the same authentication header is used for all
users then both farms will recognize each other’s authenticated users. You must implement a custom
authentication system that sets additional cookies – different cookie names for each CUG
• This approach doesn’t scale beyond a few sets of authenticated content. Any complexity in your
group or content structure will make this approach difficult to implement
11
PERMISSION SENSITIVE CACHING (PSC)
What is Permission Sensitive Caching
What is permission sensitive caching
Permission-sensitive caching enables you to cache secured pages. Dispatcher
checks users' access permissions for a page before delivering the cached page.
• Dispatcher includes the AuthChecker module that implements permission-sensitive
caching.
• When the module is activated, the Dispatcher calls an AEM servlet to perform user
authorization check for the requested content. The servlet response determines whether
the content is delivered to the web browser
12
PERMISSION-SENSITIVE CACHING (PSC)
(continued)
What is Permission-Sensitive Caching (PSC)? (cont.)
Request Flows:
• User Requests a Cached Page, User Authorized
• User Requests a non-cached Page, User Authorized
• Users Request a non-cached page, user not Authorized
13
PERMISSION-SENSITIVE CACHING (PSC)
(continued)
What is Permission-Sensitive Caching (PSC)? (cont.)
Request Flows:
• User Requests a cached Page, User Not Authorized
• User Requests a non-cached Page, User Not Logged
14
IMPLEMENTING PSC
Create the Authorization Servlet
PSC Supports a variety of authentication and authorization methods, however for a
CUG implementation certain assumptions can be made:
Authentication will be through standard CQ/Sling authentication
Authorization will be based CUGs
Login Redirect must be managed using the Error/State Handler (500, 400, 300,
etc.) at Application level.
15
IMPLEMENTING PSC
Create the Authorization Servlet
Override the doHead method:
Check if the user has read rights to the requested path using the Resource
Resolver:
• Respects ACL
• Respects CUG
If the user does have read rights return 200
If the user does not have read rights check to see if they are logged in
• If the user is not logged return 401 code which will cause Dispatcher to send the request
back to the publish server and the normal CUG functionality will handle redirecting to
the login page.
• For the logged in user return a 403 and allow application to handle the error display. In
the case of a CUG implementation
16
IMPLEMENTING PSC
Create the Authorization Servlet
Create and Deploy a Authorization Servlet
The servlet should extend the SlingSafeMethods class to ensure it is generally
available.
Only the doHead method needs to be overridden but the servlet will only receive
head requests.
17
IMPLEMENTING PSC
Create the Authorization Servlet
Create and Deploy a Authorization Servlet
The HTTP status code determine how dispatcher will treat the request:
• 200 indicates that the user is authenticated and can view the content. If the content is
available in cache dispatcher returns it, if not dispatcher sends the request back to the
publish instance.
• 403 indicates that the user does not have access to the content
18
IMPLEMENTING PSC
Create the Authorization Servlet
Create and Deploy a Authorization Servlet
Make the servlet available at the path of your choosing – for example
/bin/permissioncheck – the path is configured in dispatcher.
Dispatcher includes the URL being checked in the uri request parameter when it
calls the servlet – for example
/bin/permissioncheck?uri=“/content/site/secured.html
Add the auth_check section to dispatcher.any as child of the farm element:
• Include the url element set to the path of your deployed servlet.
• Use the filter section to control which requests are subject to the check this decision is
somewhat of a balancing act between giving authors flexibility to add more secured
content over time and performance impact of making the author check call.
19
IMPLEMENTING PSC
Create the Authorization Servlet
20
BEST PRACTICES
Configuration and Component Development Considerations
Taxonomy Considerations:
If your project’s requirements keep all secured content in one branch of your
site tree.
• This enables you to reduce number of requests that will require a call to the PSC servlet
and the overhead associated with the call.
• Keep in mind however that the point of a CUG implementation to enable authors to
control which content is subject to security. Configuring too narrow a PSC scope will
result frustrated authors.
Create non-protected redirect pages for the secured content. There are two
reasons to take this approach:
• Links directly to the protected content will be suppressed by the Link Checker for an
unauthenticated user at runtime, so if you want to be able to display a link on your
public pages to the secure content you will need to use redirect pages.
• Links directly to protected content can cause inconsistent results for unsecure pages. If
a unsecure page is flushed from cache, and an authenticated user is the first user to
view it then that page would be cached with valid links to the secure content. This can
result in a situation where sometimes a link might be displayed and other times not.
21
BEST PRACTICES
Configuration and Component Development Considerations
Component Development Considerations
Navigation and Listing Components
• Remember that authenticated users will be browsing the site and content may be
cached that was generated for an authenticated user (even though the content is not
secured.
• This raise the possibility of inconsistent behavior in non-secured pages if your navigation
and listing components don’t filter out secure content on non-secure pages.
• Consider coding your navigation and listing components that are not specific to the
secured content to ignore any content subject to CUG security.
Personalized Components
• For components that should be personalized – displaying different navigation to
authenticated users vs. non-authenticated users consider combining an AJAX
approach with the PSC servlet/CUG to allow caching of group/realm specific content in
a secure manner.
22
Questions
Q&A
23
Paul McMahon – Adobe Platform Architect – Acquity Group
paul.mcmahon@acquitygroup.com
Jon Ito – Senior Application Architect – Acuity Group
jon.ito@acquitygroup.com
Closed User Groups:
http://dev.day.com/docs/en/cq/current/howto/create_apply_cug.html
Permission Sensitive Caching:
http://dev.day.com/docs/en/cq/current/deploying/dispatcher/permissions_cach
e.html
SUMMARY
Documentation/Resources

More Related Content

What's hot

AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...Edureka!
 
Adobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingAdobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingCarsten Ziegeler
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson AEM HUB
 
Elastic search adaptto2014
Elastic search adaptto2014Elastic search adaptto2014
Elastic search adaptto2014Vivek Sachdeva
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAshokkumar T A
 
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWSKRUG - AWS한국사용자모임
 
Mastering the Sling Rewriter
Mastering the Sling RewriterMastering the Sling Rewriter
Mastering the Sling RewriterJustin Edelson
 
Curry functions in Javascript
Curry functions in JavascriptCurry functions in Javascript
Curry functions in JavascriptAnand Kumar
 
What is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaWhat is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaEdureka!
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
AWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLIAWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLIAmazon Web Services
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Hyun-Mook Choi
 
Vault - Secret and Key Management
Vault - Secret and Key ManagementVault - Secret and Key Management
Vault - Secret and Key ManagementAnthony Ikeda
 
Attribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAttribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAdam Elsodaney
 
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017AWSKRUG - AWS한국사용자모임
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding RESTNitin Pande
 
Understanding Sling Models in AEM
Understanding Sling Models in AEMUnderstanding Sling Models in AEM
Understanding Sling Models in AEMAccunity Software
 
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018Amazon Web Services Korea
 

What's hot (20)

AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
AWS IAM Tutorial | Identity And Access Management (IAM) | AWS Training Videos...
 
Adobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job ProcessingAdobe AEM - From Eventing to Job Processing
Adobe AEM - From Eventing to Job Processing
 
Sling models by Justin Edelson
Sling models by Justin Edelson Sling models by Justin Edelson
Sling models by Justin Edelson
 
Elastic search adaptto2014
Elastic search adaptto2014Elastic search adaptto2014
Elastic search adaptto2014
 
Osgi
OsgiOsgi
Osgi
 
Aem dispatcher – tips & tricks
Aem dispatcher – tips & tricksAem dispatcher – tips & tricks
Aem dispatcher – tips & tricks
 
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
 
Mastering the Sling Rewriter
Mastering the Sling RewriterMastering the Sling Rewriter
Mastering the Sling Rewriter
 
Curry functions in Javascript
Curry functions in JavascriptCurry functions in Javascript
Curry functions in Javascript
 
What is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaWhat is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | Edureka
 
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
ECS to EKS 마이그레이션 경험기 - 유용환(Superb AI) :: AWS Community Day Online 2021
 
AWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLIAWS Power Tools: Advanced AWS CloudFormation and CLI
AWS Power Tools: Advanced AWS CloudFormation and CLI
 
Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
 
Vault - Secret and Key Management
Vault - Secret and Key ManagementVault - Secret and Key Management
Vault - Secret and Key Management
 
REST API
REST APIREST API
REST API
 
Attribute-Based Access Control in Symfony
Attribute-Based Access Control in SymfonyAttribute-Based Access Control in Symfony
Attribute-Based Access Control in Symfony
 
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017
Amazon Cognito와 함께 서버리스를..! - 이재일 (강남비기너모임) :: AWS Community Day 2017
 
Understanding REST
Understanding RESTUnderstanding REST
Understanding REST
 
Understanding Sling Models in AEM
Understanding Sling Models in AEMUnderstanding Sling Models in AEM
Understanding Sling Models in AEM
 
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018
AWS 클라우드 네트워크 서비스 알아보기::서지혜::AWS Summit Seoul 2018
 

Viewers also liked

Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oomday
 

Viewers also liked (9)

EVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy FieldingEVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy Fielding
 
Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oom
 
EVOLVE'15 | Keynote | Gordon Pike | The Thing Constant Is Change
EVOLVE'15 | Keynote | Gordon Pike | The Thing Constant Is ChangeEVOLVE'15 | Keynote | Gordon Pike | The Thing Constant Is Change
EVOLVE'15 | Keynote | Gordon Pike | The Thing Constant Is Change
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM TechnologyEVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
EVOLVE'16 | Deploy | Abhishek Dwevedi | Overview of the Core AEM Technology
 
EVOLVE'14 | Keynote | Sal Visca | How APIs are Revolutionizing Commerce in th...
EVOLVE'14 | Keynote | Sal Visca | How APIs are Revolutionizing Commerce in th...EVOLVE'14 | Keynote | Sal Visca | How APIs are Revolutionizing Commerce in th...
EVOLVE'14 | Keynote | Sal Visca | How APIs are Revolutionizing Commerce in th...
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM DeploymentEVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
EVOLVE'16 | Deploy | Abhishek Dwevedi | Understanding a Typical AEM Deployment
 
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Assets
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM AssetsEVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Assets
EVOLVE'16 | Deploy | Abhishek Dwevedi | Introduction to AEM Assets
 
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
EVOLVE'16 | Maximize | Thanesh Sadachcharan | AEM 6.2 - What is in it for you?
 
EVOLVE'16 | Enhance | Anil Kalbag & Anshul Chhabra | Comparative Architecture...
EVOLVE'16 | Enhance | Anil Kalbag & Anshul Chhabra | Comparative Architecture...EVOLVE'16 | Enhance | Anil Kalbag & Anshul Chhabra | Comparative Architecture...
EVOLVE'16 | Enhance | Anil Kalbag & Anshul Chhabra | Comparative Architecture...
 

Similar to EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rapasky

SAP hybris - User Account Management
SAP hybris - User Account ManagementSAP hybris - User Account Management
SAP hybris - User Account ManagementZhuo Huang
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best PracticesAmazon Web Services
 
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...VMworld
 
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
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...Jitendra Bafna
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Mary Joy Sabal
 
Introduction to IAM + Best Practices
Introduction to IAM + Best PracticesIntroduction to IAM + Best Practices
Introduction to IAM + Best PracticesAmazon Web Services
 
Security for cloud native workloads
Security for cloud native workloadsSecurity for cloud native workloads
Security for cloud native workloadsRuncy Oommen
 
CQ Provisionning & Authoring
CQ Provisionning & AuthoringCQ Provisionning & Authoring
CQ Provisionning & AuthoringGabriel Walt
 
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...Rohit Radhakrishnan
 
Architecting for Success: Designing Secure GCP Landing Zone for Enterprises
Architecting for Success: Designing Secure GCP Landing Zone for EnterprisesArchitecting for Success: Designing Secure GCP Landing Zone for Enterprises
Architecting for Success: Designing Secure GCP Landing Zone for EnterprisesBhuvaneswari Subramani
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationAcquia
 
Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentryBrock Noland
 
Microsoft DevOps AZ-400 Real Dumps 2023
Microsoft DevOps AZ-400 Real Dumps 2023Microsoft DevOps AZ-400 Real Dumps 2023
Microsoft DevOps AZ-400 Real Dumps 2023VictoriaMeisel
 

Similar to EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rapasky (20)

apex security demo.ppsx
apex security demo.ppsxapex security demo.ppsx
apex security demo.ppsx
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
 
SAP hybris - User Account Management
SAP hybris - User Account ManagementSAP hybris - User Account Management
SAP hybris - User Account Management
 
IAM Introduction and Best Practices
IAM Introduction and Best PracticesIAM Introduction and Best Practices
IAM Introduction and Best Practices
 
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
VMworld Europe 2014: What’s New in End User Computing: Full Desktop Automatio...
 
IAM Best Practices
IAM Best PracticesIAM Best Practices
IAM Best Practices
 
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
 
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
MuleSoft Surat Virtual Meetup#15 - Caching Scope, Caching Strategy and Jenkin...
 
Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18Wellington MuleSoft Meetup 2021-02-18
Wellington MuleSoft Meetup 2021-02-18
 
IAM Best Practices
IAM Best PracticesIAM Best Practices
IAM Best Practices
 
Introduction to IAM + Best Practices
Introduction to IAM + Best PracticesIntroduction to IAM + Best Practices
Introduction to IAM + Best Practices
 
Security for cloud native workloads
Security for cloud native workloadsSecurity for cloud native workloads
Security for cloud native workloads
 
CQ Provisionning & Authoring
CQ Provisionning & AuthoringCQ Provisionning & Authoring
CQ Provisionning & Authoring
 
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...
Automation Cloud Series - Mastering the Automation Cloud Admin experience_Ses...
 
Em13c New Features- Two of Two
Em13c New Features- Two of TwoEm13c New Features- Two of Two
Em13c New Features- Two of Two
 
Architecting for Success: Designing Secure GCP Landing Zone for Enterprises
Architecting for Success: Designing Secure GCP Landing Zone for EnterprisesArchitecting for Success: Designing Secure GCP Landing Zone for Enterprises
Architecting for Success: Designing Secure GCP Landing Zone for Enterprises
 
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS MigrationOut With the Old, in With the Open-source: Brainshark's Complete CMS Migration
Out With the Old, in With the Open-source: Brainshark's Complete CMS Migration
 
Hive contributors meetup apache sentry
Hive contributors meetup   apache sentryHive contributors meetup   apache sentry
Hive contributors meetup apache sentry
 
Microsoft DevOps AZ-400 Real Dumps 2023
Microsoft DevOps AZ-400 Real Dumps 2023Microsoft DevOps AZ-400 Real Dumps 2023
Microsoft DevOps AZ-400 Real Dumps 2023
 

More from Evolve The Adobe Digital Marketing Community

More from Evolve The Adobe Digital Marketing Community (20)

Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
 
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
Evolve 19 | Upen Manickam & Amanda Gray | Adventures in SPA with AEM 6.5
 
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to AvoidEvolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
Evolve 19 | Ameeth Palla | Adobe Asset Link - Use Cases and Pitfalls to Avoid
 
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
Evolve 19 | Giancarlo Berner | JECIS 2 - The Beginning of a New Era in Buildi...
 
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
Evolve 19 | Paul Legan & Kristin Jones | Anatomy of a Solid AEM Implementatio...
 
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM ProjectsEvolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
Evolve 19 | Rabiah Coon & Rebecca Blaha | Rockstar Kickoffs for AEM Projects
 
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and TrendsEvolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
Evolve19 | Nick Panagopoulos | World Focus: Translation Tips and Trends
 
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
Evolve 19 | Rabiah Coon, Sabrina Schmidt & Noah Linge | Industry Focus | Furn...
 
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
Evolve 19 | Carl Madaffari | Best Practices | From Customer Data to Customer ...
 
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
Evolve 19 | Kevin Campton & Sharat Radhakrishnan | Industry Focus | Autodesk ...
 
Evolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
Evolve 19 | Gina Petruccelli | Let’s Dig Into RequirementsEvolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
Evolve 19 | Gina Petruccelli | Let’s Dig Into Requirements
 
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
Evolve 19 | Dave Fox | Retaining Niche Talent in a Highly Competitive Environ...
 
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
Evolve 19 | Paul Legan | Going Beyond Metadata: Extracting Meaningful Informa...
 
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe SenseiEvolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
Evolve19 | Giancarlo Berner & Brett Butterfield | AI & Adobe Sensei
 
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
Evolve 19 | Gordon Pike | Prepping for Tomorrow - Creating a Flexible AEM Arc...
 
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft AzureEvolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
Evolve 19 | Jayan Kandathil | Running AEM Workloads on Microsoft Azure
 
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver EverywhereEvolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
Evolve 19 | Amol Anand & Daniel Gordon | Author in AEM Once - Deliver Everywhere
 
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
Evolve 19 | Benjie Wheeler | Intro to Adobe Experience Manager 6.5
 
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
Evolve 19 | Bruce Swann | Adobe Campaign - Capabilities, Roadmap, and Fit wit...
 
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go LiveEvolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
Evolve 19 | Pete Hoback & Francisco Fagalde | AEM QA, UAT, & Go Live
 

Recently uploaded

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Recently uploaded (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

EVOLVE'13 | Enhance | Permission Sensitive Caching | Paul McMahon & Jason Rapasky

  • 1. 1 PERMISSION-SENSITIVE CACHING SOLUTIONS FOR CLOSED USER GROUPS Content Management Entitlements in CQ 5
  • 2. 2 INTRODUCTIONS Paul McMahon – Vice President and Adobe Practice Lead at Acquity Group an Accenture Interactive Company Over 10 years of experience with CQ Jon Ito – Senior Application Architect at Acquity Group an Accenture Interactive Company Over 5 years of experience with CQ Acquity Group is a leading Brand eCommerce® and digital marketing company, now part of Accenture Interactive. Acquity Group leverages the Internet, mobile devices and social media to enhance its clients' brands and eCommerce performance. It is the digital agency of record for a number of well-known global brands in multiple industries. Acquity Group has served more than 600 companies and their global brands through thirteen offices in North America.
  • 3. 3 AGENDA Outline • What are Closed User Groups • How to configure standard CUG implementation with the Dispatcher Session Management feature • Challenges with session management approach • What is Permission Sensitive Caching (PSC) • Implement PSC Servlet • Configure Dispatcher • Best Practices • Questions
  • 4. 4 WHAT ARE CLOSED USER GROUPS And why would you need permission sensitive caching What are closed user groups (CUGs) Mechanism to allow authors to manage access to secured content Allows securing of content with having to manage normal JCR permission structures What is Permission Sensitive Caching Mechanism allow Dispatcher to selectively return cached secured content based on permissions Leverages a servlet on the publish server to determine if a user should have access to any piece of secured content.
  • 5. 5 CLOSED USER GROUPS (CUG) What is Closed User Groups (CUG) in CQ 5? CUG is used to limit access to specific pages that reside within a published site • Requires assigned Users to login and provide credentials for access • Native Functionality in CQ • Provides “White List” type of administration at a group Level • Managed at the page level • Configurable Properties: – Login Page – Realm – Allowed Groups • Inherited by child pages • LinkChecker – Redirect Pages
  • 6. 6 SET UP CLOSED USER GROUPS Configure Groups and Users Create a Group for your CUG No need to assign any permissions to the group Assign users to the group Activate any users assigned to the group Activate the group • Important Note – group membership is stored on the group nodes, so the order of activation is important. If the users are not already active when you activate the group the membership will not be present. Once a user is active all group membership changes are activated by replicating the group, not the member
  • 7. 7 SET UP CLOSED USER GROUPS Apply the CUG to Pages Create a location in your site to hold security content Easiest solution is to select a single location to hold all secure content, however you can have multiple locations Create content within the secured location Open the page properties of the secured location and enable CUG for this location: • Select the Advanced Tab • Select the login page (in the case the Geomettrix Login Page) • Select a group or groups that permitted to view the content Activate the page(s) and view on the publish site (4503)
  • 8. 8 SET UP CLOSED USER GROUPS Integrating to Dispatcher In the standard implementation Dispatcher’s session management feature is utilized to allow the secured content to be cached: • You could choose to not cache your secured content either by setting no cache headers or by exempting it in dispatcher.any, however this is not a common choice. • One key point about session management is that it applies at the farm level and when enabled it assumes that all requests to the farm must be authenticated. • Any request to the farm that isn’t authenticated is NOT RETURNED FROM CACHE.
  • 9. 9 SET UP CLOSED USER GROUPS Dispatcher Session Management Configuration Steps to configure Dispatcher session management: If you site contains both secure and non-secure content you must add a second farm to you dispatcher configurations, one for the secure content and one for the non-secure content. The non-secure farm must deny the path to secure content in the filter section, and the secure farm must deny all and only allow the secure content path. The secure farm should add the session management element at the farm level • /sessionmanagement • { • /directory "/apps/apache/httpd/Apache22/.sessions" • /header "Cookie:login-token" • } The header value is based on the cookie used by the out of the box form authentication handler – if your authentication mechanism uses a different cookie or header that value must be specified.
  • 10. 10 CHALLENGES What doesn’t work Dispatcher’s session management works well enough in the in an implementation with a simple set of requirements. Key points where begins to encounter issues are: Multiple Sets of secure content with different groups allowed to view content • In this scenario each different set of secure content requires its own dispatcher farm and each group must use a different authentication header • Session management does not distinguish between authenticated users – either a user is authenticated or not • Just adding another farm doesn’t solve the problem – if the same authentication header is used for all users then both farms will recognize each other’s authenticated users. You must implement a custom authentication system that sets additional cookies – different cookie names for each CUG • This approach doesn’t scale beyond a few sets of authenticated content. Any complexity in your group or content structure will make this approach difficult to implement
  • 11. 11 PERMISSION SENSITIVE CACHING (PSC) What is Permission Sensitive Caching What is permission sensitive caching Permission-sensitive caching enables you to cache secured pages. Dispatcher checks users' access permissions for a page before delivering the cached page. • Dispatcher includes the AuthChecker module that implements permission-sensitive caching. • When the module is activated, the Dispatcher calls an AEM servlet to perform user authorization check for the requested content. The servlet response determines whether the content is delivered to the web browser
  • 12. 12 PERMISSION-SENSITIVE CACHING (PSC) (continued) What is Permission-Sensitive Caching (PSC)? (cont.) Request Flows: • User Requests a Cached Page, User Authorized • User Requests a non-cached Page, User Authorized • Users Request a non-cached page, user not Authorized
  • 13. 13 PERMISSION-SENSITIVE CACHING (PSC) (continued) What is Permission-Sensitive Caching (PSC)? (cont.) Request Flows: • User Requests a cached Page, User Not Authorized • User Requests a non-cached Page, User Not Logged
  • 14. 14 IMPLEMENTING PSC Create the Authorization Servlet PSC Supports a variety of authentication and authorization methods, however for a CUG implementation certain assumptions can be made: Authentication will be through standard CQ/Sling authentication Authorization will be based CUGs Login Redirect must be managed using the Error/State Handler (500, 400, 300, etc.) at Application level.
  • 15. 15 IMPLEMENTING PSC Create the Authorization Servlet Override the doHead method: Check if the user has read rights to the requested path using the Resource Resolver: • Respects ACL • Respects CUG If the user does have read rights return 200 If the user does not have read rights check to see if they are logged in • If the user is not logged return 401 code which will cause Dispatcher to send the request back to the publish server and the normal CUG functionality will handle redirecting to the login page. • For the logged in user return a 403 and allow application to handle the error display. In the case of a CUG implementation
  • 16. 16 IMPLEMENTING PSC Create the Authorization Servlet Create and Deploy a Authorization Servlet The servlet should extend the SlingSafeMethods class to ensure it is generally available. Only the doHead method needs to be overridden but the servlet will only receive head requests.
  • 17. 17 IMPLEMENTING PSC Create the Authorization Servlet Create and Deploy a Authorization Servlet The HTTP status code determine how dispatcher will treat the request: • 200 indicates that the user is authenticated and can view the content. If the content is available in cache dispatcher returns it, if not dispatcher sends the request back to the publish instance. • 403 indicates that the user does not have access to the content
  • 18. 18 IMPLEMENTING PSC Create the Authorization Servlet Create and Deploy a Authorization Servlet Make the servlet available at the path of your choosing – for example /bin/permissioncheck – the path is configured in dispatcher. Dispatcher includes the URL being checked in the uri request parameter when it calls the servlet – for example /bin/permissioncheck?uri=“/content/site/secured.html Add the auth_check section to dispatcher.any as child of the farm element: • Include the url element set to the path of your deployed servlet. • Use the filter section to control which requests are subject to the check this decision is somewhat of a balancing act between giving authors flexibility to add more secured content over time and performance impact of making the author check call.
  • 19. 19 IMPLEMENTING PSC Create the Authorization Servlet
  • 20. 20 BEST PRACTICES Configuration and Component Development Considerations Taxonomy Considerations: If your project’s requirements keep all secured content in one branch of your site tree. • This enables you to reduce number of requests that will require a call to the PSC servlet and the overhead associated with the call. • Keep in mind however that the point of a CUG implementation to enable authors to control which content is subject to security. Configuring too narrow a PSC scope will result frustrated authors. Create non-protected redirect pages for the secured content. There are two reasons to take this approach: • Links directly to the protected content will be suppressed by the Link Checker for an unauthenticated user at runtime, so if you want to be able to display a link on your public pages to the secure content you will need to use redirect pages. • Links directly to protected content can cause inconsistent results for unsecure pages. If a unsecure page is flushed from cache, and an authenticated user is the first user to view it then that page would be cached with valid links to the secure content. This can result in a situation where sometimes a link might be displayed and other times not.
  • 21. 21 BEST PRACTICES Configuration and Component Development Considerations Component Development Considerations Navigation and Listing Components • Remember that authenticated users will be browsing the site and content may be cached that was generated for an authenticated user (even though the content is not secured. • This raise the possibility of inconsistent behavior in non-secured pages if your navigation and listing components don’t filter out secure content on non-secure pages. • Consider coding your navigation and listing components that are not specific to the secured content to ignore any content subject to CUG security. Personalized Components • For components that should be personalized – displaying different navigation to authenticated users vs. non-authenticated users consider combining an AJAX approach with the PSC servlet/CUG to allow caching of group/realm specific content in a secure manner.
  • 23. 23 Paul McMahon – Adobe Platform Architect – Acquity Group paul.mcmahon@acquitygroup.com Jon Ito – Senior Application Architect – Acuity Group jon.ito@acquitygroup.com Closed User Groups: http://dev.day.com/docs/en/cq/current/howto/create_apply_cug.html Permission Sensitive Caching: http://dev.day.com/docs/en/cq/current/deploying/dispatcher/permissions_cach e.html SUMMARY Documentation/Resources