-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Add different authentication options for the token revocation endpoint #796
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
Comments
I confirm the issue, but they followed the OAuth2 specifications, |
https://datatracker.ietf.org/doc/html/rfc7009#page-4
|
Hi @andreygrigoriev, thanks for your interest in the project! Please also note, from RFC 7009, Section 2.1:
The only way a public client could prove it was the client that was originally issued the access token would be to provide the PKCE code verifier again. However, I'm not aware of anything in the specification that details using PKCE parameters as a longer term type of credential (e.g. valid as long as the access token is not expired). If there is, that could be something to look into. As it sits currently however, I'm going to close this as per this comment. Similar to what was shared by @mahdiraddadi, you would want to follow recommendations in gh-297 for guidelines on integrating a single-page app, specifically focusing on using the "backend for frontend" pattern to securely integrate with the authorization server. |
One additional note. I'm assuming that this:
is already supported because the |
Shouldn't it be possible to revoke the access_token by a public client? Even if the access_token got leaked, it can be used to perform far more malicious actions (at the RS) than revoking it at the (AS). |
Yes it is possible but this would need to be customized by the consuming application. A custom |
Hi! First of all I would like to thank you for the great job. Spring Authorization Server is awesome
Expected Behavior
It would be great if Spring Authorization Server supported client_secret_post and none client authentication methods for token revocation endpoint.
Current Behavior
As of now Spring Authorization Server supports only basic authentication for the /oauth2/revoke endpoint, and you cannot call this endpoint without specifying a client secret in the basic auth header.
Context
It's becoming a problem when you have public clients. Keycloak for example provides an option to specify client credentials in the request body as well as in the basic auth header, and allows to omit the client secret parameter.
The text was updated successfully, but these errors were encountered: