SlideShare a Scribd company logo
Users, groups, roles, ACLs and providers:
integrating Opencast with external systems
Stephen Marquard, Centre for Innovation in Learning and Teaching, UCT
stephen.marquard@uct.ac.za | twitter: stephenmarquard
||
 Who are you?
 Authentication: create a session.
 What authorizations do you have?
 List of roles
 What actions are visible to you in the Admin UI?
 ROLE_UI_ roles
 What events and series are visible to you?
 Index (Search, Admin UI, External API): ACL matching
 What CRUD actions can you take through REST endpoints?
 mh_security_org URL configuration, role / URL path / HTTP method matching
https://docs.opencast.org/develop/admin/configuration/security/
02/03/2017 2
Opencast authentication and authorization
||
 A username (belongs to an organization), method of authentication, set of
roles
 System users (admin, opencast_system_account) are configured in
etc/custom.properties, have plain-text passwords, and thus digest authentication
can be used (server-to-server, CA-to-server).
 All users are authenticated by Spring Security (etc/security/mh_default_org.xml)
 LTI is a type of authentication which does not involve a password: the Opencast
LTI producer trusts the credentials from the LTI Consumer (e.g. LMS)
02/03/2017 3
What is a user?
||
No authentication required:
Anonymous
Password-based:
Digest (plain-text password in custom.properties)
Database (hashed password in mh_user)
LDAP (password verified against external service)
Trust-based:
Web single-sign-on (CAS, Shibboleth)
LTI (OAuth)
02/03/2017 4
Common authentication types
||
1. The login handler (for example LtiLaunchAuthenticationHandler) provides some
roles related to the type of login. These are Spring Security roles
(GrantedAuthority). Examples
 ROLE_ANONYMOUS (no authentication)
 ROLE_ADMIN (system users)
 ROLE_OAUTH_USER (LTI)
2. The Opencast UserAndRoleDirectoryService enriches the user’s set of roles by
consulting the set of running UserProviders and RoleProviders.
02/03/2017 5
How do users get roles?
||
 A group has a title, description, a group role (ROLE_GROUP_TITLE),
a set of members, and a set of roles.
 If a user is a member of a group, the user is granted all of the roles defined for
the group.
02/03/2017 6
What is a group?
||
 User dialog
 External Roles tab (roles given to this user which are identified as external roles)
 Effective Roles tab (all the users roles: internal, group roles and external roles)
 Giving a user the group role makes the user a member of the group (and the
inverse)
 Group membership can be granted by an external RoleProvider (by giving the
user the group role)
 Fixed some cache invalidation issues
(changes to group membership show up immediately in the user’s details)
 UserAndRoleDirectoryService cache is configurable (MH-12034)
02/03/2017 7
User and group improvements (MH-12016 / Opencast 2.4)
||
 Goals:
 avoid saving user roles that aren’t under Opencast’s control.
 allow users to enter external roles in the Admin UI
 don’t present roles in the Admin UI which aren’t relevant in that context
 Concept of Role Types and Role Targets introduced
 Only internal roles are saved in the Opencast database
 You can enter a role name or partial role name in the Admin UI, and Opencast
will consult all the RoleProviders to find matching roles (e.g. for external LMS
roles)
 User roles can be added to ACLs for any valid user (ROLE_USER_ID)
02/03/2017 8
Role and ACL improvements (MH-12016 / Opencast 2.4)
|| 02/03/2017 9
||
Implements org.opencastproject.security.api.UserProvider (one of many)
String getName();
Iterator<User> getUsers();
User loadUser(String userName);
long countUsers();
String getOrganization();
Iterator<User> findUsers(String query, int offset, int limit);
void invalidate(String userName);
Provide information about the user and a set of roles.
Locate users matching a query.
Not necessary to return all users, or a count of all users.
02/03/2017 10
What can a User Provider do?
||
System providers:
 InMemoryUserAndRoleProvider (custom.properties admin user and digest user)
 JpaUserAndRoleProvider (mh_user / mh_user_role)
 JpaUserReferenceProvider (mh_user_ref / mh_user_ref_role)
