SlideShare a Scribd company logo
Access Control
Models: Controlling
Resource
Authorization
Access Control Models:
Controlling Resource
Authorization
Mark Niebergall
@mbniebergall
About Mark Niebergall
â–Ș PHP since 2005
â–Ș MS degree in MIS
â–Ș Senior Software Engineer
â–Ș UPHPU President
â–Ș SSCP, CSSLP Certified and SME
â–Ș Drones, fishing, skiing, father,
husband
Overview
Overview
Access request flow
Define applicable terminology
Cover primary Access Control Models
Discuss pros and cons of each model
Access Request
Flow
Request Resource
Access
Authorize Request
Authenticate
Subject
Request Resource
Access
Authorize Request
Authenticate
Subject
Authentication
Authentication
Know Own Are
Authentication
You are who you say you are
Verify identity
Subject
Subject
Also known as requestor
Human or non-person entity (NPE)
Subject
Making request to access resource
Request Resource
Access
Authorize Request
Authenticate
Subject
Request Resource
Access
Authorize Request
Authenticate
Subject
Resource
Resource
Also known as object
Protected from unauthorized use
Resource
Something the system has or does
â–Ș Data
â–Ș Functionality
â–Ș Hardware
Request Resource
Access
Authorize Request
Authenticate
Subject
Request Resource
Access
Authorize Request
Authenticate
Subject
Authorization
Authorization
Allow an authenticated subject
access to a resource
Authorization
Allow or deny
Subject action on object (CRUD)
Request Resource
Access
Authorize Request
Authenticate
Subject
Request Resource
Access
Authorize Request
Authenticate
Subject
Access Control Model
Definitions
Questions?
Authentication
Authorization
Subject
Resource
Access Control
Model
Access Control Model
Dictates who gets to do what
Access Control Model
Framework for making authorization
decisions
Access Control Model
Deciding subject access to
resources
Access Control Model
#4 on 2017 OWASP Top 10: Broken
Access Control
Access Control Model
Primary Access Control Models
â–Ș DAC: Discretionary
â–Ș MAC: Mandatory
â–Ș RBAC: Role Based
â–Ș ABAC: Attribute Based
1
Discretionary (DAC)
DAC
House keys
Email
DAC
DAC
Files on system
DAC
Clans in gaming
DAC
Subject Resource
DAC
Object owner grants permission
based on subject identity
Access Control List (ACL)
Deny by default
DAC
Subject Resource Authorization
Alice Report Allow
Alice Finance Deny
Alice Customer Allow
Bob Report Allow
Bob Finance Deny
Bob Customer Deny
DAC
SELECT is_allow
FROM acl
WHERE subject = ‘Alice’
AND resource = ‘Customer’
LIMIT 1;
DAC
$acl = new Acl;
$alice = new User(‘Alice’);
$bob = new User(‘Bob’);
$customer = new Resource(‘Customer’);
$acl->allow($alice, $customer);
$acl->deny($bob, $customer);
$acl->isAllowed($alice, $customer);
$acl->isAllowed($bob, $customer);
DAC
Simple implementation
High operational overhead
Access at discretion of resource
owner
DAC
Questions?
2
Mandatory (MAC)
MAC
Classified documents
MAC
Military intelligence
MAC
Blog
MAC
Leveled-up character in game
MAC
Search engine rules
MAC
Top Secret
Secret
Confidential
Subject Classification Resource
MAC
Object sensitivity
Subject security level or clearance
Write up, read down
MAC
Owner sets object label
System sets subject security level
MAC
Subject Security
Level
Object Label
Top Secret Secret Confidential
Top Secret Allow Allow Allow
Secret Deny Allow Allow
Confidential Deny Deny Allow
Subject Security Level
Alice Top Secret
Bob Secret
Clara Confidential
Object Label
Report Top Secret
Finance Secret
Customer Confidential
MAC
Level Name
1 Top Secret
2 Secret
MAC
Subject: Security
Level
Object: Label
Report: Top
Secret
Finance: Secret
Customer:
Confidential
Alice: Top Secret Allow Allow Allow
Bob: Secret Deny Allow Allow
Clara: Confidential Deny Deny Allow
MAC
SELECT s.security_level
FROM subject s
JOIN security_level sl_s
ON sl_s.name = s.name
JOIN resource r
ON r.resource = ‘Report’
JOIN security_level sl_r
ON sl_r.name = r.name
AND sl_r.level <= sl_s.level
WHERE s.subject = ‘Alice’
LIMIT 1;
MAC
$accessControl = new Mac;
$topSecret = new Level(‘Top Secret’);
$secret = new Level(‘Secret’);
$alice = new User(‘Alice’);
$bob = new User(‘Bob’);
$finances = new Resource(‘Finances’);
$accessControl->addLevel($topSecret, 1)
->addLevel($secret, 2);
$accessControl->addUser($alice, $topSecret)
->addUser($bob, $secret);
$accessControl->addResource($finances, $secret);
$accessControl->isAllowed($alice, $finances);
MAC
Multilevel security
System and owner determine access
No flexibility
Moderate overhead
MAC
Questions?
3
Role Based (RBAC)
RBAC
Amazon Prime
RBAC
User roles on a computer
RBAC
Medical care staff
RBAC
LARPing
RBAC
Multiplayer Games
RBAC
Role A
Role B
Role C
Role D
Subject Role Resource
RBAC
Subject assigned to role
Role granted access to resource
RBAC
Subject Role
Alice Accounting
Alice Orders
Bob Payroll
Clara Orders
Clara Reporting
Role Resource
Accounting Finance
Accounting Reports
Orders Inventory
Orders Shipments
Payroll Finance
RBAC
SELECT sr.subject, rr.resource
FROM subject_role sr
JOIN role_resource rr
ON rr.subject = sr.subject
AND rr.role = sr.role
WHERE sr.subject = ‘Alice’
AND rr.resource = ‘Report’
LIMIT 1;
RBAC
$accessControl = new Rbac;
$accounting = new Role(‘Accounting’);
$ordering = new Role(‘Ordering’);
$alice = new User(‘Alice’);
$bob = new User(‘Bob’);
$inventory = new Resource(‘Inventory’);
$accessControl->addRole($accounting)
->addRole($ordering);
$accessControl->addUser($alice)
->addUser($bob);
$accessControl->addResource($inventory);
$accessControl->addUserToRole($alice, $accounting);
$accessControl->addResourceToRole($inventory, $ordering);
$accessControl->isAllowed($alice, $ordering);
$accessControl->isAllowed($bob, $inventory);
RBAC
Role explosion
Toxic combinations
RBAC
Very common
Lower overhead
More scalable
RBAC
Questions?
4
Attribute Based (ABAC)
ABAC
Electronic key card system
ABAC
Credit card with monitoring
ABAC
Airport security check
ABAC
Gaming activities
ABAC
Conditional authorization based on
attributes
ABAC
Policy driven
ABAC
Subject Action Resource Environment
Policy
ABAC
Subject Action Environment Resource Access
Manager Create Region A Customer Allow
Manager Update Region B Customer Deny
Data Entry Create
Region A
Any Hour
Customer Allow
Data Entry Create
Region B
Day Shift
Customer Allow
Data Entry Create
Region B
After
hours
Customer Deny
ABAC
Subject attributes
Action attributes
Resource attributes
Environment attributes
ABAC
Subject attributes
â–Ș Who
â–Ș Where
â–Ș Roles
â–Ș Affiliation
â–Ș Clearance
ABAC
Action attributes
â–Ș Create, POST
â–Ș Read, GET
â–Ș Update, PUT
â–Ș Delete, DELETE
â–Ș Execute
ABAC
Resource attributes
â–Ș Type
â–Ș Owner
â–Ș Classification
ABAC
Environment attributes
â–Ș Time
â–Ș Network
â–Ș Operating system
â–Ș Encryption method
ABAC
Policy Enforcement Point (PEP)
Policy Decision Point (PDP)
PEP sends authorization request to
PDP
ABAC
Gartner predicts 70% of all
businesses will use ABAC by 2020
Keeps eyes on ABAC
ABAC
Attempt to standardize ABAC
policies into XML format is mostly
dead, eXtensible Access Control
Markup Language (XACML)
ABAC
Refined access
Meets demand for more advanced
access control
API access control
ABAC
Typically start with RBAC
implementation and then build onto
it with policies
Custom implementation so no example
ABAC
Questions?
Implementation
Considerations
Considerations
Model Development Operational
DAC
MAC
RBAC
ABAC
Considerations
Model Scalability Granularity Sensitivity
DAC
MAC
RBAC
ABAC
Implementation Considerations
Use cases for application
Sensitivity of resources
Scalability of model
Granularity requirements
Implementation Considerations
Existing frameworks and projects
APIs, external interfaces
Implementation Considerations
Questions?
Review
Review
Review
DAC: simple, high overhead, ACL
MAC: user and resource
classification
RBAC: most common, role driven,
smaller overhead
ABAC: most advanced, policy driven
Review
Operational overhead vs
authorization needs
Consider current implementation
Consider future implementation
Credits
CREDITS
â–Ș NIST publication on ABAC
http://nvlpubs.nist.gov/nistpubs/specialpublications/NI
ST.sp.800-162.pdf
â–Ș ABAC for ZF2
https://github.com/Eye4web/Eye4webZf2Abac/blob/master/d
ocs/README.md
â–Ș Presentation template by SlidesCarnival
â–Ș Axiomatics webinar, May 2014
http://www.slideshare.net/Axiomatics/attribute-based-ac
cess-control-for-data-protection-webinar-may-8
â–Ș OWASP
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_
Project
Thanks!
Questions?
Mark Niebergall
@mbniebergall

