SlideShare a Scribd company logo
Implementing Role Based Access
Control (RBAC) on OLSS Web
Application
Content:
o Introduction
o What is Access Control?
o What is ‘Role Based’?
• Level Based
• User Based
• Role Based
• Responsibility Based
o DSF requirement?
o ‘Design’ as Draft?
2
o Introduction
An 'access control' system is just another name for a 'security system' or a
'permissions' system.
In computer systems security, role-based access control (RBAC) is an approach to
restricting system access to authorized users. It is used by the majority of enterprises
with more than 500 employees,[3] and can implement mandatory access control (MAC)
or discretionary access control (DAC). RBAC is sometimes referred to as role-based
security.
Source: http://en.wikipedia.org/wiki/Role-based_access_control
3
o What is Access Control?
In a single-user application typically no need access control - the user has access to
every function within the application. However, in a multi-user application which is
deployed over numerous devices which are linked together in a network it is more
than likely that not all functionality will be available to all users.
In this situation a method is required whereby functions within the application can
only be accessed by persons to whom permission has been granted. This will typically
require the maintenance of the following details:
• A list of all the functions that are available within the system. These 'functions' are
sometimes referred to as 'transactions' or 'tasks'.
• A list of all the persons who are allowed to access the application as a whole.
These 'persons' are sometimes referred to as 'users'.
• A list of permissions which identifies which functions are accessible by which
users.
• Each of these lists is normally maintained as a table within a database.
4
o What is 'role based'?
There is more than one way to give different permissions to different users, but each
method has its own set of advantages and disadvantages. Here are some that can be
encountered:
• Level Based
• User Based
• Role Based
• Responsibility Based
5
• Level Based
This is a simple system as it only requires two database tables - USERS and TASKS - without any
relationship between them.
In this system each TASK is given a security level number in the range 1 to 99, with 1 being the
lowest level and 99 the highest. Each USER is then given a security level number and is allowed to
access only those TASKs which have a security level which is the same or lower. Thus a USER with
a security level of 5 can access a TASK which has a security level in the range 1-5.
The problem with this system is that it is totally cumulative - by raising the level number you can
add more tasks, and you can only remove tasks by reducing the level number. Groups of tasks
that share the same level number are either included or excluded as a group, there is no
possibility to mix'n'match. For example, take a simple setup with two users, 'A' and 'B', and two
tasks, 'A' and 'B'. Now try to give user 'A' access to task 'A' but not task 'B', and user 'B' access to
task 'B' but not task 'A'. You will find that it cannot be done:
• If both tasks have the same security level then access can be granted to both or neither.
• If one task has a lower security level than the other then access can be granted to the lower
level on its own, or to both levels. It is not possible to grant access to the higher level and
exclude tasks at a lower level.
Users Tasks
6
• User Based
In this system permissions are defined for individual users. This involves a many-to-
many relationship between USERS and TASKS with PERMISSIONS being the link or intersection
table. This disadvantage of this design is that where several users share the same permissions any
change to those permissions needs to be repeated for each user.
It seems several different implementations of this design:
• In a system with complex tasks - where a single tasks can operate in create, read, update and
delete mode - access to a task will include all of those modes.
• Where access to individual modes within a task is required then the PERMISSIONS record
needs to have a YES/NO switch against each one of those modes. This is often referred to as
a CRUD matrix (where 'CRUD' stands for Create, Read, Update and Delete) as the
arrangement of tasks rows and permission columns resembles a matrix.
Users Tasks
Permissions
7
• Groups Based
In this design the users are split into groups and permissions are assigned to the group, not the
individual user.
This design has the following advantages:
• Once the user has been identified the USER record will supply the USER-GROUP identity
which is all that is needed to access the PERMISSIONS table.
• Any change made to a group’s permissions will automatically be inherited by all members of
that group. Changes to a group's permissions can be made very easily as there is only one
table, the PERMISSIONS table, to maintain.
• If an individual user is switched to another group this will sever all connections to the
permissions of the previous role and replace them with those of the new role.
Users
Permissions
User-Groups
Tasks
8
• Responsibility Based - Simple
In this design it is possible for a user to belong to more than one group at the same time. This
involves two many-to-many relationships. The USER-GROUP table is sometimes referred to as
AREA-OF-RESPONSIBILITY because an individual user may have responsibilities in more than one
area.
This design has the following disadvantages:
• It is only possible to add permissions by linking a user to another user group. It is not possible
for the addition of another group to undo any permissions granted by an existing group.
• There are now two tables to maintain in order to give a user access to a task - the USER-
USER-GROUP table and the TASK-USER-GROUP table.
Users
Task-User-Group
User-Groups
Tasks
User-User-
Group
9
• Responsibility Based - Complex
A more complex version of this design is shown below:
Users
Task-User-Group
User-Groups
User-User-
Group
Task-User-Group
Tasks-Groups
User-Task
Tasks
Tasks-User-
Group
10
• Responsibility Based – Complex
(Cont.)
In this design there are now five many-to-many relationships which enables a far wider range of
customization. In this design the tasks were complex (a single task could operate in Create, Read,
Update and Delete mode) which meant that each of the link/intersection tables was a CRUD
matrix. As these tables were read in a strict sequence and the task permissions on one table
could be replaced by the task permissions on another table. It was therefore possible for a record
with a permission checked ON to be superseded by a record from another table with that
permission checked OFF.
Even though in theory this design appears to be much more flexible, in practice this created a
problem with usability. As permissions can exist on five tables, and the permission granted on
one table can be taken away by the contents of another table it becomes a more difficult process
to track down which user has access to which task.
11
o DSF Requirement?
Issue:
• Restrictive data management to avoid tampering.
Requirements:
• Control data updating based on user role, or prepare workflow mechanism for data
modification – approval.
• Need to consider scope and level of data update handling based on role (based on menu or
screen, based on function, based on data item, etc.).
Pro’s:
• To protect unhandled data modification (except authorized user who has proper privilege to
update data), or to prepare update checking mechanism by superior or supervisor. Some user
may have several roles concurrently.
Con’s:
• There is a possible to increase managers work load when system implements workflow
(approval) feature.
• There is concern about number of test cases increased explosively when considering
combination roles and workflow.
12
o Design as ‘Draft’?
Role-Task Field
Task-Field
Menu
Navigation
Button
User User-Role
Role-Task Role
Task Pattern
Subsystem
13
o Design as ‘Draft’? (Cont.)
Due to the modular design any changes in functionality can be made easily either by changing an
existing module or by adding in a new module.
• Implement group based security around the USER<==ROLE==>ROLE TASK<==TASK tables as
this gave sufficient flexibility with a simple set of options:
• Permissions for each Role and Task can be maintained on a single screen.
• A User's single Role can be maintained on the 'Update User' screen.
• At run-time permission can be verified with a single lookup on the ROLE-TASK table using a
ROLE_ID and a TASK_ID.
• Implement responsibility based security around the USER==>USER ROLE<==ROLE==>ROLE
TASK<==TASK tables as this provides the ability to link a User to more than one Role with only
a slight increase in complexity:
• Permissions for each Role and Task can continue to be maintained on a single screen.
• A User's list of Roles needs to be maintained on a separate USER-ROLE table. One of these
Roles must be marked as the primary Role for that User.
• At run-time permission can still be verified with a single lookup on the ROLE-TASK table, but
using a list of the User's ROLE_IDs (instead of just a single ID) and a TASK_ID.
14

More Related Content

What's hot

Seven step model of migration into the cloud
Seven step model of migration into the cloudSeven step model of migration into the cloud
Seven step model of migration into the cloud
Raj Raj
 
Transactions and Concurrency Control
Transactions and Concurrency ControlTransactions and Concurrency Control
Transactions and Concurrency Control
Dilum Bandara
 
distributed shared memory
 distributed shared memory distributed shared memory
distributed shared memory
Ashish Kumar
 
Collaborating Using Cloud Services
Collaborating Using Cloud ServicesCollaborating Using Cloud Services
Collaborating Using Cloud Services
Dr. Sunil Kr. Pandey
 
x.509-Directory Authentication Service
x.509-Directory Authentication Servicex.509-Directory Authentication Service
x.509-Directory Authentication Service
Swathy T
 
IaaS, SaaS, PasS : Cloud Computing
IaaS, SaaS, PasS : Cloud ComputingIaaS, SaaS, PasS : Cloud Computing
IaaS, SaaS, PasS : Cloud Computing
Software Park Thailand
 
Multimedia Database
Multimedia Database Multimedia Database
Multimedia Database
Avnish Patel
 
NIST Cloud Computing Reference Architecture
NIST Cloud Computing Reference ArchitectureNIST Cloud Computing Reference Architecture
NIST Cloud Computing Reference Architecture
Thanakrit Lersmethasakul
 