External providers:
 LDAP User Provider
 Sakai User Provider
02/03/2017 11
User Provider examples
||
Implements org.opencastproject.security.api.RoleProvider (one of many).
Iterator<Role> getRoles();
List<Role> getRolesForUser(String userName);
String getOrganization();
Iterator<Role> findRoles(String query, int offset, int limit);
 Is the RoleProvider returning roles for all organizations, or a specific organization?
 List all the roles for this organization (optional)
 Get a list of roles for a user
 Get a list of roles that match a query
The list of roles available for selection in the Admin UI is the set of roles returned by findRoles() from all
providers. Not necessary to return all roles, or a count of all roles.
02/03/2017 12
What can a Role Provider do?
||
System role providers:
 InMemoryUserAndRoleProvider (ROLE_ADMIN, …)
 OrganizationRoleProvider (per-tenant admin role)
 UserIdRoleProvider (ROLE_USER_*)
 JpaGroupRoleProvider (ROLE_GROUP_*)
 JpaUserAndRoleProvider
 UIRolesRoleProvider (ROLE_UI_*)
 ExternalApiRoleProvider (ROLE_API_*)
Custom roles:
 CustomRoleProvider (MH-12056)
External role providers:
 Sakai User Provider (MH-10871)
02/03/2017 13
Role Provider Examples
||
Don’t have too many internal users, too many groups, or too many users in a
group!
 Performance issues with very large groups MH-12025
 Performance issues with a large number of internal users MH-12026
02/03/2017 14
Performance of the Admin UI
||
 Add a Groups tab on the Add/Edit User dialog (MH-12068)
 Improve usability of ACL Editor for Event and Series MH-12021
 Make things simpler for adopters who don’t have a User Provider:
 Persist LTI users (in mh_user_ref) MH-8955
 Add regexp validation of custom roles to the CustomRoleProvider MH-12056
 Optionally persist roles when they’re noticed by the LTI launch handler
(so they’re visible in the Admin UI)
02/03/2017 15
To Do

More Related Content

Viewers also liked

Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
Malte Lantin
 
Hotel Iskra
Hotel IskraHotel Iskra
Hotel Iskra
Hotel Iskra
 
El Campus Virtual de la UCM: organización y evolución
El Campus Virtual de la UCM: organización y evoluciónEl Campus Virtual de la UCM: organización y evolución
El Campus Virtual de la UCM: organización y evolución
Facultad de Informática UCM
 
Slaughter waste effluents and river catchment watershed contamination in Caga...
Slaughter waste effluents and river catchment watershed contamination in Caga...Slaughter waste effluents and river catchment watershed contamination in Caga...
Slaughter waste effluents and river catchment watershed contamination in Caga...
Angelo Mark Walag
 
Future of the Learning Management System and Sakai
Future of the Learning Management System and SakaiFuture of the Learning Management System and Sakai
Future of the Learning Management System and Sakai
Joshua
 
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQMHow Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
Shinpei Hayashi
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and Learning
Charles Severance
 
Sakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for SakaiSakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for Sakai
Charles Severance
 
Ecg well
Ecg wellEcg well
Ecg well
saadfaysal
 
Acls update
Acls  updateAcls  update
Acls update
Mashiul Alam
 
dislocstion in crystal
dislocstion in crystaldislocstion in crystal
dislocstion in crystal
Kavithayeni vijayakumar
 
DVS 04-2016 Artikel Prijswinnaars
DVS 04-2016 Artikel PrijswinnaarsDVS 04-2016 Artikel Prijswinnaars
DVS 04-2016 Artikel PrijswinnaarsJaap Kappert
 

Viewers also liked (12)

Pottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net CorePottnet MeetUp Essen - ASP.Net Core
Pottnet MeetUp Essen - ASP.Net Core
 
Hotel Iskra
Hotel IskraHotel Iskra
Hotel Iskra
 
El Campus Virtual de la UCM: organización y evolución
El Campus Virtual de la UCM: organización y evoluciónEl Campus Virtual de la UCM: organización y evolución
El Campus Virtual de la UCM: organización y evolución
 
Slaughter waste effluents and river catchment watershed contamination in Caga...
Slaughter waste effluents and river catchment watershed contamination in Caga...Slaughter waste effluents and river catchment watershed contamination in Caga...
Slaughter waste effluents and river catchment watershed contamination in Caga...
 
Future of the Learning Management System and Sakai
Future of the Learning Management System and SakaiFuture of the Learning Management System and Sakai
Future of the Learning Management System and Sakai
 
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQMHow Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
How Can You Improve Your As-is Models? Requirements Analysis Methods Meet GQM
 
Next Generation Teaching and Learning
Next Generation Teaching and LearningNext Generation Teaching and Learning
Next Generation Teaching and Learning
 
Sakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for SakaiSakai 10 and Beyond - Next Steps for Sakai
Sakai 10 and Beyond - Next Steps for Sakai
 
Ecg well
Ecg wellEcg well
Ecg well
 
Acls update
Acls  updateAcls  update
Acls update
 
dislocstion in crystal
dislocstion in crystaldislocstion in crystal
dislocstion in crystal
 
DVS 04-2016 Artikel Prijswinnaars
DVS 04-2016 Artikel PrijswinnaarsDVS 04-2016 Artikel Prijswinnaars
DVS 04-2016 Artikel Prijswinnaars
 

Similar to Opencast Valencia 2017: Users, groups, roles, ACLs and providers

Scheduler
SchedulerScheduler
Scheduler
Parvez Mahbub
 
RACF - The Basics (v1.2)
RACF - The Basics (v1.2)RACF - The Basics (v1.2)
RACF - The Basics (v1.2)
Rui Miguel Feio
 
Use Case approach
Use Case approachUse Case approach
Use Case approach
Sreeram Kishore Chavali
 
Authorisation Concept In SAP | http://sapdocs.info
Authorisation Concept In SAP | http://sapdocs.infoAuthorisation Concept In SAP | http://sapdocs.info
Authorisation Concept In SAP | http://sapdocs.info
sapdocs. info
 
Liferay architecture By Navin Agarwal
Liferay architecture By Navin AgarwalLiferay architecture By Navin Agarwal
Liferay architecture By Navin Agarwal
Navin Agarwal
 
ASO-1-Introduction of system administration.pdf
ASO-1-Introduction of system administration.pdfASO-1-Introduction of system administration.pdf
ASO-1-Introduction of system administration.pdf
Obaid49
 
Use-Case-Diagram.ppt
Use-Case-Diagram.pptUse-Case-Diagram.ppt
Use-Case-Diagram.ppt
FarHana74914
 
Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMS
YogeshIJTSRD
 
Jedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented conceptsJedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented concepts
Maryo Manjaruni
 
Building enterprise web applications with spring 3
Building enterprise web applications with spring 3Building enterprise web applications with spring 3
Building enterprise web applications with spring 3
Abdelmonaim Remani
 
17512 2017 winter model answer paper
17512 2017 winter model answer paper 17512 2017 winter model answer paper
17512 2017 winter model answer paper
Ankit Dubey
 
165373293 sap-security-q
165373293 sap-security-q165373293 sap-security-q
oop lecture 3
oop lecture 3oop lecture 3
oop lecture 3
Atif Khan
 
Resouce management system1
Resouce management system1Resouce management system1
Resouce management system1
Guni Sonow
 
KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
WO Community
 
Role based access control - RBAC
Role based access control - RBACRole based access control - RBAC
Role based access control - RBAC
Ajit Dadresa
 
How to write use cases
How to write use casesHow to write use cases
How to write use cases
Gloria Stoilova
 
20.1 creating functions_part_20.1
20.1 creating functions_part_20.120.1 creating functions_part_20.1
20.1 creating functions_part_20.1
Oracle HRMS Functional Consultant
 
Less07 Users
Less07 UsersLess07 Users
Less07 Users
vivaankumar
 
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Microsoft 365 Developer
 

Similar to Opencast Valencia 2017: Users, groups, roles, ACLs and providers (20)

Scheduler
SchedulerScheduler
Scheduler
 