More Related Content

PDF
Role Based Access Control - Overview
PPTX
IT General Controls
PPTX
Domain 5 - Identity and Access Management
PPTX
Awareness Training on Information Security
PDF
Beyond Retrieval Augmented Generation (RAG): Vector Databases
PDF
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
PDF
Hacking and Defending APIs - Red and Blue make Purple.pdf
PDF
Demystifying DevSecOps
Role Based Access Control - Overview
IT General Controls
Domain 5 - Identity and Access Management
Awareness Training on Information Security
Beyond Retrieval Augmented Generation (RAG): Vector Databases
Tirana Tech Meetup - Agentic RAG with Milvus, Llama3 and Ollama
Hacking and Defending APIs - Red and Blue make Purple.pdf
Demystifying DevSecOps

What's hot (20)

PPTX
Cloud Essentials
PDF
Azure Security Overview
PPTX
Azure role based access control (rbac)
PPT
Secure code practices
PDF
Kubernetes - Security Journey
PPTX
Aws iam best practices to live by
PPTX
HSM (Hardware Security Module)
PPTX
Aircrack
PPTX
Cloudformation101
PDF
Microsoft Azure Active Directory
PPTX
Secure Software Development Life Cycle (SSDLC)
PPTX
AWS Certified Solutions Architect Professional Course S1-S5
PDF
Iam presentation
PDF
Bug Bounty Secrets
PDF
Adaptive Authentication: What, Why and How?
 
