[Design Discussion] External AuthZEN PDP Evaluation #5126
Replies: 4 comments 2 replies
|
Hi, we need to have samples and try outs of integrating popular authZEN compliant PDP vendor. can we consider enriching the tokens with claims also? |
|
For federated subjects, the identifier ThunderID holds may not be the one the PDP knows. A locally provisioned user has a ThunderID UUID, while PDP policies are usually written against the provider's Can we make the Authzen subject |
|
Summary of Discussion (14/09/2026) Participants: @darshanasbg @Thumimku @thiva-k @Yathusiga27 Notes:
|
|
Summary of Discussion (17/09/2026) Participants: @jeradrutnam @NipuniBhagya @Thumimku @thiva-k @Yathusiga27 Notes:
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Related Feature Issue
#2209
#5151
Problem Summary
ThunderID currently evaluates authorization using its built-in RBAC. This presents two limitations:
This design allows ThunderID to route authorization evaluations to an external AuthZEN-compatible PDP. It supports both token issuance decisions and AuthZEN authorization requests received by ThunderID from external Policy Enforcement Points.
High-Level Approach
Architecture Overview
Components:
External PEP Authorization Flow
sequenceDiagram participant PEP as External PEP participant ThunderID participant PDP as External AuthZEN PDP PEP->>ThunderID: AuthZEN evaluation request ThunderID->>PDP: AuthZEN evaluation request PDP-->>ThunderID: Permit or deny decision ThunderID-->>PEP: AuthZEN evaluation response PEP->>PEP: Enforce decisionToken Issuance Flow
sequenceDiagram participant User participant ThunderID as ThunderID (PEP) participant PDP as External AuthZEN PDP User->>ThunderID: Request token during login ThunderID->>PDP: Send AuthZEN evaluations for candidate scopes PDP->>PDP: Evaluate each action for the user PDP-->>ThunderID: Return authorization decisions ThunderID->>ThunderID: Enforce decisions and include allowed scopes ThunderID-->>User: Issue token with allowed scopesAuthZEN Request Mapping
ThunderID maps its internal authorization model to the AuthZEN request format.
Subject:
Resource:
Action:
The current token-issuance implementation does not enrich resource-instance data such as booking status, booking owner, departure time, or region from an application database.
Therefore, policies that require resource-instance attributes are outside the current ThunderID token-issuance.
AuthZEN External PDP Connection Configuration
Sample UI for Connection
External PDPs are configured from the Connections page.
Each connection includes:
Sample UI for Resource Server Configuration
Each Resource Server can select its authorization engine from the Advanced tab.
Available options include:
The dropdown displays the names of configured PDP connections.
The selected engine is used for:
Response Handling
When the PDP permits an action: ThunderID includes that permission in the issued token scope.
When the PDP denies an action: ThunderID excludes that permission from the issued token scope.
If the PDP denies all requested permissions, the token may be issued without those permissions according to the current token flow behavior.
If the PDP cannot be reached or returns an error:
Security Considerations
Impacted Areas
Alternatives Considered
Provider-Specific Adapters
Create a separate ThunderID adapter for each external PDP provider, such as Cerbos, OPA, or another authorization service.
Pros:
Cons:
Questions for Community Input
All reactions