RACF - The Basics (v1.2)
RACF - The Basics (v1.2)RACF - The Basics (v1.2)
RACF - The Basics (v1.2)
 
Use Case approach
Use Case approachUse Case approach
Use Case approach
 
Authorisation Concept In SAP | http://sapdocs.info
Authorisation Concept In SAP | http://sapdocs.infoAuthorisation Concept In SAP | http://sapdocs.info
Authorisation Concept In SAP | http://sapdocs.info
 
Liferay architecture By Navin Agarwal
Liferay architecture By Navin AgarwalLiferay architecture By Navin Agarwal
Liferay architecture By Navin Agarwal
 
ASO-1-Introduction of system administration.pdf
ASO-1-Introduction of system administration.pdfASO-1-Introduction of system administration.pdf
ASO-1-Introduction of system administration.pdf
 
Use-Case-Diagram.ppt
Use-Case-Diagram.pptUse-Case-Diagram.ppt
Use-Case-Diagram.ppt
 
Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMS
 
Jedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented conceptsJedi slides 2.1 object-oriented concepts
Jedi slides 2.1 object-oriented concepts
 
Building enterprise web applications with spring 3
Building enterprise web applications with spring 3Building enterprise web applications with spring 3
Building enterprise web applications with spring 3
 
17512 2017 winter model answer paper
17512 2017 winter model answer paper 17512 2017 winter model answer paper
17512 2017 winter model answer paper
 
165373293 sap-security-q
165373293 sap-security-q165373293 sap-security-q
165373293 sap-security-q
 
oop lecture 3
oop lecture 3oop lecture 3
oop lecture 3
 
Resouce management system1
Resouce management system1Resouce management system1
Resouce management system1
 
KAAccessControl
KAAccessControlKAAccessControl
KAAccessControl
 
Role based access control - RBAC
Role based access control - RBACRole based access control - RBAC
Role based access control - RBAC
 
How to write use cases
How to write use casesHow to write use cases
How to write use cases
 
20.1 creating functions_part_20.1
20.1 creating functions_part_20.120.1 creating functions_part_20.1
20.1 creating functions_part_20.1
 
Less07 Users
Less07 UsersLess07 Users
Less07 Users
 
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020Implement Authorization in your Apps with Microsoft identity platform-June 2020
Implement Authorization in your Apps with Microsoft identity platform-June 2020
 

More from Stephen Marquard

The implementation of an Opt-Out Lecture Recording Policy at the University o...
The implementation of an Opt-Out Lecture Recording Policy at the University o...The implementation of an Opt-Out Lecture Recording Policy at the University o...
The implementation of an Opt-Out Lecture Recording Policy at the University o...
Stephen Marquard
 
Orchestrating Self-Service Video Workflows with Opencast
Orchestrating Self-Service Video Workflows with OpencastOrchestrating Self-Service Video Workflows with Opencast
Orchestrating Self-Service Video Workflows with Opencast
Stephen Marquard
 
Smart workflows for Opencast
Smart workflows for OpencastSmart workflows for Opencast
Smart workflows for Opencast
Stephen Marquard
 
LectureSight is awesome and getting better! 
LectureSight is awesome and getting better! LectureSight is awesome and getting better! 
LectureSight is awesome and getting better! 
Stephen Marquard
 
Track4K in production at the University of Cape Town
Track4K in production at the University of Cape TownTrack4K in production at the University of Cape Town
Track4K in production at the University of Cape Town
Stephen Marquard
 
LectureSight in Action (Opencast Community Summit 2016)
LectureSight in Action (Opencast Community Summit 2016)LectureSight in Action (Opencast Community Summit 2016)
LectureSight in Action (Opencast Community Summit 2016)
Stephen Marquard
 
Opencast Project Update at Open Apereo 2015
Opencast Project Update at Open Apereo 2015Opencast Project Update at Open Apereo 2015
Opencast Project Update at Open Apereo 2015
Stephen Marquard
 
Why do students use lecture recordings?
Why do students use lecture recordings?Why do students use lecture recordings?
Why do students use lecture recordings?
Stephen Marquard
 
Introduction to Opencast Matterhorn: Apereo 2014
Introduction to Opencast Matterhorn: Apereo 2014Introduction to Opencast Matterhorn: Apereo 2014
Introduction to Opencast Matterhorn: Apereo 2014
Stephen Marquard
 
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
Stephen Marquard
 
Matterhorn 2014 Unconference: Ideas for automated post-recording video handling
Matterhorn 2014 Unconference: Ideas for automated post-recording video handlingMatterhorn 2014 Unconference: Ideas for automated post-recording video handling
Matterhorn 2014 Unconference: Ideas for automated post-recording video handling
Stephen Marquard
 
Opencast Matterhorn at UCT
Opencast Matterhorn at UCTOpencast Matterhorn at UCT
Opencast Matterhorn at UCT
Stephen Marquard
 
Open Text: Speech recognition in Opencast Matterhorn
Open Text: Speech recognition in Opencast MatterhornOpen Text: Speech recognition in Opencast Matterhorn
Open Text: Speech recognition in Opencast Matterhorn
Stephen Marquard
 
Wreck a nice beach: adventures in speech recognition
Wreck a nice beach: adventures in speech recognitionWreck a nice beach: adventures in speech recognition
Wreck a nice beach: adventures in speech recognition
Stephen Marquard
 
Advancing Online Assessment in Medical Education
Advancing Online Assessment in Medical EducationAdvancing Online Assessment in Medical Education
Advancing Online Assessment in Medical Education
Stephen Marquard
 
SMS, Q&A and Course Evaluations in Sakai
SMS, Q&A and Course Evaluations in SakaiSMS, Q&A and Course Evaluations in Sakai
SMS, Q&A and Course Evaluations in Sakai
Stephen Marquard
 
SMS, Q&A, Course Evaluation tools in Sakai
SMS, Q&A, Course Evaluation tools in SakaiSMS, Q&A, Course Evaluation tools in Sakai
SMS, Q&A, Course Evaluation tools in Sakai
Stephen Marquard
 
Sakai E Learning Update Sep09
Sakai E Learning Update Sep09Sakai E Learning Update Sep09
Sakai E Learning Update Sep09
Stephen Marquard
 
Vula is my survival kit
Vula is my survival kitVula is my survival kit
Vula is my survival kit
Stephen Marquard
 

More from Stephen Marquard (19)

The implementation of an Opt-Out Lecture Recording Policy at the University o...
The implementation of an Opt-Out Lecture Recording Policy at the University o...The implementation of an Opt-Out Lecture Recording Policy at the University o...
The implementation of an Opt-Out Lecture Recording Policy at the University o...
 
Orchestrating Self-Service Video Workflows with Opencast
Orchestrating Self-Service Video Workflows with OpencastOrchestrating Self-Service Video Workflows with Opencast
Orchestrating Self-Service Video Workflows with Opencast
 
Smart workflows for Opencast
Smart workflows for OpencastSmart workflows for Opencast
Smart workflows for Opencast
 
LectureSight is awesome and getting better! 
LectureSight is awesome and getting better! LectureSight is awesome and getting better! 
LectureSight is awesome and getting better! 
 
Track4K in production at the University of Cape Town
Track4K in production at the University of Cape TownTrack4K in production at the University of Cape Town
Track4K in production at the University of Cape Town
 
LectureSight in Action (Opencast Community Summit 2016)
LectureSight in Action (Opencast Community Summit 2016)LectureSight in Action (Opencast Community Summit 2016)
LectureSight in Action (Opencast Community Summit 2016)
 
Opencast Project Update at Open Apereo 2015
Opencast Project Update at Open Apereo 2015Opencast Project Update at Open Apereo 2015
Opencast Project Update at Open Apereo 2015
 
Why do students use lecture recordings?
Why do students use lecture recordings?Why do students use lecture recordings?
Why do students use lecture recordings?
 
Introduction to Opencast Matterhorn: Apereo 2014
Introduction to Opencast Matterhorn: Apereo 2014Introduction to Opencast Matterhorn: Apereo 2014
Introduction to Opencast Matterhorn: Apereo 2014
 
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
Introduction to Opencast Matterhorn, Apereo Mexico Conference, May 2014
 
Matterhorn 2014 Unconference: Ideas for automated post-recording video handling
Matterhorn 2014 Unconference: Ideas for automated post-recording video handlingMatterhorn 2014 Unconference: Ideas for automated post-recording video handling
Matterhorn 2014 Unconference: Ideas for automated post-recording video handling
 
Opencast Matterhorn at UCT
Opencast Matterhorn at UCTOpencast Matterhorn at UCT
Opencast Matterhorn at UCT
 
Open Text: Speech recognition in Opencast Matterhorn
Open Text: Speech recognition in Opencast MatterhornOpen Text: Speech recognition in Opencast Matterhorn
Open Text: Speech recognition in Opencast Matterhorn
 
Wreck a nice beach: adventures in speech recognition
Wreck a nice beach: adventures in speech recognitionWreck a nice beach: adventures in speech recognition
Wreck a nice beach: adventures in speech recognition
 
Advancing Online Assessment in Medical Education
Advancing Online Assessment in Medical EducationAdvancing Online Assessment in Medical Education
Advancing Online Assessment in Medical Education
 
SMS, Q&A and Course Evaluations in Sakai
SMS, Q&A and Course Evaluations in SakaiSMS, Q&A and Course Evaluations in Sakai
SMS, Q&A and Course Evaluations in Sakai
 
SMS, Q&A, Course Evaluation tools in Sakai
SMS, Q&A, Course Evaluation tools in SakaiSMS, Q&A, Course Evaluation tools in Sakai
SMS, Q&A, Course Evaluation tools in Sakai
 
Sakai E Learning Update Sep09
Sakai E Learning Update Sep09Sakai E Learning Update Sep09
Sakai E Learning Update Sep09
 
Vula is my survival kit
Vula is my survival kitVula is my survival kit
Vula is my survival kit
 

Recently uploaded

Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
simonomuemu
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
Scholarhat
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 

Recently uploaded (20)

Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
Smart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICTSmart-Money for SMC traders good time and ICT
Smart-Money for SMC traders good time and ICT
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
Azure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHatAzure Interview Questions and Answers PDF By ScholarHat
Azure Interview Questions and Answers PDF By ScholarHat
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 