20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING
Kathirvel Ayyaswamy
 
Unit 4
Unit 4Unit 4
Active directory
Active directory Active directory
Active directory
deshvikas
 
Protection and security of operating system
Protection and security of operating systemProtection and security of operating system
Protection and security of operating system
Abdullah Khosa
 
End to-end arguments in system design
End to-end arguments in system designEnd to-end arguments in system design
End to-end arguments in system design
nody111
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systems
AbDul ThaYyal
 
Distributed System - Security
Distributed System - SecurityDistributed System - Security
Distributed System - Security
Harshana Madusanka Jayamaha
 
Chapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systemsChapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systems
AbDul ThaYyal
 
Cloud adoption and rudiments
Cloud  adoption and rudimentsCloud  adoption and rudiments
Cloud adoption and rudiments
gaurav jain
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
Research & Development LAB QUEST Nawabshah
 
Client server model
Client server modelClient server model
Client server model
Gd Goenka University
 
Overview of computing paradigm
Overview of computing paradigmOverview of computing paradigm
Overview of computing paradigm
Ripal Ranpara
 

What's hot (20)

Seven step model of migration into the cloud
Seven step model of migration into the cloudSeven step model of migration into the cloud
Seven step model of migration into the cloud
 
Transactions and Concurrency Control
Transactions and Concurrency ControlTransactions and Concurrency Control
Transactions and Concurrency Control
 
distributed shared memory
 distributed shared memory distributed shared memory
distributed shared memory
 
Collaborating Using Cloud Services
Collaborating Using Cloud ServicesCollaborating Using Cloud Services
Collaborating Using Cloud Services
 
x.509-Directory Authentication Service
x.509-Directory Authentication Servicex.509-Directory Authentication Service
x.509-Directory Authentication Service
 
IaaS, SaaS, PasS : Cloud Computing
IaaS, SaaS, PasS : Cloud ComputingIaaS, SaaS, PasS : Cloud Computing
IaaS, SaaS, PasS : Cloud Computing
 
Multimedia Database
Multimedia Database Multimedia Database
Multimedia Database
 
NIST Cloud Computing Reference Architecture
NIST Cloud Computing Reference ArchitectureNIST Cloud Computing Reference Architecture
NIST Cloud Computing Reference Architecture
 
20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING20CS2021 DISTRIBUTED COMPUTING
20CS2021 DISTRIBUTED COMPUTING
 
Unit 4
Unit 4Unit 4
Unit 4
 
Active directory
Active directory Active directory
Active directory
 
Protection and security of operating system
Protection and security of operating systemProtection and security of operating system
Protection and security of operating system
 
End to-end arguments in system design
End to-end arguments in system designEnd to-end arguments in system design
End to-end arguments in system design
 
Chapter 8 distributed file systems
Chapter 8 distributed file systemsChapter 8 distributed file systems
Chapter 8 distributed file systems
 
Distributed System - Security
Distributed System - SecurityDistributed System - Security
Distributed System - Security
 
Chapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systemsChapter 1 characterisation of distributed systems
Chapter 1 characterisation of distributed systems
 
Cloud adoption and rudiments
Cloud  adoption and rudimentsCloud  adoption and rudiments
Cloud adoption and rudiments
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Client server model
Client server modelClient server model
Client server model
 
Overview of computing paradigm
Overview of computing paradigmOverview of computing paradigm
Overview of computing paradigm
 

Viewers also liked

Role based access control - RBAC
Role based access control - RBACRole based access control - RBAC
Role based access control - RBAC
Ajit Dadresa
 
Discussion Paper: Bugs Tracking
Discussion Paper: Bugs TrackingDiscussion Paper: Bugs Tracking
Discussion Paper: Bugs Tracking
Deny Prasetia
 
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy ModelerRole Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
Prolifics
 
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPICFederated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
JohnSmithto
 
Role based access control
Role based access controlRole based access control
Role based access control
Peter Edwards
 
Role-Based Access Control
Role-Based Access ControlRole-Based Access Control
Role-Based Access Control
EmpowerID
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2
Jim Manico
 
Role Based Access Control - Overview
Role Based Access Control - OverviewRole Based Access Control - Overview
Role Based Access Control - Overview
Hitachi ID Systems, Inc.
 
Multi-domain and Privacy-aware Role Based Access Control in eHealth
Multi-domain and Privacy-aware Role Based Access Control in eHealthMulti-domain and Privacy-aware Role Based Access Control in eHealth
Multi-domain and Privacy-aware Role Based Access Control in eHealth
guest3dc8ca
 
Week3 lecture
Week3 lectureWeek3 lecture
Week3 lecture
Shaikha AlQaydi
 
Database management systems 3 - Data Modelling
Database management systems 3 - Data ModellingDatabase management systems 3 - Data Modelling
Database management systems 3 - Data Modelling
Nickkisha Farrell
 
Attribute based access control
Attribute based access controlAttribute based access control
Attribute based access control
Elimity
 
Attribute Based Access Control
Attribute Based Access ControlAttribute Based Access Control
Attribute Based Access Control
Chandra Sharma
 
Entity relationship modelling
Entity relationship modellingEntity relationship modelling
Entity relationship modelling
Dr. C.V. Suresh Babu
 
De Devoxx au CAC40
De Devoxx au CAC40De Devoxx au CAC40
De Devoxx au CAC40
Julien Dubois
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
King Julian
 
An overview of access control
An overview of access controlAn overview of access control
An overview of access control
Elimity
 
Introduction to Data Warehousing
Introduction to Data WarehousingIntroduction to Data Warehousing
Introduction to Data Warehousing
Jason S
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
Alexey Grishchenko
 

Viewers also liked (19)

Role based access control - RBAC
Role based access control - RBACRole based access control - RBAC
Role based access control - RBAC
 
Discussion Paper: Bugs Tracking
Discussion Paper: Bugs TrackingDiscussion Paper: Bugs Tracking
Discussion Paper: Bugs Tracking
 
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy ModelerRole Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
Role Discovery and RBAC Design: A Case Study with IBM Role and Policy Modeler
 
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPICFederated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
Federated RBAC: Fortress, OAuth2 (Oltu), JWT, Java EE, and JASPIC
 
Role based access control
Role based access controlRole based access control
Role based access control
 
Role-Based Access Control
Role-Based Access ControlRole-Based Access Control
Role-Based Access Control
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2
 
Role Based Access Control - Overview
Role Based Access Control - OverviewRole Based Access Control - Overview
Role Based Access Control - Overview
 
Multi-domain and Privacy-aware Role Based Access Control in eHealth
Multi-domain and Privacy-aware Role Based Access Control in eHealthMulti-domain and Privacy-aware Role Based Access Control in eHealth
Multi-domain and Privacy-aware Role Based Access Control in eHealth
 
Week3 lecture
Week3 lectureWeek3 lecture
Week3 lecture
 
Database management systems 3 - Data Modelling
Database management systems 3 - Data ModellingDatabase management systems 3 - Data Modelling
Database management systems 3 - Data Modelling
 
Attribute based access control
Attribute based access controlAttribute based access control
Attribute based access control
 
Attribute Based Access Control
Attribute Based Access ControlAttribute Based Access Control
Attribute Based Access Control
 
Entity relationship modelling
Entity relationship modellingEntity relationship modelling
Entity relationship modelling
 
De Devoxx au CAC40
De Devoxx au CAC40De Devoxx au CAC40
De Devoxx au CAC40
 
DATA WAREHOUSING
DATA WAREHOUSINGDATA WAREHOUSING
DATA WAREHOUSING
 
An overview of access control
An overview of access controlAn overview of access control
An overview of access control
 
Introduction to Data Warehousing
Introduction to Data WarehousingIntroduction to Data Warehousing
Introduction to Data Warehousing
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
 

Similar to Implementing role based access control on Web Application (sample case)

Week No 13 Access Control Part 1.pptx
Week No 13 Access Control Part 1.pptxWeek No 13 Access Control Part 1.pptx
Week No 13 Access Control Part 1.pptx
XhamiiiCH
 
oracle
oracleoracle
oracle
tarunamoria
 
ACCESS: A Technical Framework for Adaptive Accessibility Support
ACCESS:  A Technical Framework for Adaptive Accessibility SupportACCESS:  A Technical Framework for Adaptive Accessibility Support
ACCESS: A Technical Framework for Adaptive Accessibility Support
Michael Heron
 
Data base Access Control a look at Fine grain Access method
Data base Access Control a look at Fine grain Access methodData base Access Control a look at Fine grain Access method
Data base Access Control a look at Fine grain Access method
International Journal of Engineering Inventions www.ijeijournal.com
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
AjithaG9
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
InterSystems Corporation
 
Unit ii
Unit ii  Unit ii
Access Control Facilities in Oracle Database 11g r2
Access Control Facilities in Oracle Database 11g r2Access Control Facilities in Oracle Database 11g r2
Access Control Facilities in Oracle Database 11g r2
Amin Saqi
 
Security and Authorization
Security and AuthorizationSecurity and Authorization
Security and Authorization
Megha yadav
 
Lecture 9.pptx
Lecture 9.pptxLecture 9.pptx
Lecture 9.pptx
JiyaMalik33
 
PPT
PPTPPT
Secure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption TechniqueSecure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption Technique
Eswar Publications
 
Database security and security in networks
Database security and security in networksDatabase security and security in networks
Database security and security in networks
G Prachi
 
distributed system chapter one introduction to distribued system.pdf
distributed system chapter one introduction to distribued system.pdfdistributed system chapter one introduction to distribued system.pdf
distributed system chapter one introduction to distribued system.pdf
lematadese670
 
Hrm database-management-java-project
Hrm database-management-java-projectHrm database-management-java-project
Hrm database-management-java-project
chetanmbhimewal
 
Dynamics of Leading Legacy Databases
Dynamics of Leading Legacy DatabasesDynamics of Leading Legacy Databases
Dynamics of Leading Legacy Databases
Cognizant
 
dist_systems.pdf
dist_systems.pdfdist_systems.pdf
dist_systems.pdf
CherenetToma
 
TrackStudio Overview
TrackStudio OverviewTrackStudio Overview
TrackStudio Overview
Maxim Kramarenko
 
IMPORTANT QUESTIONS OF Data Base Management System MGU
IMPORTANT QUESTIONS OF Data Base Management System MGUIMPORTANT QUESTIONS OF Data Base Management System MGU
IMPORTANT QUESTIONS OF Data Base Management System MGU
aljufmuhammad
 
Advance database system (part 2)
Advance database system (part 2)Advance database system (part 2)
Advance database system (part 2)
Abdullah Khosa
 

Similar to Implementing role based access control on Web Application (sample case) (20)

Week No 13 Access Control Part 1.pptx
Week No 13 Access Control Part 1.pptxWeek No 13 Access Control Part 1.pptx
Week No 13 Access Control Part 1.pptx
 
oracle
oracleoracle
oracle
 
ACCESS: A Technical Framework for Adaptive Accessibility Support
ACCESS:  A Technical Framework for Adaptive Accessibility SupportACCESS:  A Technical Framework for Adaptive Accessibility Support
ACCESS: A Technical Framework for Adaptive Accessibility Support
 
Data base Access Control a look at Fine grain Access method
Data base Access Control a look at Fine grain Access methodData base Access Control a look at Fine grain Access method
Data base Access Control a look at Fine grain Access method
 
Distributed Operating System
Distributed Operating SystemDistributed Operating System
Distributed Operating System
 
Cache Security- The Basics
Cache Security- The BasicsCache Security- The Basics
Cache Security- The Basics
 
Unit ii
Unit ii  Unit ii
Unit ii
 
Access Control Facilities in Oracle Database 11g r2
Access Control Facilities in Oracle Database 11g r2Access Control Facilities in Oracle Database 11g r2
Access Control Facilities in Oracle Database 11g r2
 
Security and Authorization
Security and AuthorizationSecurity and Authorization
Security and Authorization
 
Lecture 9.pptx
Lecture 9.pptxLecture 9.pptx
Lecture 9.pptx
 
PPT
PPTPPT
PPT
 
Secure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption TechniqueSecure Authorised De-duplication using Convergent Encryption Technique
Secure Authorised De-duplication using Convergent Encryption Technique
 
