1 of 13

Omri Gazitt

Co-founder, Aserto & Co-chair, AuthZEN

IIW 39

​

OpenID AuthZEN:�The “OIDC” of Authorization

1

2 of 13

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

3 of 13

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

4 of 13

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

5 of 13

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

6 of 13

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

7 of 13

First interop use-case: Todo application

Viewer

Editor

Admin

Evil Genius

Todo

Create

Delete

View

Complete

7

7

8 of 13

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

9 of 13

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

10 of 13

Lessons learned

  • Starting with a draft helped get things going (thanks @Atul!)
  • Surveying prior art was helpful in not repeating mistakes
  • Cataloguing use-cases before moving on to specs helped define our scope
  • Defining an interop scenario (todo app) and an interop test suite helped inform the spec
  • Forcing functions – Identiverse 2024 (1.0-preview) and Authenticate 2024 (1.1-preview)

10

10

11 of 13

What’s Next?

  • Resource Search API: find all the resources that a subject can access
  • Subject Search API: find all the subjects that can access a resource

​

  • Create additional interop scenarios
  • Add more implementations (especially ReBAC systems)
  • Pursue policy discovery/management and event delivery into PDP/PIP

11

11

12 of 13

Call to action

  • Work with relying parties (Workday, SFDC, etc) to externalize authorization (help needed!)
  • Work with API Gateway vendors to wire AuthZEN into their products
  • Work with vertical-specific standards bodies (OAuth RAR, OAuth AS 🡪 PDP), FAPI, FHIR

12

12

13 of 13

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