SlideShare a Scribd company logo
1 of 35
Download to read offline
PERMISSIONS & SECURITY
IN PLONE
Kim Nguyen / kim@sixfeetup.com /
sixfeetup.com
ABOUT ME
➤ Director of Engineering @ Six Feet Up
➤ Have worked Python since 1997, Plone since 2003
➤ Developer → team lead → project manager
➤ 350+ Plone sites at University of Wisconsin Oshkosh,
including the campus Intranet
➤ Plone Foundation Board (2014-2019), Plone Conference
organizer (2016, 2017), Plone Symposium Midwest organizer
(2013, 2014)
DATA SECURITY
➤ “Making Headlines for All the Wrong Reasons”
➤ Security is hard
➤ Machine learning is now being used to find vulnerabilities
➤ New systems, new stacks… SHINY!
➤ New developers
PLONE
Secure, Flexible
Content Management In A Box
A HISTORY OF PLONE
➤ Open source, community-driven since 2001
➤ Python
➤ Zope
➤ Great security track record; no zero days ever
➤ Experienced security team
➤ Time tested, robust
➤ Trusted by governments and large organizations
“What makes Plone secure?
ZOPE
➤ Baked-in security at the data object level
➤ Hierarchical model
➤ ZODB, the Zope Object Database
➤ Fine-grained permission/role security model
➤ User - role - permission three layer security model
➤ Security declarations in ZCML for views, adapters
➤ RestrictedPython: a subset of Python that can run user-
entered programs safely
RESTRICTEDPYTHON
➤ Hardening is done at the Abstract Syntax Tree level
➤ When you try to add Python code or customize page
templates through the Management Interface:
➤ scripts and evaluations are compiled specially
➤ have limited Python functionality
➤ Zope’s AccessControl & zope.security check every function
call against the security manager
FIELD-LEVEL PERMISSIONS
➤ Dexterity content type
framework
➤ All fields default to the
same security settings as
their containing object
➤ But you can override them
PERMISSIONS AND ROLES
➤ Permissions control whether logged-in or anonymous
users can execute code and access content
➤ Roles are sets of permissions
➤ Users and groups can be assigned roles
➤ Plone: ~180 permissions, 10 roles
VIEWS
➤ Security applies to views too
➤ e.g.“Site Setup” control panels list
➤ Permission checks are done for:
➤ every view/method which is hit by incoming HTTP request
(Plone automatically publishes traversable methods);
➤ every called method for RestrictedPython scripts
USERS AND GROUPS
➤ Permissions and roles can be assigned to a single user
➤ But… for much better scaling, Plone makes it easy to assign
roles to groups
➤ Pluggable Authentication System lets you connect Plone to
central auth systems such as LDAP, OAuth, CAS
PLONE WORKFLOW
➤ A conceptually simple way to declare and enforce the security
on an object:
➤ States and transitions
➤ Permissions and roles affected per state
➤ Guards on each transition
SIMPLE PUBLICATION WORKFLOW
➤ (screenshot)
STATE PERMISSION/ROLE MAP
TRANSITION DETAILS
AUDIT TRAIL
➤ Every workflow state change, or transition, is tracked
automatically
OTHER PLONE WORKFLOWS
➤ Plone ships with several workflows
➤ You can create your own
PROTECTION FROM MALICIOUS CONTENT
PLONE.PROTECT
➤ Helps protect parts of Plone or applications build on top of Plone
➤ Restricting to HTTP POST
➤ Form authentication (Cross Site Request Forgery,“CSRF”)
➤ Automatic CSRF protection
➤ automatically including the auth token to all internal forms
when the user requesting the page is logged in
➤ checks for the existence of a correct auth token whenever a
request attempts to write to the ZODB
➤ Clickjacking protection
“What happens when someone
browses a Plone site?
A THOROUGH PAT-DOWN
➤ A comprehensive check of what the user is authorized to do on every
requested object, every contained object, every traversed view and method
➤ If the user is logged in, the check includes:
➤ the roles assigned to the user
➤ the groups the user is a member of
➤ the roles assigned to those groups
➤ the permissions assigned to all those roles
➤ the permissions that are required for viewing the object and fields
➤ the workflows that have been assigned to that object
➤ the object’s state in each assigned workflow
➤ the permission/role map for each state
A THOROUGH PAT-DOWN
➤ If the user is not logged in, it’s a bit faster
➤ If the user is an admin (Manager role) the permission check is
cut short, and is very fast
THE BEST WAY TO DESECURE PLONE
➤ Publish everything in your site
➤ Disable all HTML filtering
➤ Grant Manager role to every user
PLONE: SECURE BY DEFAULT
➤ Python ✅
➤ Zope ✅
➤ ZODB ✅
➤ Fine-grained permission/role maps ✅
➤ Users and groups simplify access management ✅
➤ Object and field-level permissions ✅
➤ Workflows encapsulate stateful security definitions ✅
“OK, but Plone is old
PLONE APIS
➤ plone.api
➤ First release 2012
➤ Plone strategic summit (Bristol, UK, 2014)
➤ plone.restapi
➤ First release 2016
PLONE 6
Volto: React-based Front End
THE DUALITY OF PLONE 6
➤ Rock-solid, time-tested content
management system
➤ And with a modern Volto frontend with
React’s wide adoption, large community,
and great tooling
➤ Is also a stable, logicful backend store for
web and mobile apps (aka headless CMS)
"Icon made by Pixel perfect from www.flaticon.com"
NEXT STEPS
➤ Learn more at plone.com, plone.org
➤ Get great training materials at training.plone.org
➤ Volto demo: volto.kitconcept.com, docs.voltocms.com,
training.plone.org/5/react
➤ Volto presentations to watch: 2018.ploneconf.org/talks/plone-
react, 2019.ploneconf.org/people/timo-stollenwerk,
2019.ploneconf.org/people/victor-fernandez-de-alba
➤ Join the forum community.plone.org, attend the annual
ploneconf.org
Planning Development Orchestration Support
QUESTIONS? PLEASE ASK!
KIM@SIXFEETUP.COM
SIXFEETUP.COM