Database security and security in networks
Database security and security in networksDatabase security and security in networks
Database security and security in networks
 
distributed system chapter one introduction to distribued system.pdf
distributed system chapter one introduction to distribued system.pdfdistributed system chapter one introduction to distribued system.pdf
distributed system chapter one introduction to distribued system.pdf
 
Hrm database-management-java-project
Hrm database-management-java-projectHrm database-management-java-project
Hrm database-management-java-project
 
Dynamics of Leading Legacy Databases
Dynamics of Leading Legacy DatabasesDynamics of Leading Legacy Databases
Dynamics of Leading Legacy Databases
 
dist_systems.pdf
dist_systems.pdfdist_systems.pdf
dist_systems.pdf
 
TrackStudio Overview
TrackStudio OverviewTrackStudio Overview
TrackStudio Overview
 
IMPORTANT QUESTIONS OF Data Base Management System MGU
IMPORTANT QUESTIONS OF Data Base Management System MGUIMPORTANT QUESTIONS OF Data Base Management System MGU
IMPORTANT QUESTIONS OF Data Base Management System MGU
 
Advance database system (part 2)
Advance database system (part 2)Advance database system (part 2)
Advance database system (part 2)
 

Recently uploaded

WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 

Recently uploaded (20)

WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 

Implementing role based access control on Web Application (sample case)

  • 1. Implementing Role Based Access Control (RBAC) on OLSS Web Application
  • 2. Content: o Introduction o What is Access Control? o What is ‘Role Based’? • Level Based • User Based • Role Based • Responsibility Based o DSF requirement? o ‘Design’ as Draft? 2
  • 3. o Introduction An 'access control' system is just another name for a 'security system' or a 'permissions' system. In computer systems security, role-based access control (RBAC) is an approach to restricting system access to authorized users. It is used by the majority of enterprises with more than 500 employees,[3] and can implement mandatory access control (MAC) or discretionary access control (DAC). RBAC is sometimes referred to as role-based security. Source: http://en.wikipedia.org/wiki/Role-based_access_control 3
  • 4. o What is Access Control? In a single-user application typically no need access control - the user has access to every function within the application. However, in a multi-user application which is deployed over numerous devices which are linked together in a network it is more than likely that not all functionality will be available to all users. In this situation a method is required whereby functions within the application can only be accessed by persons to whom permission has been granted. This will typically require the maintenance of the following details: • A list of all the functions that are available within the system. These 'functions' are sometimes referred to as 'transactions' or 'tasks'. • A list of all the persons who are allowed to access the application as a whole. These 'persons' are sometimes referred to as 'users'. • A list of permissions which identifies which functions are accessible by which users. • Each of these lists is normally maintained as a table within a database. 4
  • 5. o What is 'role based'? There is more than one way to give different permissions to different users, but each method has its own set of advantages and disadvantages. Here are some that can be encountered: • Level Based • User Based • Role Based • Responsibility Based 5
  • 6. • Level Based This is a simple system as it only requires two database tables - USERS and TASKS - without any relationship between them. In this system each TASK is given a security level number in the range 1 to 99, with 1 being the lowest level and 99 the highest. Each USER is then given a security level number and is allowed to access only those TASKs which have a security level which is the same or lower. Thus a USER with a security level of 5 can access a TASK which has a security level in the range 1-5. The problem with this system is that it is totally cumulative - by raising the level number you can add more tasks, and you can only remove tasks by reducing the level number. Groups of tasks that share the same level number are either included or excluded as a group, there is no possibility to mix'n'match. For example, take a simple setup with two users, 'A' and 'B', and two tasks, 'A' and 'B'. Now try to give user 'A' access to task 'A' but not task 'B', and user 'B' access to task 'B' but not task 'A'. You will find that it cannot be done: • If both tasks have the same security level then access can be granted to both or neither. • If one task has a lower security level than the other then access can be granted to the lower level on its own, or to both levels. It is not possible to grant access to the higher level and exclude tasks at a lower level. Users Tasks 6
  • 7. • User Based In this system permissions are defined for individual users. This involves a many-to- many relationship between USERS and TASKS with PERMISSIONS being the link or intersection table. This disadvantage of this design is that where several users share the same permissions any change to those permissions needs to be repeated for each user. It seems several different implementations of this design: • In a system with complex tasks - where a single tasks can operate in create, read, update and delete mode - access to a task will include all of those modes. • Where access to individual modes within a task is required then the PERMISSIONS record needs to have a YES/NO switch against each one of those modes. This is often referred to as a CRUD matrix (where 'CRUD' stands for Create, Read, Update and Delete) as the arrangement of tasks rows and permission columns resembles a matrix. Users Tasks Permissions 7
  • 8. • Groups Based In this design the users are split into groups and permissions are assigned to the group, not the individual user. This design has the following advantages: • Once the user has been identified the USER record will supply the USER-GROUP identity which is all that is needed to access the PERMISSIONS table. • Any change made to a group’s permissions will automatically be inherited by all members of that group. Changes to a group's permissions can be made very easily as there is only one table, the PERMISSIONS table, to maintain. • If an individual user is switched to another group this will sever all connections to the permissions of the previous role and replace them with those of the new role. Users Permissions User-Groups Tasks 8
  • 9. • Responsibility Based - Simple In this design it is possible for a user to belong to more than one group at the same time. This involves two many-to-many relationships. The USER-GROUP table is sometimes referred to as AREA-OF-RESPONSIBILITY because an individual user may have responsibilities in more than one area. This design has the following disadvantages: • It is only possible to add permissions by linking a user to another user group. It is not possible for the addition of another group to undo any permissions granted by an existing group. • There are now two tables to maintain in order to give a user access to a task - the USER- USER-GROUP table and the TASK-USER-GROUP table. Users Task-User-Group User-Groups Tasks User-User- Group 9
  • 10. • Responsibility Based - Complex A more complex version of this design is shown below: Users Task-User-Group User-Groups User-User- Group Task-User-Group Tasks-Groups User-Task Tasks Tasks-User- Group 10
  • 11. • Responsibility Based – Complex (Cont.) In this design there are now five many-to-many relationships which enables a far wider range of customization. In this design the tasks were complex (a single task could operate in Create, Read, Update and Delete mode) which meant that each of the link/intersection tables was a CRUD matrix. As these tables were read in a strict sequence and the task permissions on one table could be replaced by the task permissions on another table. It was therefore possible for a record with a permission checked ON to be superseded by a record from another table with that permission checked OFF. Even though in theory this design appears to be much more flexible, in practice this created a problem with usability. As permissions can exist on five tables, and the permission granted on one table can be taken away by the contents of another table it becomes a more difficult process to track down which user has access to which task. 11
  • 12. o DSF Requirement? Issue: • Restrictive data management to avoid tampering. Requirements: • Control data updating based on user role, or prepare workflow mechanism for data modification – approval. • Need to consider scope and level of data update handling based on role (based on menu or screen, based on function, based on data item, etc.). Pro’s: • To protect unhandled data modification (except authorized user who has proper privilege to update data), or to prepare update checking mechanism by superior or supervisor. Some user may have several roles concurrently. Con’s: • There is a possible to increase managers work load when system implements workflow (approval) feature. • There is concern about number of test cases increased explosively when considering combination roles and workflow. 12
  • 13. o Design as ‘Draft’? Role-Task Field Task-Field Menu Navigation Button User User-Role Role-Task Role Task Pattern Subsystem 13
  • 14. o Design as ‘Draft’? (Cont.) Due to the modular design any changes in functionality can be made easily either by changing an existing module or by adding in a new module. • Implement group based security around the USER<==ROLE==>ROLE TASK<==TASK tables as this gave sufficient flexibility with a simple set of options: • Permissions for each Role and Task can be maintained on a single screen. • A User's single Role can be maintained on the 'Update User' screen. • At run-time permission can be verified with a single lookup on the ROLE-TASK table using a ROLE_ID and a TASK_ID. • Implement responsibility based security around the USER==>USER ROLE<==ROLE==>ROLE TASK<==TASK tables as this provides the ability to link a User to more than one Role with only a slight increase in complexity: • Permissions for each Role and Task can continue to be maintained on a single screen. • A User's list of Roles needs to be maintained on a separate USER-ROLE table. One of these Roles must be marked as the primary Role for that User. • At run-time permission can still be verified with a single lookup on the ROLE-TASK table, but using a list of the User's ROLE_IDs (instead of just a single ID) and a TASK_ID. 14