Omri Gazitt
Co-founder, Aserto & Co-chair, AuthZEN
IIW 39
OpenID AuthZEN:�The “OIDC” of Authorization
1
Authentication and Authorization
Did the user prove they are who they say they are?
What can the user do in the context of this app?
Authentication
Authorization
Zanzibar
NIST NGAC
AuthZEN
ALFA
2
2
What is modern authorization?
Coarse-grained, tenant-level permissions (RBAC)��Authorization “spaghetti logic” embedded in the application��Permissions evaluated at login time, scopes embedded in access token
Fine-grained: resource-level permissions (ABAC, ReBAC)��Policy-based: authorization logic extracted out of the application��Real-time: permissions evaluated before granting access to resource
Traditional
Modern
WHAT
HOW
WHEN
3
3
Modern authorization: ecosystems, standards & OSS
Policy as code (ABAC)
Policy as data (ReBAC)
Casbin
TOPAZ
Open Policy Agent
NGAC
2016
2001
AuthZEN
2024
Zanzibar
2020
2014
ALFA
4
4
The AuthZEN Charter
Policy Enforcement Point (PEP)
Policy Administration Point (PAP)
Policy Decision Point (PDP)
Policy Information Point (PIP)
Initial focus: PEP-PDP API
Follow-on: Policy �Discovery & Management
Follow-on: Event delivery
5
5
AuthZEN 1.0 Implementer’s Draft: in review (expected Nov)
{
"subject": {
"type": "user",� "id": "CiRm…2Fs"
},
"action": {
"name": "can_delete_todo"
},
"resource": {
"type": "todo",
"id": "1"
"properties": {
"ownerID": "beth@the-smiths.com"
}
}
}
{
"decision": true
}
6
6
First interop use-case: Todo application
Viewer
Editor
Admin
Evil Genius
Todo
Create
Delete
View
Complete
7
7
Interop architecture & Demo
Backend
SQLLite
Authorization Service
AuthZEN Standard
React frontend that manages Todo lists
Node.JS backend that serves 5 routes that the frontend talks to
8
8
Interoperable implementations as of Oct 2024
TOPAZ
Compliant with: 1.1 Preview, 1.0 Implementers Draft, 1.0 Preview
Compliant with: 1.0 Preview
9
9
Lessons learned
10
10
What’s Next?
11
11
Call to action
12
12
Where to find us
Meeting notes & Design docs: https://hackmd.io/@oidf-wg-authzen
AuthZEN mailing list: https://openid.net/wg/authzen
GitHub: https://github.com/openid/authzen
OpenID Slack: #wg-authzen
13
13