PDF
Cloud Security Tutorial | Cloud Security Fundamentals | AWS Training | Edureka
PDF
RSA NetWitness Log Decoder
PDF
Microsoft Azure Security Overview
PPTX
Owasp Top 10 A1: Injection
Cloud Essentials
Azure Security Overview
Azure role based access control (rbac)
Secure code practices
Kubernetes - Security Journey
Aws iam best practices to live by
HSM (Hardware Security Module)
Aircrack
Cloudformation101
Microsoft Azure Active Directory
Secure Software Development Life Cycle (SSDLC)
AWS Certified Solutions Architect Professional Course S1-S5
Iam presentation
Bug Bounty Secrets
Adaptive Authentication: What, Why and How?
 
Cloud Security Tutorial | Cloud Security Fundamentals | AWS Training | Edureka
RSA NetWitness Log Decoder
Microsoft Azure Security Overview
Owasp Top 10 A1: Injection
Ad

Similar to Access Control Models: Controlling Resource Authorization (20)

PDF
Shields Up! Securing React Apps
PDF
APIsecure 2023 - What if privacy had an API?, Sean Falconer (Skyflow)
PPTX
It's a Dangerous World
PDF
Bulletproof
PDF
Magento Security from Developer's and Tester's Points of View
 
PPTX
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
PPTX
Advanced business rules (part1)
PDF
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
PDF
Devbeat Conference - Developer First Security
PPTX
Reversing Engineering a Web Application - For fun, behavior and detection
PDF
10 Mistakes Hackers Want You to Make
PDF
Java Web Programming [9/9] : Web Application Security
PPTX
Connection String Parameter Pollution Attacks
PDF
Dynamic Database Credentials: Security Contingency Planning
PDF
Implementing Authorization
PDF
Welcome to the Jungle: Pentesting AWS
PDF
CISSP Domain 5 Identity and Access Management (IAM).pdf
PDF
CISSP Domain: Identity and Access Management (IAM) – Securing Access to Peopl...
PDF
CISSP Domain 5 Understanding Identity and Access Management Mind map
PDF
Web Security
Shields Up! Securing React Apps
APIsecure 2023 - What if privacy had an API?, Sean Falconer (Skyflow)
It's a Dangerous World
Bulletproof
Magento Security from Developer's and Tester's Points of View
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Advanced business rules (part1)
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Devbeat Conference - Developer First Security
Reversing Engineering a Web Application - For fun, behavior and detection
10 Mistakes Hackers Want You to Make
Java Web Programming [9/9] : Web Application Security
Connection String Parameter Pollution Attacks
Dynamic Database Credentials: Security Contingency Planning
Implementing Authorization
Welcome to the Jungle: Pentesting AWS
CISSP Domain 5 Identity and Access Management (IAM).pdf
CISSP Domain: Identity and Access Management (IAM) – Securing Access to Peopl...
CISSP Domain 5 Understanding Identity and Access Management Mind map
Web Security
Ad

More from Mark Niebergall (20)

PDF
Filesystem Management with Flysystem - php[tek] 2023
PDF
Leveling Up With Unit Testing - php[tek] 2023
PDF
Filesystem Management with Flysystem at PHP UK 2023
PDF
Leveling Up With Unit Testing - LonghornPHP 2022
PDF
Developing SOLID Code
PDF
Unit Testing from Setup to Deployment
PDF
Stacking Up Middleware
PDF
BDD API Tests with Gherkin and Behat
PDF
BDD API Tests with Gherkin and Behat
PDF
Hacking with PHP
PDF
Relational Database Design Bootcamp
PDF
Starting Out With PHP
PDF
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
PDF
Debugging PHP with Xdebug - PHPUK 2018
PDF
Advanced PHP Simplified - Sunshine PHP 2018
PDF
Defensive Coding Crash Course Tutorial
PDF
Inheritance: Vertical or Horizontal
PDF
Cybersecurity State of the Union
PDF
Cryptography With PHP - ZendCon 2017 Workshop
PDF
Defensive Coding Crash Course - ZendCon 2017
Filesystem Management with Flysystem - php[tek] 2023
Leveling Up With Unit Testing - php[tek] 2023
Filesystem Management with Flysystem at PHP UK 2023
Leveling Up With Unit Testing - LonghornPHP 2022
Developing SOLID Code
Unit Testing from Setup to Deployment
Stacking Up Middleware
BDD API Tests with Gherkin and Behat
BDD API Tests with Gherkin and Behat
Hacking with PHP
Relational Database Design Bootcamp
Starting Out With PHP
Automatic PHP 7 Compatibility Checking Using php7cc (and PHPCompatibility)
Debugging PHP with Xdebug - PHPUK 2018
Advanced PHP Simplified - Sunshine PHP 2018
Defensive Coding Crash Course Tutorial
Inheritance: Vertical or Horizontal
Cybersecurity State of the Union
Cryptography With PHP - ZendCon 2017 Workshop
Defensive Coding Crash Course - ZendCon 2017

Recently uploaded (20)

PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
System and Network Administraation Chapter 3
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
ai tools demonstartion for schools and inter college
PPTX
Essential Infomation Tech presentation.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
medical staffing services at VALiNTRY
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
top salesforce developer skills in 2025.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
history of c programming in notes for students .pptx
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
 
How to Choose the Right IT Partner for Your Business in Malaysia
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
System and Network Administraation Chapter 3
Odoo POS Development Services by CandidRoot Solutions
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms I-SECS-1021-03
ai tools demonstartion for schools and inter college
Essential Infomation Tech presentation.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
How to Migrate SBCGlobal Email to Yahoo Easily
medical staffing services at VALiNTRY
Wondershare Filmora 15 Crack With Activation Key [2025
top salesforce developer skills in 2025.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PTS Company Brochure 2025 (1).pdf.......
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
history of c programming in notes for students .pptx
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf

Access Control Models: Controlling Resource Authorization