SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Why lasagna is better than spaghetti
Building authorization into your apps,
APIs, and DB using JSON, REST & ALFA
© Axiomatics 2014 - @axiomatics
Before we begin, a little draw
Drop in your card at the Axiomatics booth for a
chance to win a Bose bluetooth speaker
© Axiomatics 2014 - @axiomatics
A little history of pasta
Meet Sally And her precious one And so lasagna kicked
spaghetti out© Axiomatics 2014 - @axiomatics
Doesn’t your code feel like spaghetti?
© Axiomatics 2014 - @axiomatics
A little history of access control
Based on: Hilbert and Lopez, 2011
86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07
300
250
200
150
100
50
0
~93% digital
~0,7% digital
DAC
MAC
RBAC
ABAC
Increasing access
control challenges
© Axiomatics 2014 - @axiomatics
What’s Our Secret Ingredient?
Attributes…
Attributes…
Attributes…
Attribute-Based Access Control
Who… What… Where… When… Why…
Attributes can describe everything (not just who)
How…
The Secret Sauce?
Policy-Based Access Control
Centralized…
Easy to audit…
eXtensible…Standardized…
Attribute-based…
XACML – eXtensible Access Control
= +
(ABAC) (PBAC)
XACML
supports
Schrodinger's
cat Paul Madsen’s
Bake in layers
© Axiomatics 2014 - @axiomatics
Authorization at the right place
Business tier…API tier… Data tier…Web app tier…Presentation tier…
Data Tier
Bake once, enjoy everywhere
Presentation Tier
API & WS Tier
Business Tier
eXternalized
Authorization
Service
How does Chef
Gebel take it to
the next level?
I use ALFA,
100%
XACML
I use JSON
and REST too
– easy on the
developers
THE ALFA
PLUGIN FOR
ECLIPSE
Authorization’s KitchenAid
© Axiomatics 2014 - @axiomatics
What’s ALFA
• Abbreviated Language for Authorization
• OASIS
– Axiomatics language donated to OASIS XACML
– In the process of standardization
• Goals
– Makes XACML policies easier to write
– Simplifies XACML structure
– Enhances possibilities
• Audience
– Aimed at developers initially
– Very popular with business analysts
© Axiomatics 2014 - @axiomatics
What’s the ALFA plugin?
• Add-on to Eclipse, the popular IDE
• Lets you write ALFA easily
– Auto-complete
– Syntax checking
– Syntax coloring
• Converts ALFA into XACML 3.0 policies on the fly
• Lets you test your policies
© Axiomatics 2014 - @axiomatics
An example: the insurance use case
• Authorization requirement
– A customer can view his/her own policies and the policies of a spouse
that are not marked as private
• Identify the attributes
– User type; action; policy owner; policy private flag; spouse; object
type; user identity
• Rework the rule
– A user with type==customer can do action==view on object of
type==policy…
• if and only if policyOwner == userId or,
• If and only if policyPrivateFlag==false && policy.owner==user.spouse
• Implement in ALFA
© Axiomatics 2014 - @axiomatics
THE JSON PROFILE
OF XACML
Delicious & Healthy
© Axiomatics 2014 - @axiomatics
Objectives
• Lightweight notation
• Get rid of the verboseness of XML
• Easy to write
• Broader support for languages (JS, Python…)
• Remove the XACML / XML redundancy
• Infer certain things e.g. datatypes
© Axiomatics 2014 - @axiomatics
The JSON Profile - Basics
• The profile is a close mirror of the XML XACML
request / response
• It is possible to omit information and use
inference
– Reasonable defaults
– E.g. String is not specified.
• Default category names
– AccessSubject, Resource, Action, Environment
© Axiomatics 2014 - @axiomatics
Example in HTML/Javascript
<script language="javascript">
var jsonRequest = new Object();
jsonRequest.Request = new Object();
jsonRequest.Request.AccessSubject = new Object();
// jsonRequest.Request.AccessSubject.Attribute
var userId = new Object();
userId.AttributeId="userId";
userId.Value="John";
var role = new Object();
role.AttributeId="role";
role.Value="manager";
jsonRequest.Request.AccessSubject.Attribute = [userId,role];
</script>
© Axiomatics 2014 - @axiomatics
Size of a XACML request
© Axiomatics 2014 - @axiomatics
0
10
20
30
40
50
Word count
XML
JSON
0
200
400
600
800
1000
1200
1400
Char. Count
XML
JSON
THE REST PROFILE OF XACML
The perfect way to serve your lasagna
© Axiomatics 2014 - @axiomatics
Why a “REST” profile?
• No standard transport protocol in XACML core
• Different implementations have different
SOAP wrappings
• SOAP in itself is losing in popularity
• Provide easy means to send authorization
request
© Axiomatics 2014 - @axiomatics
Posting the JSON Request in Javascript
var xmlHttp = null;
function authorize() {
var xacmlRequest = document.getElementById( "xacmlrequest" ).value;
var Url = "https://localhost:5443/axio/authorize";
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = ProcessRequest;
xmlHttp.withCredentials = true;
xmlHttp.open( "POST", Url, false );
xmlHttp.setRequestHeader("Accept","application/xacml+json");
xmlHttp.setRequestHeader("Content-Type","application/xacml+json");
xmlHttp.setRequestHeader("Authorization","Basic cGVwOnBhc3N3b3Jk");
xmlHttp.send( JSON.stringify(xacmlRequest) );
}
© Axiomatics 2014 - @axiomatics
And now,
let’s bake!
Ok, so it’s
time to
wrap up
Forget spaghetti. Whip up lasagna!
© Axiomatics 2014 - @axiomatics
(Sorry Sergio Leone)
Don’t forget to pair the pasta with an elegant
wine. Ask @ggebel, our head sommelier, for
recommendations
Summary
Acronym Name Description
EAM eXternalized
Authorization
Management
The act of cleanly separating business logic
from authorization logic and maintaining each
one independently
ABAC Attribute-based access
control
An authorization model whereby parameters
about the user, resource, action, and
environment can be used to determine access
PBAC Policy-based access
control
An authorization model which uses attributes
combined together inside policies to define
granted or denied access
XACML eXtensible Access Control
Markup Language
The standard implementation of ABAC and
PBAC – done by OASIS.
References
• REST profile of XACML
• JSON profile of XACML
• ALFA profile of XACML
Available on the OASIS XACML TC website
oasis-open.org/committees/tc_home.php?wg_abbrev=xacml
© Axiomatics 2014 - @axiomatics
Grazie a tutti i tutte
David Brossard
Axiomatics – the leaders in ABAC & PBAC
@davidjbrossard
@axiomatics
http://developers.axiomatics.com
© Axiomatics 2014 - @axiomatics

Weitere ähnliche Inhalte

Was ist angesagt?

Defence in Depth Architectural Decisions
Defence in Depth Architectural DecisionsDefence in Depth Architectural Decisions
Defence in Depth Architectural DecisionsPeter Rawsthorne
 
A Practical Example to Using SABSA Extended Security-in-Depth Strategy
A Practical Example to Using SABSA Extended Security-in-Depth Strategy A Practical Example to Using SABSA Extended Security-in-Depth Strategy
A Practical Example to Using SABSA Extended Security-in-Depth Strategy Allen Baranov
 
The Myth Of Requirements
The Myth Of RequirementsThe Myth Of Requirements
The Myth Of RequirementsAlan McSweeney
 
IT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITIT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITReal IRM
 
Security Patterns How To Make Security Arch Easy To Consume
Security Patterns   How To Make Security Arch Easy To ConsumeSecurity Patterns   How To Make Security Arch Easy To Consume
Security Patterns How To Make Security Arch Easy To ConsumeJeff Johnson
 
SABSA vs. TOGAF in a RMF NIST 800-30 context
SABSA vs. TOGAF in a RMF NIST 800-30 contextSABSA vs. TOGAF in a RMF NIST 800-30 context
SABSA vs. TOGAF in a RMF NIST 800-30 contextDavid Sweigert
 
Security architecture
Security architectureSecurity architecture
Security architectureDuncan Unwin
 
Enterprise Security Architecture
Enterprise Security ArchitectureEnterprise Security Architecture
Enterprise Security ArchitecturePriyanka Aash
 
Authorization Enterprise Design Pattern
Authorization Enterprise Design PatternAuthorization Enterprise Design Pattern
Authorization Enterprise Design PatternNick Bogden
 
Pourquoi la directive NIS ?
Pourquoi la directive NIS ?Pourquoi la directive NIS ?
Pourquoi la directive NIS ?Seclab
 
What is a Firewall Risk Assessment?
What is a Firewall Risk Assessment?What is a Firewall Risk Assessment?
What is a Firewall Risk Assessment?VISTA InfoSec
 
Security architecture frameworks
Security architecture frameworksSecurity architecture frameworks
Security architecture frameworksJohn Arnold
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture FrameworkFirmansyahIrma1
 
Enterprise Architecture
Enterprise ArchitectureEnterprise Architecture
Enterprise ArchitectureKarim Baïna
 
Security Vulnerabilities in Modern Operating Systems
Security Vulnerabilities in Modern Operating SystemsSecurity Vulnerabilities in Modern Operating Systems
Security Vulnerabilities in Modern Operating SystemsCisco Canada
 
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+DesignAlfred Ouyang
 
Security-by-Design in Enterprise Architecture
Security-by-Design in Enterprise ArchitectureSecurity-by-Design in Enterprise Architecture
Security-by-Design in Enterprise ArchitectureThe Open Group SA
 
SABSA - Business Attributes Profiling
SABSA - Business Attributes ProfilingSABSA - Business Attributes Profiling
SABSA - Business Attributes ProfilingSABSAcourses
 

Was ist angesagt? (20)

Defence in Depth Architectural Decisions
Defence in Depth Architectural DecisionsDefence in Depth Architectural Decisions
Defence in Depth Architectural Decisions
 
A Practical Example to Using SABSA Extended Security-in-Depth Strategy
A Practical Example to Using SABSA Extended Security-in-Depth Strategy A Practical Example to Using SABSA Extended Security-in-Depth Strategy
A Practical Example to Using SABSA Extended Security-in-Depth Strategy
 
The Myth Of Requirements
The Myth Of RequirementsThe Myth Of Requirements
The Myth Of Requirements
 
IT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of ITIT4IT™ - Managing the Business of IT
IT4IT™ - Managing the Business of IT
 
Security Patterns How To Make Security Arch Easy To Consume
Security Patterns   How To Make Security Arch Easy To ConsumeSecurity Patterns   How To Make Security Arch Easy To Consume
Security Patterns How To Make Security Arch Easy To Consume
 
SABSA vs. TOGAF in a RMF NIST 800-30 context
SABSA vs. TOGAF in a RMF NIST 800-30 contextSABSA vs. TOGAF in a RMF NIST 800-30 context
SABSA vs. TOGAF in a RMF NIST 800-30 context
 
Security architecture
Security architectureSecurity architecture
Security architecture
 
Enterprise Security Architecture
Enterprise Security ArchitectureEnterprise Security Architecture
Enterprise Security Architecture
 
Authorization Enterprise Design Pattern
Authorization Enterprise Design PatternAuthorization Enterprise Design Pattern
Authorization Enterprise Design Pattern
 
Pourquoi la directive NIS ?
Pourquoi la directive NIS ?Pourquoi la directive NIS ?
Pourquoi la directive NIS ?
 
What is a Firewall Risk Assessment?
What is a Firewall Risk Assessment?What is a Firewall Risk Assessment?
What is a Firewall Risk Assessment?
 
