SlideShare a Scribd company logo
Confidential
1
axiomatics.com
ABAC, ReBAC, Zanzibar, ALFA…
How Should I Implement AuthZ in My APIs?
Nordic APIs 2024, Austin.
David Brossard, CTO, Axiomatics
AuthZEN Co-Chair, Curator AuthZ Substack
IDPro Founding Member
Fmr Editor OASIS XACML and ALFA
Confidential
2
axiomatics.com
axiomatics.com
API
API
App Code out there…
Confidential
3
axiomatics.com
axiomatics.com
API Authentication
API
App Code out there…
AuthN
➡️3 Common Methods of API Authentication Explained
The client? The end-user?
Who/What we are authenticating?
Confidential
5
axiomatics.com
axiomatics.com
API Access Delegation with OAuth Scopes & Claims
API
App Code out there…
OAuth
➡️What Is OAuth? A Breakdown for Beginners
AuthN
Confidential
6
axiomatics.com
axiomatics.com
OAuth solves
1. Password anti-pattern
a. I want to use Mint, the financial service, to keep track of my banking and credit cards
b. I want Mint to connect on my behalf to chase.com and other services
c. I do not want to share my passwords
2. Access delegation
a. I want to control which specific information I own in service A with service B
b. Example: I want Dropbox to view Google Sheets in folder XYZ only
3. OAuth Constructs that try to address Authorization
a. Tokens: convenient way to transport the attribute data needed to perform authorization
b. Claims: assertions allowing an application or API to trust the attributes. Generally about the user
c. Scopes: string values consumed by APIs to grant access to requested operations on requested resources
i. e.g. View accounts.
Confidential
7
axiomatics.com
axiomatics.com
The problem with OAuth (one of many)
Confidential
8
axiomatics.com
Misconceptions
Authentication ≠ Authorization
OAuth ≠ Authorization
App Code ≠ Authorization
Confidential
9
axiomatics.com
axiomatics.com
API Authorization… Home-grown & Deliciously Baked…in
API
App Code out there…
OAuth
AuthN
AuthZ
AuthZ
Confidential
10
axiomatics.com
axiomatics.com
The challenge with home-grown
Bill Doerrfeld’s keynote on APIs also applies to authorization
• Authorization sprawl
• Lack of governance
• Lack of standards
• Companies tend to have as many AuthZ models as they do apps
Confidential
11
axiomatics.com
axiomatics.com
API Authorization… Decoupled & Externalized
API
App Code out there…
OAuth
AuthN
AuthZ
AuthZ
AuthZ
Confidential
12
axiomatics.com
axiomatics.com
Why should I even care? OWASP Top Ten 2021 & Top 10 API Security Risks
2023
● A01:2021-Broken Access Control moves up from the fifth position; 94% of applications were tested for some form of broken access control.
The 34 Common Weakness Enumerations (CWEs) mapped to Broken Access Control had more occurrences in applications than any other
category.
● API1:2023 - Broken Object Level Authorization - APIs tend to expose endpoints that handle object identifiers, creating a wide attack surface of
Object Level Access Control issues. Object level authorization checks should be considered in every function that accesses a data source using
an ID from the user.
● API3:2023 - Broken Object Property Level Authorization - This category combines API3:2019 Excessive Data Exposure and API6:2019 - Mass
Assignment, focusing on the root cause: the lack of or improper authorization validation at the object property level. This leads to information
exposure or manipulation by unauthorized parties.
● API5:2023 - Broken Function Level Authorization - Complex access control policies with different hierarchies, groups, and roles, and an unclear
separation between administrative and regular functions, tend to lead to authorization flaws. By exploiting these issues, attackers can gain
access to other users’ resources and/or administrative functions.
● API6:2023 - Unrestricted Access to Sensitive Business Flows - APIs vulnerable to this risk expose a business flow - such as buying a ticket, or
posting a comment - without compensating for how the functionality could harm the business if used excessively in an automated manner. This
doesn't necessarily come from implementation bugs.
Confidential
13
axiomatics.com
axiomatics.com
The Ten Commandments of Authorization
Authorization shall be…
Declarative
(policy-based)
Dynamic
(runtime decision)
ABAC
(attributes)
Decoupled
(from the app)
ReBAC
(relationships)
Feature-driven
(business rules)
Transparent
(audit & review)
Scalable
(protect 1…∞)
Agnostic
(APIs, data…)
Future-proof
(APIs, data…)
Authorization Models
Confidential
15
axiomatics.com
axiomatics.com
Externalize your API Authorization with these Implementation Options
1. ABAC & Policy-driven solutions ⇒ map out to business requirements
a. XACML (Axiomatics)
b. ALFA (Axiomatics)
c. Cedar (AWS)
d. Open Policy Agent’s Rego (Styra and Permit.io)
2. ReBAC & Graph-based solutions ⇒ relationship first
a. OpenFGA (Auth0/Okta)
b. 3Edges
c. Topaz (Aserto)
3. ACLs ⇒ scale & consistency first
a. Zanzibar: Google’s Consistent, Global Authorization System
b. SGNL (see Aldo’s presentation before mine)
i. API Authorization Using an Identity Server and Gateway
Confidential
16
axiomatics.com
axiomatics.com
Authorization Use Cases
Most frameworks for externalized authorization support
• Binary authorization request
o Can Alice view account #123?
o Permit ✅/Deny❌/NotApplicable❔/Indeterminate ⚠️
• Batch authorization requests
o Can Alice, Bob, and Carol view, edit, or close accounts #1, 2, 3?
o 3x3x3 decisions are returned
o Batch requests are specified in another profile called the Multiple Decision Profile Version 1.0
In the case of ALFA, you can express any kind of AuthZ policies: ACLs, RBAC, ABAC, and ReBAC. You can
leverage risk, geolocation, time, and LOA…
Confidential
17
axiomatics.com
axiomatics.com
Let’s take an ABAC example
• Managers can view their customers’ bank accounts
• A customer can view their own bank account
• A customer can close their bank account
• A customer can view the account for a dependent (minor, senior citizen)
API
App Code GET /accounts/123
Confidential
18
axiomatics.com
axiomatics.com
policyset accounts{
target clause attributes.objectType == "account"
apply firstApplicable
policyset viewAccounts{
target clause Attributes.actionId == "view"
apply firstApplicable
managers
customers
}
policy closeAccounts{
target clause user.role=="customer" and Attributes.actionId ==
"close"
apply firstApplicable
// A customer can close their bank account
viewAccounts.customers.ownAccount
}
Let’s take an ABAC example converted to ALFA
Confidential
19
axiomatics.com
axiomatics.com
The managers policy
policy managers{
target clause user.role == "manager"
apply firstApplicable
// Managers can view their customers’ bank accounts
rule allowAssignedCustomer{
permit
condition stringIsIn(stringOneAndOnly(user.username),
account.customer.assignedRep)
}}
Confidential
20
axiomatics.com
axiomatics.com
The customers policy
policy customers{
target clause user.role == "customer"
apply firstApplicable
// ... their own bank account
rule ownAccount{
permit
condition account.owner == user.username
}
// for a dependent (minor, senior citizen)
rule dependents{
permit
condition stringAtLeastOneMemberOf(account.owner, user.dependents)
}}
Confidential
21
axiomatics.com
axiomatics.com
The JSON/REST Policy Decision Point Interface
• Send a Yes/No AuthZ Request
o Can Alice view bank account #123?
• Get a decision back
o Permit/Deny
o Optionally additional statements e.g. “run MFA”
• OpenAPI Spec: GitHub - axiomatics/xacml-3.0-authz-service-openapi-spec
Confidential
22
axiomatics.com
axiomatics.com
Sample JSON
{"Request":
{
"AccessSubject":
{"Attribute":
[{"AttributeId":"userId","Value":"Alice"}]},
"Action":
{"Attribute":
[{"AttributeId":"actionId","Value":"view"}]}
},
"Resource":
{"Attribute":
[
{"AttributeId":"resourceType","Value":"account"},
{"AttributeId":"accountID","Value":"123"}]}
}
{
"Response": [{
"Decision": "Permit"
}]
}
Confidential
23
axiomatics.com
axiomatics.com
API Protection with an API Gateway
API
App Code
API
App Code
API
App Code
API
Gateway
(e.g.
Zuplo)
AuthZ
AuthN
out there…
Confidential
24
axiomatics.com
01 02
03 04
06
05
Enhanced Security
Access is determined by policy and context
at runtime, NOT simply by identity
Increased Speed
Faster response times, faster time
to market for new apps, and easier
integration
Adaptive Collaboration
Enable safe and compliant
collaboration between employees,
customers, partners and suppliers
Cost Savings
100 fold ROI in development
costs and 20% reduction in
maintenance costs
User Experience
End-users get a frictionless
experience that adapts dynamically
to their conditions
Prove Compliance
Decisions are based on policy and
are monitored and logged
Benefits to Externalized Authorization for APIs
Confidential
25
axiomatics.com
axiomatics.com
New Community Effort: OpenID AuthZEN
• Increase interoperability between existing
standards and approaches to authorization
o Policy-based e.g. ALFA, OPA (Rego), and IDQL,
o Graph-based e.g. 3Edges and SGNL,
o Zanzibar-inspired systems e.g. OpenFGA & Topaz
• Standardize interoperable communication
patterns between major authZ components
o PAP, PDP, PEP, and PIP
o See NIST ABAC’s architecture
• Establish and promote the use of externalized
authZ as the preferred pattern
Confidential
26
axiomatics.com
axiomatics.com
Other Efforts
• GNAP - Grant Negotiation and Authorization Protocol
• RFC 9396 - OAuth 2.0 Rich Authorization Requests
• ALFA - the Abbreviated Language for Authorization
Confidential
27
axiomatics.com
axiomatics.com
Further reading
• Authorize Clipping Service
• The Holy Grail of IAM: Getting to Grips with Authorization | Identiverse 2021
• Policy enabling your services - using elastic dynamic authorization to control access to your ap is,
microservices, and data
• ALFA - the Abbreviated Language for Authorization
• Cedar Language
• topaz.sh
• OWASP Top Ten
• OIDF AuthZEN WG - HackMD
Confidential
28
axiomatics.com
axiomatics.com
Get started!
Confidential
29
axiomatics.com
Thank you

More Related Content

PDF
Implementing Authorization
PDF
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
PPTX
Oauth 2.0 security
PPTX
APIs_ An Introduction.pptx
PDF
Microservice architecture-api-gateway-considerations
PDF
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
PPTX
Externalizing Authorization in Micro Services world
PDF
How Netflix Is Solving Authorization Across Their Cloud
Implementing Authorization
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...
Oauth 2.0 security
APIs_ An Introduction.pptx
Microservice architecture-api-gateway-considerations
Federation Evolved: How Cloud, Mobile & APIs Change the Way We Broker Identity
Externalizing Authorization in Micro Services world
How Netflix Is Solving Authorization Across Their Cloud

Similar to ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by David Brossard, Axiomatics (20)

PPTX
O auth2.0 20141003
PDF
What the Heck is OAuth and OIDC - UberConf 2018
PDF
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
PDF
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
PDF
Beyond RAG Partitions: Per-User, Per-Chunk Access Policy
PDF
What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020
PDF
Attribute-Based Access Control in Symfony
PPTX
Community call: Develop multi tenant apps with the Microsoft identity platform
PDF
E5: Predix Security with ACS & UAA (Predix Transform 2016)
PPTX
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
PPTX
Why Assertion-based Access Token is preferred to Handle-based one?
PDF
API, Integration, and SOA Convergence
PPTX
Don't Ask for Forgiveness, Ask for Permission
PPT
SAP BI 7 security concepts
PDF
INTERFACE by apidays 2023 - Something Old, Something New, Colin Domoney, 42Cr...
PPT
UserCentric Identity based Service Invocation
PDF
MongoDB World 2019: Securing Application Data from Day One
PPTX
Adding Identity Management and Access Control to your App
PDF
FIWARE ID Management
PDF
Stateless authentication for microservices - GR8Conf 2015
O auth2.0 20141003
What the Heck is OAuth and OIDC - UberConf 2018
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
FIWARE Global Summit - Adding Identity Management, Access Control and API Man...
Beyond RAG Partitions: Per-User, Per-Chunk Access Policy
What the Heck is OAuth and OIDC - Denver Developer Identity Workshop 2020
Attribute-Based Access Control in Symfony
Community call: Develop multi tenant apps with the Microsoft identity platform
E5: Predix Security with ACS & UAA (Predix Transform 2016)
2022 APIsecure_Why Assertion-based Access Token is preferred to Handle-based ...
Why Assertion-based Access Token is preferred to Handle-based one?
API, Integration, and SOA Convergence
Don't Ask for Forgiveness, Ask for Permission
SAP BI 7 security concepts
INTERFACE by apidays 2023 - Something Old, Something New, Colin Domoney, 42Cr...
UserCentric Identity based Service Invocation
MongoDB World 2019: Securing Application Data from Day One
Adding Identity Management and Access Control to your App
FIWARE ID Management
Stateless authentication for microservices - GR8Conf 2015
Ad

More from Nordic APIs (20)

PPTX
How to Choose the Right API Platform - We Have the Tool You Need! - Mikkel Iv...
PPTX
Bulletproof Backend Architecture: Building Adaptive Services with Self-Descri...
PDF
Implementing Zero Trust Security in API Gateway with Cilium - Pubudu Gunatila...
PPTX
Event-Driven Architecture the Cloud-Native Way - Manuel Ottlik, HDI Global SE
PPTX
Navigating the Post-OpenAPI Era with Innovative API Design Frameworks - Danie...
PDF
Using Typespec for Open Finance Standards - Chris Wood, Ozone API
PPTX
Schema-first API Design Using Typespec - Cailin Smith, Microsoft
PPTX
Avoiding APIpocalypse; API Resiliency Testing FTW! - Naresh Jain, Xnsio
PPTX
How to Build an Integration Platform with Open Source - Magnus Hedner, Benify
PPTX
API Design First in Practise – An Experience Report - Hari Krishnan, Specmatic
PPTX
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
PPTX
Why Frequent API Hackathons Are Key to Product Market Feedback and Go-to-Mark...
PPTX
Maximizing API Management Efficiency: The Power of Shifting Down with APIOps ...
PPTX
APIs Vs Events - Bala Bairapaka, Sandvik AB
PPTX
GraphQL in the Post-Hype Era - Daniel Hervas, Reckon Digital
PPTX
From Good API Design to Secure Design - Axel Grosse, 42Crunch
PPTX
API Revolution in IoT: How Platform Engineering Streamlines API Development -...
PPTX
Unlocking the ROI of API Platforms: What Success Actually Looks Like - Budhad...
PDF
Increase Your Productivity with No-Code GraphQL Mocking - Hugo Guerrero, Red Hat
PPTX
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Theodo ...
How to Choose the Right API Platform - We Have the Tool You Need! - Mikkel Iv...
Bulletproof Backend Architecture: Building Adaptive Services with Self-Descri...
Implementing Zero Trust Security in API Gateway with Cilium - Pubudu Gunatila...
Event-Driven Architecture the Cloud-Native Way - Manuel Ottlik, HDI Global SE
Navigating the Post-OpenAPI Era with Innovative API Design Frameworks - Danie...
Using Typespec for Open Finance Standards - Chris Wood, Ozone API
Schema-first API Design Using Typespec - Cailin Smith, Microsoft
Avoiding APIpocalypse; API Resiliency Testing FTW! - Naresh Jain, Xnsio
How to Build an Integration Platform with Open Source - Magnus Hedner, Benify
API Design First in Practise – An Experience Report - Hari Krishnan, Specmatic
The Right Kind of API – How To Choose Appropriate API Protocols and Data Form...
Why Frequent API Hackathons Are Key to Product Market Feedback and Go-to-Mark...
Maximizing API Management Efficiency: The Power of Shifting Down with APIOps ...
APIs Vs Events - Bala Bairapaka, Sandvik AB
GraphQL in the Post-Hype Era - Daniel Hervas, Reckon Digital
From Good API Design to Secure Design - Axel Grosse, 42Crunch
API Revolution in IoT: How Platform Engineering Streamlines API Development -...
Unlocking the ROI of API Platforms: What Success Actually Looks Like - Budhad...
Increase Your Productivity with No-Code GraphQL Mocking - Hugo Guerrero, Red Hat
Securely Boosting Any Product with Generative AI APIs - Ruben Sitbon, Theodo ...
Ad

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
KodekX | Application Modernization Development
PPTX
Big Data Technologies - Introduction.pptx
PDF
Modernizing your data center with Dell and AMD
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Machine learning based COVID-19 study performance prediction
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Mobile App Security Testing_ A Comprehensive Guide.pdf
Empathic Computing: Creating Shared Understanding
NewMind AI Weekly Chronicles - August'25 Week I
KodekX | Application Modernization Development
Big Data Technologies - Introduction.pptx
Modernizing your data center with Dell and AMD
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Review of recent advances in non-invasive hemoglobin estimation
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MYSQL Presentation for SQL database connectivity
Advanced methodologies resolving dimensionality complications for autism neur...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Machine learning based COVID-19 study performance prediction
20250228 LYD VKU AI Blended-Learning.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
CIFDAQ's Market Insight: SEC Turns Pro Crypto

ABAC, ReBAC, Zanzibar, ALFA… How Should I Implement AuthZ in My APIs? by David Brossard, Axiomatics