-
Notifications
You must be signed in to change notification settings - Fork 40
Description
Current behavior
In the current deferred flow, when the requested attestation/dataset is not immediately available, the identifier used to retrieve it later is derived from the jti value emitted by the Credential Issuer. In practice, clients use this jti-based identifier in subsequent polling/retrieval calls to fetch the final dataset/attestation once it becomes available.
Problem
This approach is not ideal for two main reasons:
- Unwanted coupling:
jtiis an Issuer-side token identifier. Using it as the retrieval/correlation identifier ties the Authorization Server (AS) deferred flow to an Issuer-internal construct. - Lack of AS control: In a deferred flow, the AS should be able to define and govern the correlation/retrieval handle independently, without relying on the Issuer’s token semantics.
Overall, using jti as a deferred retrieval identifier makes the flow less practical and harder to evolve, and it blurs responsibilities between AS and Issuer.
Proposed solution
For deferred responses, the AS should explicitly return an opaque retrieval handle generated and managed by the AS. This handle is then used in subsequent calls to retrieve the dataset/attestation. When the dataset becomes available, this identifier maps to (or remains) the anonymous dataset identifier.
Suggested response shape for deferred cases:
{
"interval": 600,
"deferred_object_id": "12345-67890-abcdef"
}Where:
deferred_object_idis an opaque identifier created and managed by the AS.- Clients must use deferred_object_id for later retrieval/polling operations.
- The AS remains the authority for correlation in the deferred flow, removing dependency on the Issuer’s jti.
Benefits
- Decouples deferred retrieval from Issuer token internals (
jti) - Restores clear ownership of deferred correlation to the AS
- Improves maintainability and future extensibility of the deferred flow