Security architecture frameworks
Security architecture frameworksSecurity architecture frameworks
Security architecture frameworks
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
Enterprise Architecture
Enterprise ArchitectureEnterprise Architecture
Enterprise Architecture
 
Security Vulnerabilities in Modern Operating Systems
Security Vulnerabilities in Modern Operating SystemsSecurity Vulnerabilities in Modern Operating Systems
Security Vulnerabilities in Modern Operating Systems
 
CollectiveAccess : Tutoriel
CollectiveAccess : TutorielCollectiveAccess : Tutoriel
CollectiveAccess : Tutoriel
 
2 Security Architecture+Design
2 Security Architecture+Design2 Security Architecture+Design
2 Security Architecture+Design
 
SABSA Implementation(Part VI)_ver1-0
SABSA Implementation(Part VI)_ver1-0SABSA Implementation(Part VI)_ver1-0
SABSA Implementation(Part VI)_ver1-0
 
Security-by-Design in Enterprise Architecture
Security-by-Design in Enterprise ArchitectureSecurity-by-Design in Enterprise Architecture
Security-by-Design in Enterprise Architecture
 
SABSA - Business Attributes Profiling
SABSA - Business Attributes ProfilingSABSA - Business Attributes Profiling
SABSA - Business Attributes Profiling
 

Andere mochten auch

XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...
XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...
XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...David Brossard
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2Jim Manico
 
CIS 2015- Rethinking Your Authorization Strategy- Gerry Gebel
CIS 2015- Rethinking Your Authorization Strategy- Gerry GebelCIS 2015- Rethinking Your Authorization Strategy- Gerry Gebel
CIS 2015- Rethinking Your Authorization Strategy- Gerry GebelCloudIDSummit
 
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...CloudIDSummit
 
Authorization - it's not just about who you are
Authorization - it's not just about who you areAuthorization - it's not just about who you are
Authorization - it's not just about who you areDavid Brossard
 
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?David Brossard
 

Andere mochten auch (6)

XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...
XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...
XACML for Developers - Updates, New Tools, & Patterns for the Eager #IAM Deve...
 
Access Control Pitfalls v2
Access Control Pitfalls v2Access Control Pitfalls v2
Access Control Pitfalls v2
 
CIS 2015- Rethinking Your Authorization Strategy- Gerry Gebel
CIS 2015- Rethinking Your Authorization Strategy- Gerry GebelCIS 2015- Rethinking Your Authorization Strategy- Gerry Gebel
CIS 2015- Rethinking Your Authorization Strategy- Gerry Gebel
 
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...
CIS14: Baking Fine-Grained Authorization Into Your Apps and APIs using ALFA, ...
 
Authorization - it's not just about who you are
Authorization - it's not just about who you areAuthorization - it's not just about who you are
Authorization - it's not just about who you are
 
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?
OWASP Chicago 2016 - What is Attribute Based Access Control (ABAC)?
 

Ähnlich wie Why lasagna is better than spaghetti: baking authorization into your applications using ALFA, JSON, and REST - Cloud Identity Summit 2014

CIS14: The Very Latest in Authorization Standards
CIS14: The Very Latest in Authorization StandardsCIS14: The Very Latest in Authorization Standards
CIS14: The Very Latest in Authorization StandardsCloudIDSummit
 
Policy enabling your services - using elastic dynamic authorization to contro...
Policy enabling your services - using elastic dynamic authorization to contro...Policy enabling your services - using elastic dynamic authorization to contro...
Policy enabling your services - using elastic dynamic authorization to contro...David Brossard
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldSitaraman Lakshminarayanan
 
Getting Started with AWS Lambda & Serverless Computing
Getting Started with AWS Lambda & Serverless ComputingGetting Started with AWS Lambda & Serverless Computing
Getting Started with AWS Lambda & Serverless ComputingAmazon Web Services
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The CloudAnna Brzezińska
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayVadim Zendejas
 
Going Headless with Craft CMS 3.3
Going Headless with Craft CMS 3.3Going Headless with Craft CMS 3.3
Going Headless with Craft CMS 3.3JustinHolt20
 
NASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesNASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesPat Cappelaere
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API SimplifiedJubin Aghara
 
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...Amazon Web Services Korea
 
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션창훈 현
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerSalesforce Developers
 
Axiomatics webinar 13 june 2013 shared
Axiomatics webinar 13 june 2013   sharedAxiomatics webinar 13 june 2013   shared
Axiomatics webinar 13 june 2013 sharedFinn Frisch
 
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...ggebel
 
AWS Certified Solutions Architect Slides v4.7.1.pdf
AWS Certified Solutions Architect Slides v4.7.1.pdfAWS Certified Solutions Architect Slides v4.7.1.pdf
AWS Certified Solutions Architect Slides v4.7.1.pdfsasaboo
 
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Amazon Web Services
 
Site templates, site life cycle management and Modern SharePoint
Site templates, site life cycle management and Modern SharePointSite templates, site life cycle management and Modern SharePoint
Site templates, site life cycle management and Modern SharePointAlbert-Jan Schot
 
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User Experience
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User ExperiencePWA & AMP (PWAMP) - Making the Bot Experience as Good as the User Experience
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User ExperienceMax Prin
 
Getting Started With Apex REST Services
Getting Started With Apex REST ServicesGetting Started With Apex REST Services
Getting Started With Apex REST ServicesSalesforce Developers
 

Ähnlich wie Why lasagna is better than spaghetti: baking authorization into your applications using ALFA, JSON, and REST - Cloud Identity Summit 2014 (20)

CIS14: The Very Latest in Authorization Standards
CIS14: The Very Latest in Authorization StandardsCIS14: The Very Latest in Authorization Standards
CIS14: The Very Latest in Authorization Standards
 
Policy enabling your services - using elastic dynamic authorization to contro...
Policy enabling your services - using elastic dynamic authorization to contro...Policy enabling your services - using elastic dynamic authorization to contro...
Policy enabling your services - using elastic dynamic authorization to contro...
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services world
 
Getting Started with AWS Lambda & Serverless Computing
Getting Started with AWS Lambda & Serverless ComputingGetting Started with AWS Lambda & Serverless Computing
Getting Started with AWS Lambda & Serverless Computing
 
Azure Web Scalability
Azure Web ScalabilityAzure Web Scalability
Azure Web Scalability
 
Business Applications Integration In The Cloud
Business Applications Integration In The CloudBusiness Applications Integration In The Cloud
Business Applications Integration In The Cloud
 
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API GatewayAWS Summit Barcelona 2015 - Introducing Amazon API Gateway
AWS Summit Barcelona 2015 - Introducing Amazon API Gateway
 
Going Headless with Craft CMS 3.3
Going Headless with Craft CMS 3.3Going Headless with Craft CMS 3.3
Going Headless with Craft CMS 3.3
 
NASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise ServicesNASA SensorWeb Enterprise Services
NASA SensorWeb Enterprise Services
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
 
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...
AWS SAM(Serverless Application Model) 을 이용한 백오피스 마이그레이션 (현창훈, HBSmith) :: AWS...
 
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션
AWS DevDay AWS SAM을 이용한 백오피스 마이그레이션
 
Exposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using SwaggerExposing Salesforce REST Services Using Swagger
Exposing Salesforce REST Services Using Swagger
 
Axiomatics webinar 13 june 2013 shared
Axiomatics webinar 13 june 2013   sharedAxiomatics webinar 13 june 2013   shared
Axiomatics webinar 13 june 2013 shared
 
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...
Twin Cities IAM Meet Up - May 2014 - The latest in authorization trends and s...
 
AWS Certified Solutions Architect Slides v4.7.1.pdf
AWS Certified Solutions Architect Slides v4.7.1.pdfAWS Certified Solutions Architect Slides v4.7.1.pdf
AWS Certified Solutions Architect Slides v4.7.1.pdf
 
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
 
