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

[TBC] Implement DPoP for access token #4320

Open
tung2744 opened this issue Jun 13, 2024 — with Linear · 5 comments
Open

[TBC] Implement DPoP for access token #4320

tung2744 opened this issue Jun 13, 2024 — with Linear · 5 comments
Assignees

Comments

Copy link
Contributor

No description provided.

Copy link

linear bot commented Jun 13, 2024

@tung2744 tung2744 self-assigned this Jun 13, 2024
@tung2744 tung2744 changed the title Implement dpop for access token [TBC] Implement dpop for access token Jun 13, 2024
@louischan-oursky
Copy link
Collaborator

We may want to DPoP bind the refresh_token only. See https://www.rfc-editor.org/rfc/rfc9449#section-5-9 My concern is that the access token may be used in a way that is assumed to be Bearer.

Possible configuration
DPoP:

  • Disabled. DPoP is disabled
  • Except access_token. DPoP is enabled for authorization code, refresh token, device secret, and device browser session token.
  • All. DPoP is enabled for authorization code, access token, refresh token, device secret, and device browser session token.

@tung2744
Copy link
Contributor Author

My concern is that the access token may be used in a way that is assumed to be Bearer.

@louischan-oursky Yes. This is why I marked this issue as TBC. If we implement it, we need to support the DPoP Authentication Scheme. As access tokens are also read by resource servers, it could break existing integrations.

So what I plan to support is

  • When DPoP header is present on /token, these tokens are DPoP bound:
    • refresh_token
    • device_secret
    • x_device_browser_session_token

And it solely depends on whether DPoP header is set on making the /token request. If it is present, the returned tokens are DPoP bound, else they are not.

@louischan-oursky
Copy link
Collaborator

it solely depends on whether DPoP header is set on making the /token request.

The client metadata should also be implemented. https://www.rfc-editor.org/rfc/rfc9449#name-client-registration-metadat

@tung2744
Copy link
Contributor Author

@louischan-oursky It seems dpop_bound_access_tokens should only controls access token, which we doesn't support DPoP at the moment. (But the spec says "for token requests", so not sure)

However, I think this config is only for enforcing DPoP (i.e. error if no DPoP), but not for enabling DPoP. Therefore things still work without this config.

@tung2744 tung2744 changed the title [TBC] Implement dpop for access token [TBC] Implement DPoP for access token Jun 13, 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

2 participants