More Related Content

Similar to Permissions & Security in Plone

PloneNG: What's new in Plone 4.2, 4.3, and beyond
PloneNG: What's new in Plone 4.2, 4.3, and beyondPloneNG: What's new in Plone 4.2, 4.3, and beyond
PloneNG: What's new in Plone 4.2, 4.3, and beyond
David Glick
 

Similar to Permissions & Security in Plone (20)

Contextual Tour of Plone - (a top open source web content management system)
Contextual   Tour of Plone - (a top open source web content management system)Contextual   Tour of Plone - (a top open source web content management system)
Contextual Tour of Plone - (a top open source web content management system)
 
PloneNG: What's new in Plone 4.2, 4.3, and beyond
PloneNG: What's new in Plone 4.2, 4.3, and beyondPloneNG: What's new in Plone 4.2, 4.3, and beyond
PloneNG: What's new in Plone 4.2, 4.3, and beyond
 
Breach > ATT&CK > Osquery: Cross-platform Endpoint Monitoring with Osquery
Breach > ATT&CK > Osquery: Cross-platform Endpoint Monitoring with OsqueryBreach > ATT&CK > Osquery: Cross-platform Endpoint Monitoring with Osquery
Breach > ATT&CK > Osquery: Cross-platform Endpoint Monitoring with Osquery
 
Real Application Security (RAS) and Oracle Application Express (APEX)
Real Application Security (RAS) and Oracle Application Express (APEX)Real Application Security (RAS) and Oracle Application Express (APEX)
Real Application Security (RAS) and Oracle Application Express (APEX)
 
2022 APIsecure_Exploiting multi-step business logic vulnerabilities in APIs
2022 APIsecure_Exploiting multi-step business logic vulnerabilities in APIs2022 APIsecure_Exploiting multi-step business logic vulnerabilities in APIs
2022 APIsecure_Exploiting multi-step business logic vulnerabilities in APIs
 
Don't Roll Your Own, Integrate
Don't Roll Your Own, IntegrateDon't Roll Your Own, Integrate
Don't Roll Your Own, Integrate
 
Requirements elicitation techniques
Requirements elicitation techniquesRequirements elicitation techniques
Requirements elicitation techniques
 
Christopher Guess presents Push
Christopher Guess presents PushChristopher Guess presents Push
Christopher Guess presents Push
 
Bringing "real life" relations to Plone
Bringing "real life" relations to PloneBringing "real life" relations to Plone
Bringing "real life" relations to Plone
 
Use Case Driven Development in Symfony
Use Case Driven Development in SymfonyUse Case Driven Development in Symfony
Use Case Driven Development in Symfony
 
Why TOMOYO Linux?
Why TOMOYO Linux?Why TOMOYO Linux?
Why TOMOYO Linux?
 
Reversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detectionReversing Engineering a Web Application - For fun, behavior and detection
Reversing Engineering a Web Application - For fun, behavior and detection
 
I Hunt Sys Admins
I Hunt Sys AdminsI Hunt Sys Admins
I Hunt Sys Admins
 
Seven steps to better security
Seven steps to better securitySeven steps to better security
Seven steps to better security
 
Alfresco DevCon 2018: Role Based Access Control with Apache Shiro
Alfresco DevCon 2018: Role Based Access Control with Apache ShiroAlfresco DevCon 2018: Role Based Access Control with Apache Shiro
Alfresco DevCon 2018: Role Based Access Control with Apache Shiro
 
Machine Data Is EVERYWHERE: Use It for Testing
Machine Data Is EVERYWHERE: Use It for TestingMachine Data Is EVERYWHERE: Use It for Testing
Machine Data Is EVERYWHERE: Use It for Testing
 
Building APIs with MVC 6 and OAuth
Building APIs with MVC 6 and OAuthBuilding APIs with MVC 6 and OAuth
Building APIs with MVC 6 and OAuth
 
PowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue KidPowerShell - Be A Cool Blue Kid
PowerShell - Be A Cool Blue Kid
 
WP-CLI: Unleash the power
WP-CLI: Unleash the powerWP-CLI: Unleash the power
WP-CLI: Unleash the power
 
OWASP Top 10 A4 – Insecure Direct Object Reference
OWASP Top 10 A4 – Insecure Direct Object ReferenceOWASP Top 10 A4 – Insecure Direct Object Reference
OWASP Top 10 A4 – Insecure Direct Object Reference
 

More from T. Kim Nguyen

More from T. Kim Nguyen (20)

Melding React with the Ultra Secure Plone Content Repository
Melding React with the Ultra Secure Plone Content RepositoryMelding React with the Ultra Secure Plone Content Repository
Melding React with the Ultra Secure Plone Content Repository
 
A Case Study: Measuring Productivity in Education
A Case Study: Measuring Productivity in EducationA Case Study: Measuring Productivity in Education
A Case Study: Measuring Productivity in Education
 
State of Plone 2017
State of Plone 2017State of Plone 2017
State of Plone 2017
 
Have Content Quality, Will Search Your Intranet, by Fulvio Casali
Have Content Quality, Will Search Your Intranet, by Fulvio CasaliHave Content Quality, Will Search Your Intranet, by Fulvio Casali
Have Content Quality, Will Search Your Intranet, by Fulvio Casali
 
I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...I broke what? Taking over maintenance on existing (well loved) projects, by B...
I broke what? Taking over maintenance on existing (well loved) projects, by B...
 
TU Dresden: A Large-Scale Plone Deployment Case Study, by Sebastian Gottfried
TU Dresden: A Large-Scale Plone Deployment Case Study, by Sebastian GottfriedTU Dresden: A Large-Scale Plone Deployment Case Study, by Sebastian Gottfried
TU Dresden: A Large-Scale Plone Deployment Case Study, by Sebastian Gottfried
 
TUD-Chat – a moderated chat add-on for Plone, by Sebastian Schietzold
TUD-Chat – a moderated chat add-on for Plone, by Sebastian SchietzoldTUD-Chat – a moderated chat add-on for Plone, by Sebastian Schietzold
TUD-Chat – a moderated chat add-on for Plone, by Sebastian Schietzold
 
Plone as a Conference Management System, by Adriana Ramírez V. and Gildardo ...
Plone as a Conference Management System, by Adriana Ramírez V. and Gildardo ...Plone as a Conference Management System, by Adriana Ramírez V. and Gildardo ...
Plone as a Conference Management System, by Adriana Ramírez V. and Gildardo ...
 
Our Castle's Strength
Our Castle's StrengthOur Castle's Strength
Our Castle's Strength
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
 
Trajectory: Integrating SQL Data into your Plone Site, Plone Conference 2016,...
Trajectory: Integrating SQL Data into your Plone Site, Plone Conference 2016,...Trajectory: Integrating SQL Data into your Plone Site, Plone Conference 2016,...
Trajectory: Integrating SQL Data into your Plone Site, Plone Conference 2016,...
 
Web Development with Vim by Johannes Raggam
Web Development with Vim by Johannes RaggamWeb Development with Vim by Johannes Raggam
Web Development with Vim by Johannes Raggam
 
PyCharm demo
PyCharm demoPyCharm demo
PyCharm demo
 
Gold in Rio
Gold in RioGold in Rio
Gold in Rio
 
Top 5 secrets of distributed teams / Christina McNeill & T. Kim Nguyen
Top 5 secrets of distributed teams / Christina McNeill & T. Kim NguyenTop 5 secrets of distributed teams / Christina McNeill & T. Kim Nguyen
Top 5 secrets of distributed teams / Christina McNeill & T. Kim Nguyen
 
Easy online business processes with Plone forms and workflow
Easy online business processes with Plone forms and workflowEasy online business processes with Plone forms and workflow
Easy online business processes with Plone forms and workflow
 
Plone for CMS review group at UW Oshkosh
Plone for CMS review group at UW OshkoshPlone for CMS review group at UW Oshkosh
Plone for CMS review group at UW Oshkosh
 
PloneEdu.org: New Opportunities, New Frontiers
PloneEdu.org: New Opportunities, New FrontiersPloneEdu.org: New Opportunities, New Frontiers
PloneEdu.org: New Opportunities, New Frontiers
 
Killer Workflow Apps! Get Rich Quick With an Intranet!
Killer Workflow Apps!  Get Rich Quick With an Intranet!Killer Workflow Apps!  Get Rich Quick With an Intranet!
Killer Workflow Apps! Get Rich Quick With an Intranet!
 
Building Workflow Applications Through the Web
Building Workflow Applications Through the WebBuilding Workflow Applications Through the Web
Building Workflow Applications Through the Web
 

Recently uploaded

VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Chandigarh Call girls 9053900678 Call girls in Chandigarh
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 

Recently uploaded (20)

Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
Yerawada ] Independent Escorts in Pune - Book 8005736733 Call Girls Available...
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service ☎️ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
📱Dehradun Call Girls Service 📱☎️ +91'905,3900,678 ☎️📱 Call Girls In Dehradun 📱
 

Permissions & Security in Plone

  • 1. PERMISSIONS & SECURITY IN PLONE Kim Nguyen / kim@sixfeetup.com / sixfeetup.com
  • 2. ABOUT ME ➤ Director of Engineering @ Six Feet Up ➤ Have worked Python since 1997, Plone since 2003 ➤ Developer → team lead → project manager ➤ 350+ Plone sites at University of Wisconsin Oshkosh, including the campus Intranet ➤ Plone Foundation Board (2014-2019), Plone Conference organizer (2016, 2017), Plone Symposium Midwest organizer (2013, 2014)
  • 3. DATA SECURITY ➤ “Making Headlines for All the Wrong Reasons” ➤ Security is hard ➤ Machine learning is now being used to find vulnerabilities ➤ New systems, new stacks… SHINY! ➤ New developers
  • 5. A HISTORY OF PLONE ➤ Open source, community-driven since 2001 ➤ Python ➤ Zope ➤ Great security track record; no zero days ever ➤ Experienced security team ➤ Time tested, robust ➤ Trusted by governments and large organizations
  • 7. ZOPE ➤ Baked-in security at the data object level ➤ Hierarchical model ➤ ZODB, the Zope Object Database ➤ Fine-grained permission/role security model ➤ User - role - permission three layer security model ➤ Security declarations in ZCML for views, adapters ➤ RestrictedPython: a subset of Python that can run user- entered programs safely
  • 8. RESTRICTEDPYTHON ➤ Hardening is done at the Abstract Syntax Tree level ➤ When you try to add Python code or customize page templates through the Management Interface: ➤ scripts and evaluations are compiled specially ➤ have limited Python functionality ➤ Zope’s AccessControl & zope.security check every function call against the security manager
  • 9. FIELD-LEVEL PERMISSIONS ➤ Dexterity content type framework ➤ All fields default to the same security settings as their containing object ➤ But you can override them
  • 10. PERMISSIONS AND ROLES ➤ Permissions control whether logged-in or anonymous users can execute code and access content ➤ Roles are sets of permissions ➤ Users and groups can be assigned roles ➤ Plone: ~180 permissions, 10 roles
  • 11. VIEWS ➤ Security applies to views too ➤ e.g.“Site Setup” control panels list ➤ Permission checks are done for: ➤ every view/method which is hit by incoming HTTP request (Plone automatically publishes traversable methods); ➤ every called method for RestrictedPython scripts
  • 12. USERS AND GROUPS ➤ Permissions and roles can be assigned to a single user ➤ But… for much better scaling, Plone makes it easy to assign roles to groups ➤ Pluggable Authentication System lets you connect Plone to central auth systems such as LDAP, OAuth, CAS
  • 13.
  • 14. PLONE WORKFLOW ➤ A conceptually simple way to declare and enforce the security on an object: ➤ States and transitions ➤ Permissions and roles affected per state ➤ Guards on each transition
  • 18. AUDIT TRAIL ➤ Every workflow state change, or transition, is tracked automatically
  • 19. OTHER PLONE WORKFLOWS ➤ Plone ships with several workflows ➤ You can create your own
  • 21. PLONE.PROTECT ➤ Helps protect parts of Plone or applications build on top of Plone ➤ Restricting to HTTP POST ➤ Form authentication (Cross Site Request Forgery,“CSRF”) ➤ Automatic CSRF protection ➤ automatically including the auth token to all internal forms when the user requesting the page is logged in ➤ checks for the existence of a correct auth token whenever a request attempts to write to the ZODB ➤ Clickjacking protection
  • 22. “What happens when someone browses a Plone site?
  • 23. A THOROUGH PAT-DOWN ➤ A comprehensive check of what the user is authorized to do on every requested object, every contained object, every traversed view and method ➤ If the user is logged in, the check includes: ➤ the roles assigned to the user ➤ the groups the user is a member of ➤ the roles assigned to those groups ➤ the permissions assigned to all those roles ➤ the permissions that are required for viewing the object and fields ➤ the workflows that have been assigned to that object ➤ the object’s state in each assigned workflow ➤ the permission/role map for each state
  • 24. A THOROUGH PAT-DOWN ➤ If the user is not logged in, it’s a bit faster ➤ If the user is an admin (Manager role) the permission check is cut short, and is very fast
  • 25. THE BEST WAY TO DESECURE PLONE ➤ Publish everything in your site ➤ Disable all HTML filtering ➤ Grant Manager role to every user
  • 26.
  • 27. PLONE: SECURE BY DEFAULT ➤ Python ✅ ➤ Zope ✅ ➤ ZODB ✅ ➤ Fine-grained permission/role maps ✅ ➤ Users and groups simplify access management ✅ ➤ Object and field-level permissions ✅ ➤ Workflows encapsulate stateful security definitions ✅
  • 28.
  • 30. PLONE APIS ➤ plone.api ➤ First release 2012 ➤ Plone strategic summit (Bristol, UK, 2014) ➤ plone.restapi ➤ First release 2016
  • 31.
  • 33. THE DUALITY OF PLONE 6 ➤ Rock-solid, time-tested content management system ➤ And with a modern Volto frontend with React’s wide adoption, large community, and great tooling ➤ Is also a stable, logicful backend store for web and mobile apps (aka headless CMS) "Icon made by Pixel perfect from www.flaticon.com"
  • 34. NEXT STEPS ➤ Learn more at plone.com, plone.org ➤ Get great training materials at training.plone.org ➤ Volto demo: volto.kitconcept.com, docs.voltocms.com, training.plone.org/5/react ➤ Volto presentations to watch: 2018.ploneconf.org/talks/plone- react, 2019.ploneconf.org/people/timo-stollenwerk, 2019.ploneconf.org/people/victor-fernandez-de-alba ➤ Join the forum community.plone.org, attend the annual ploneconf.org
  • 35. Planning Development Orchestration Support QUESTIONS? PLEASE ASK! KIM@SIXFEETUP.COM SIXFEETUP.COM