Site templates, site life cycle management and Modern SharePoint
Site templates, site life cycle management and Modern SharePointSite templates, site life cycle management and Modern SharePoint
Site templates, site life cycle management and Modern SharePoint
 
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User Experience
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User ExperiencePWA & AMP (PWAMP) - Making the Bot Experience as Good as the User Experience
PWA & AMP (PWAMP) - Making the Bot Experience as Good as the User Experience
 
Getting Started With Apex REST Services
Getting Started With Apex REST ServicesGetting Started With Apex REST Services
Getting Started With Apex REST Services
 

Mehr von David Brossard

Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...
Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...
Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...David Brossard
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs - Nordi...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs - Nordi...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs - Nordi...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs - Nordi...David Brossard
 
The Holy Grail of IAM: Getting to Grips with Authorization
The Holy Grail of IAM: Getting to Grips with AuthorizationThe Holy Grail of IAM: Getting to Grips with Authorization
The Holy Grail of IAM: Getting to Grips with AuthorizationDavid Brossard
 
OpenID AuthZEN ALFA PEP-PDP Prior Art
OpenID AuthZEN ALFA PEP-PDP Prior ArtOpenID AuthZEN ALFA PEP-PDP Prior Art
OpenID AuthZEN ALFA PEP-PDP Prior ArtDavid Brossard
 
OpenID Foundation AuthZEN WG Update
OpenID Foundation AuthZEN WG UpdateOpenID Foundation AuthZEN WG Update
OpenID Foundation AuthZEN WG UpdateDavid Brossard
 
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...Updates from the OASIS XACML Technical Committee - Making Authorization Devel...
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...David Brossard
 
To the cloud and beyond: delivering policy-driven authorization for cloud app...
To the cloud and beyond: delivering policy-driven authorization for cloud app...To the cloud and beyond: delivering policy-driven authorization for cloud app...
To the cloud and beyond: delivering policy-driven authorization for cloud app...David Brossard
 
EIC 2014 Oasis Workshop: Using XACML to implement Privacy by Design
EIC 2014   Oasis Workshop: Using XACML to implement Privacy by DesignEIC 2014   Oasis Workshop: Using XACML to implement Privacy by Design
EIC 2014 Oasis Workshop: Using XACML to implement Privacy by DesignDavid Brossard
 
Fine grained access control for cloud-based services using ABAC and XACML
Fine grained access control for cloud-based services using ABAC and XACMLFine grained access control for cloud-based services using ABAC and XACML
Fine grained access control for cloud-based services using ABAC and XACMLDavid Brossard
 
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...David Brossard
 
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...David Brossard
 
XACML - Fight For Your Love
XACML - Fight For Your LoveXACML - Fight For Your Love
XACML - Fight For Your LoveDavid Brossard
 

Mehr von David Brossard (12)

Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...
Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...
Internet Identity Workshop IIW 2023 - Introduction to ALFA Authorization Lang...
 
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs - Nordi...
ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs - Nordi...ABAC, ReBAC, Zanzibar, ALFA…  How Should I Implement AuthZ in My APIs - Nordi...
ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs - Nordi...
 
The Holy Grail of IAM: Getting to Grips with Authorization
The Holy Grail of IAM: Getting to Grips with AuthorizationThe Holy Grail of IAM: Getting to Grips with Authorization
The Holy Grail of IAM: Getting to Grips with Authorization
 
OpenID AuthZEN ALFA PEP-PDP Prior Art
OpenID AuthZEN ALFA PEP-PDP Prior ArtOpenID AuthZEN ALFA PEP-PDP Prior Art
OpenID AuthZEN ALFA PEP-PDP Prior Art
 
OpenID Foundation AuthZEN WG Update
OpenID Foundation AuthZEN WG UpdateOpenID Foundation AuthZEN WG Update
OpenID Foundation AuthZEN WG Update
 
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...Updates from the OASIS XACML Technical Committee - Making Authorization Devel...
Updates from the OASIS XACML Technical Committee - Making Authorization Devel...
 
To the cloud and beyond: delivering policy-driven authorization for cloud app...
To the cloud and beyond: delivering policy-driven authorization for cloud app...To the cloud and beyond: delivering policy-driven authorization for cloud app...
To the cloud and beyond: delivering policy-driven authorization for cloud app...
 
EIC 2014 Oasis Workshop: Using XACML to implement Privacy by Design
EIC 2014   Oasis Workshop: Using XACML to implement Privacy by DesignEIC 2014   Oasis Workshop: Using XACML to implement Privacy by Design
EIC 2014 Oasis Workshop: Using XACML to implement Privacy by Design
 
Fine grained access control for cloud-based services using ABAC and XACML
Fine grained access control for cloud-based services using ABAC and XACMLFine grained access control for cloud-based services using ABAC and XACML
Fine grained access control for cloud-based services using ABAC and XACML
 
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...
OASIS Workshop: Identity, Privacy, and Data Protection in the Cloud – What is...
 
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...
XACML in five minutes: excerpt from Catalyst 2013 panel "New school identity ...
 
XACML - Fight For Your Love
XACML - Fight For Your LoveXACML - Fight For Your Love
XACML - Fight For Your Love
 

Why lasagna is better than spaghetti: baking authorization into your applications using ALFA, JSON, and REST - Cloud Identity Summit 2014

  • 1. Why lasagna is better than spaghetti Building authorization into your apps, APIs, and DB using JSON, REST & ALFA © Axiomatics 2014 - @axiomatics
  • 2. Before we begin, a little draw Drop in your card at the Axiomatics booth for a chance to win a Bose bluetooth speaker © Axiomatics 2014 - @axiomatics
  • 3. A little history of pasta Meet Sally And her precious one And so lasagna kicked spaghetti out© Axiomatics 2014 - @axiomatics
  • 4. Doesn’t your code feel like spaghetti? © Axiomatics 2014 - @axiomatics
  • 5. A little history of access control Based on: Hilbert and Lopez, 2011 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 300 250 200 150 100 50 0 ~93% digital ~0,7% digital DAC MAC RBAC ABAC Increasing access control challenges © Axiomatics 2014 - @axiomatics
  • 6. What’s Our Secret Ingredient? Attributes… Attributes… Attributes…
  • 7. Attribute-Based Access Control Who… What… Where… When… Why… Attributes can describe everything (not just who) How…
  • 8. The Secret Sauce? Policy-Based Access Control Centralized… Easy to audit… eXtensible…Standardized… Attribute-based…
  • 9. XACML – eXtensible Access Control = + (ABAC) (PBAC)
  • 11. Bake in layers © Axiomatics 2014 - @axiomatics Authorization at the right place Business tier…API tier… Data tier…Web app tier…Presentation tier…
  • 12. Data Tier Bake once, enjoy everywhere Presentation Tier API & WS Tier Business Tier eXternalized Authorization Service
  • 13. How does Chef Gebel take it to the next level? I use ALFA, 100% XACML I use JSON and REST too – easy on the developers
  • 14. THE ALFA PLUGIN FOR ECLIPSE Authorization’s KitchenAid © Axiomatics 2014 - @axiomatics
  • 15. What’s ALFA • Abbreviated Language for Authorization • OASIS – Axiomatics language donated to OASIS XACML – In the process of standardization • Goals – Makes XACML policies easier to write – Simplifies XACML structure – Enhances possibilities • Audience – Aimed at developers initially – Very popular with business analysts © Axiomatics 2014 - @axiomatics
  • 16. What’s the ALFA plugin? • Add-on to Eclipse, the popular IDE • Lets you write ALFA easily – Auto-complete – Syntax checking – Syntax coloring • Converts ALFA into XACML 3.0 policies on the fly • Lets you test your policies © Axiomatics 2014 - @axiomatics
  • 17. An example: the insurance use case • Authorization requirement – A customer can view his/her own policies and the policies of a spouse that are not marked as private • Identify the attributes – User type; action; policy owner; policy private flag; spouse; object type; user identity • Rework the rule – A user with type==customer can do action==view on object of type==policy… • if and only if policyOwner == userId or, • If and only if policyPrivateFlag==false && policy.owner==user.spouse • Implement in ALFA © Axiomatics 2014 - @axiomatics
  • 18. THE JSON PROFILE OF XACML Delicious & Healthy © Axiomatics 2014 - @axiomatics
  • 19. Objectives • Lightweight notation • Get rid of the verboseness of XML • Easy to write • Broader support for languages (JS, Python…) • Remove the XACML / XML redundancy • Infer certain things e.g. datatypes © Axiomatics 2014 - @axiomatics
  • 20. The JSON Profile - Basics • The profile is a close mirror of the XML XACML request / response • It is possible to omit information and use inference – Reasonable defaults – E.g. String is not specified. • Default category names – AccessSubject, Resource, Action, Environment © Axiomatics 2014 - @axiomatics
  • 21. Example in HTML/Javascript <script language="javascript"> var jsonRequest = new Object(); jsonRequest.Request = new Object(); jsonRequest.Request.AccessSubject = new Object(); // jsonRequest.Request.AccessSubject.Attribute var userId = new Object(); userId.AttributeId="userId"; userId.Value="John"; var role = new Object(); role.AttributeId="role"; role.Value="manager"; jsonRequest.Request.AccessSubject.Attribute = [userId,role]; </script> © Axiomatics 2014 - @axiomatics
  • 22. Size of a XACML request © Axiomatics 2014 - @axiomatics 0 10 20 30 40 50 Word count XML JSON 0 200 400 600 800 1000 1200 1400 Char. Count XML JSON
  • 23. THE REST PROFILE OF XACML The perfect way to serve your lasagna © Axiomatics 2014 - @axiomatics
  • 24. Why a “REST” profile? • No standard transport protocol in XACML core • Different implementations have different SOAP wrappings • SOAP in itself is losing in popularity • Provide easy means to send authorization request © Axiomatics 2014 - @axiomatics
  • 25. Posting the JSON Request in Javascript var xmlHttp = null; function authorize() { var xacmlRequest = document.getElementById( "xacmlrequest" ).value; var Url = "https://localhost:5443/axio/authorize"; xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = ProcessRequest; xmlHttp.withCredentials = true; xmlHttp.open( "POST", Url, false ); xmlHttp.setRequestHeader("Accept","application/xacml+json"); xmlHttp.setRequestHeader("Content-Type","application/xacml+json"); xmlHttp.setRequestHeader("Authorization","Basic cGVwOnBhc3N3b3Jk"); xmlHttp.send( JSON.stringify(xacmlRequest) ); } © Axiomatics 2014 - @axiomatics
  • 27. Ok, so it’s time to wrap up
  • 28. Forget spaghetti. Whip up lasagna! © Axiomatics 2014 - @axiomatics (Sorry Sergio Leone) Don’t forget to pair the pasta with an elegant wine. Ask @ggebel, our head sommelier, for recommendations
  • 29. Summary Acronym Name Description EAM eXternalized Authorization Management The act of cleanly separating business logic from authorization logic and maintaining each one independently ABAC Attribute-based access control An authorization model whereby parameters about the user, resource, action, and environment can be used to determine access PBAC Policy-based access control An authorization model which uses attributes combined together inside policies to define granted or denied access XACML eXtensible Access Control Markup Language The standard implementation of ABAC and PBAC – done by OASIS.
  • 30. References • REST profile of XACML • JSON profile of XACML • ALFA profile of XACML Available on the OASIS XACML TC website oasis-open.org/committees/tc_home.php?wg_abbrev=xacml © Axiomatics 2014 - @axiomatics
  • 31. Grazie a tutti i tutte David Brossard Axiomatics – the leaders in ABAC & PBAC @davidjbrossard @axiomatics http://developers.axiomatics.com © Axiomatics 2014 - @axiomatics