Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DPoP Authorization Code Binding #47

Closed
bc-pi opened this issue Nov 6, 2023 · 4 comments
Closed

DPoP Authorization Code Binding #47

bc-pi opened this issue Nov 6, 2023 · 4 comments
Assignees

Comments

@bc-pi
Copy link

bc-pi commented Nov 6, 2023

Because the client interacts directly with the Authorization Challenge Endpoint the authorization code binding can and probably should be done via the DPoP proof rather than the dpop_jkt parameter. This is similar to what DPoP says to do w/ PAR but here you could probably get away with just using the DPoP proof.

@aaronpk
Copy link
Owner

aaronpk commented Dec 15, 2023

That makes sense, we should do it the same way that's recommended for PAR.

@PieterKas
Copy link
Collaborator

@bc-pi I was reading the rationale for requiring both the dpop_jkt parameter and adding the DPoP header to the PAR request: https://www.rfc-editor.org/rfc/rfc9449.html#name-dpop-with-pushed-authorizat

It looks like the goal was to keep client libraries simple so that they don't need to distinguish between PAR or front channel flows. If we remove dpop_jkt, do we make it harder for implementors of client libraries?

Given that this is a new end-point (Authorization Challenge Endpoint) and a native client, we may not need to keep support for both and we can be more prescriptive, but I wonder if we might cause confusion for implementors as we have established dpop_jkt as the least common denominator (the reason for allowing it to be used with PAR end points). Perhaps we should have similar guidance to DPoP on supporting both dpop_jkt and allowing the DPoP Header to be added to the Authorization Challenge Response?

I guess the question is really if we settle dpop_jkt as a the least common denominator in all DPoP impementations?

PieterKas added a commit that referenced this issue Feb 19, 2024
Proposed update based on feedback in issue #47 

Open question for reviewers (and @bc_pi) whether we should allow both or only a single method, and if a single methods should we opt for the least common denominator  (dpop_jkt) or an authorization challenge endpoint specific one?
@bc-pi
Copy link
Author

bc-pi commented Feb 20, 2024

I think the dpop_jkt in PAR was more about keeping the commonalty of authz request parameters and their treatment on both sides. Not so much about being a least common denominator. I think this Authorization Challenge Endpoint is different enough that just using the DPoP proof is the way to go. Also, doing DPoP key binding of the auth_session needs the DPoP proof - so a client doing DPoP in this context really just should be sending the DPoP proof header.

@aaronpk
Copy link
Owner

aaronpk commented Feb 28, 2024

Closing this as it was resolved in #59

@aaronpk aaronpk closed this as completed Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants