Skip to content

Support OAuth RFC - JWT for Client Authentication and Authorization Grants #1768

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

Open
hagaivcita opened this issue Apr 9, 2025 · 5 comments

Comments

@hagaivcita
Copy link

Are there any plans to support JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants?
RFC 7523

From the Abstract:

Abstract

This specification defines the use of a JSON Web Token (JWT) Bearer
Token as a means for requesting an OAuth 2.0 access token as well as
for client authentication.

@ThisIsMissEm
Copy link
Contributor

The "correct" place for this would be in doorkeeper-openid_connect, but it doesn't yet support them: https://github.com/doorkeeper-gem/doorkeeper-openid_connect/blob/v1.8.11/app/controllers/doorkeeper/openid_connect/discovery_controller.rb

@ThisIsMissEm
Copy link
Contributor

Oh, actually, that's the client assertions spec, private_key_jwt is a token endpoint auth method, which is what I was thinking of, which allows a public client to use client credentials via JWTs https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication

@hagaivcita
Copy link
Author

hagaivcita commented Apr 10, 2025

Oh, actually, that's the client assertions spec, private_key_jwt is a token endpoint auth method, which is what I was thinking of, which allows a public client to use client credentials via JWTs https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication

@ThisIsMissEm Thanks for the quick reply!

Yeah as you said that's in the token endpoint.
Basically private_key_jwt is a client authentication method defined in RFC 7523, instead of authenticating with the client_secret.

@ThisIsMissEm
Copy link
Contributor

We'd need support somewhere for OAuth Assertion Framework RFC7521 for this to be possible — I don't think this spec is currently implemented in any maintained doorkeeper code or plugins. There was this & its forks, but they haven't been maintained in a decade: https://github.com/kiorux/doorkeeper-jwt_assertion/

@ThisIsMissEm
Copy link
Contributor

This would be enabled by #1772, which allows registering additional client authentication methods.

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