Opencast Valencia 2017: Users, groups, roles, ACLs and providers

  • 1. Users, groups, roles, ACLs and providers: integrating Opencast with external systems Stephen Marquard, Centre for Innovation in Learning and Teaching, UCT stephen.marquard@uct.ac.za | twitter: stephenmarquard
  • 2. ||  Who are you?  Authentication: create a session.  What authorizations do you have?  List of roles  What actions are visible to you in the Admin UI?  ROLE_UI_ roles  What events and series are visible to you?  Index (Search, Admin UI, External API): ACL matching  What CRUD actions can you take through REST endpoints?  mh_security_org URL configuration, role / URL path / HTTP method matching https://docs.opencast.org/develop/admin/configuration/security/ 02/03/2017 2 Opencast authentication and authorization
  • 3. ||  A username (belongs to an organization), method of authentication, set of roles  System users (admin, opencast_system_account) are configured in etc/custom.properties, have plain-text passwords, and thus digest authentication can be used (server-to-server, CA-to-server).  All users are authenticated by Spring Security (etc/security/mh_default_org.xml)  LTI is a type of authentication which does not involve a password: the Opencast LTI producer trusts the credentials from the LTI Consumer (e.g. LMS) 02/03/2017 3 What is a user?
  • 4. || No authentication required: Anonymous Password-based: Digest (plain-text password in custom.properties) Database (hashed password in mh_user) LDAP (password verified against external service) Trust-based: Web single-sign-on (CAS, Shibboleth) LTI (OAuth) 02/03/2017 4 Common authentication types
  • 5. || 1. The login handler (for example LtiLaunchAuthenticationHandler) provides some roles related to the type of login. These are Spring Security roles (GrantedAuthority). Examples  ROLE_ANONYMOUS (no authentication)  ROLE_ADMIN (system users)  ROLE_OAUTH_USER (LTI) 2. The Opencast UserAndRoleDirectoryService enriches the user’s set of roles by consulting the set of running UserProviders and RoleProviders. 02/03/2017 5 How do users get roles?
  • 6. ||  A group has a title, description, a group role (ROLE_GROUP_TITLE), a set of members, and a set of roles.  If a user is a member of a group, the user is granted all of the roles defined for the group. 02/03/2017 6 What is a group?
  • 7. ||  User dialog  External Roles tab (roles given to this user which are identified as external roles)  Effective Roles tab (all the users roles: internal, group roles and external roles)  Giving a user the group role makes the user a member of the group (and the inverse)  Group membership can be granted by an external RoleProvider (by giving the user the group role)  Fixed some cache invalidation issues (changes to group membership show up immediately in the user’s details)  UserAndRoleDirectoryService cache is configurable (MH-12034) 02/03/2017 7 User and group improvements (MH-12016 / Opencast 2.4)
  • 8. ||  Goals:  avoid saving user roles that aren’t under Opencast’s control.  allow users to enter external roles in the Admin UI  don’t present roles in the Admin UI which aren’t relevant in that context  Concept of Role Types and Role Targets introduced  Only internal roles are saved in the Opencast database  You can enter a role name or partial role name in the Admin UI, and Opencast will consult all the RoleProviders to find matching roles (e.g. for external LMS roles)  User roles can be added to ACLs for any valid user (ROLE_USER_ID) 02/03/2017 8 Role and ACL improvements (MH-12016 / Opencast 2.4)
  • 10. || Implements org.opencastproject.security.api.UserProvider (one of many) String getName(); Iterator<User> getUsers(); User loadUser(String userName); long countUsers(); String getOrganization(); Iterator<User> findUsers(String query, int offset, int limit); void invalidate(String userName); Provide information about the user and a set of roles. Locate users matching a query. Not necessary to return all users, or a count of all users. 02/03/2017 10 What can a User Provider do?
  • 11. || System providers:  InMemoryUserAndRoleProvider (custom.properties admin user and digest user)  JpaUserAndRoleProvider (mh_user / mh_user_role)  JpaUserReferenceProvider (mh_user_ref / mh_user_ref_role) External providers:  LDAP User Provider  Sakai User Provider 02/03/2017 11 User Provider examples
  • 12. || Implements org.opencastproject.security.api.RoleProvider (one of many). Iterator<Role> getRoles(); List<Role> getRolesForUser(String userName); String getOrganization(); Iterator<Role> findRoles(String query, int offset, int limit);  Is the RoleProvider returning roles for all organizations, or a specific organization?  List all the roles for this organization (optional)  Get a list of roles for a user  Get a list of roles that match a query The list of roles available for selection in the Admin UI is the set of roles returned by findRoles() from all providers. Not necessary to return all roles, or a count of all roles. 02/03/2017 12 What can a Role Provider do?
  • 13. || System role providers:  InMemoryUserAndRoleProvider (ROLE_ADMIN, …)  OrganizationRoleProvider (per-tenant admin role)  UserIdRoleProvider (ROLE_USER_*)  JpaGroupRoleProvider (ROLE_GROUP_*)  JpaUserAndRoleProvider  UIRolesRoleProvider (ROLE_UI_*)  ExternalApiRoleProvider (ROLE_API_*) Custom roles:  CustomRoleProvider (MH-12056) External role providers:  Sakai User Provider (MH-10871) 02/03/2017 13 Role Provider Examples
  • 14. || Don’t have too many internal users, too many groups, or too many users in a group!  Performance issues with very large groups MH-12025  Performance issues with a large number of internal users MH-12026 02/03/2017 14 Performance of the Admin UI
  • 15. ||  Add a Groups tab on the Add/Edit User dialog (MH-12068)  Improve usability of ACL Editor for Event and Series MH-12021  Make things simpler for adopters who don’t have a User Provider:  Persist LTI users (in mh_user_ref) MH-8955  Add regexp validation of custom roles to the CustomRoleProvider MH-12056  Optionally persist roles when they’re noticed by the LTI launch handler (so they’re visible in the Admin UI) 02/03/2017 15 To Do