Proposal: Restrict Token Refresh to Confidential Clients #160
Replies: 3 comments 3 replies
-
@crucio-009, I think this is a well-written proposal. I'm looking forward to your solution. |
Beta Was this translation helpful? Give feedback.
-
Implemented in #172 |
Beta Was this translation helpful? Give feedback.
-
Checking whether a client is confidential or not based solely on its application type may not be a secure or reliable method. The application type typically describes how the client interacts with the authorization server(e.g., whether it's a mobile app, a web application, a single-page app, etc.), but it doesn't inherently define the client's security level or trustworthiness. |
Beta Was this translation helpful? Give feedback.
-
Issue Description
The current implementation allows both confidential and public clients to perform token refresh grants. However, for security reasons, it's important to restrict this functionality to confidential clients only. This proposal outlines the necessary changes to achieve this and enhance the overall security of the system.
Proposed Solution
The proposed solution involves implementing a mechanism that verifies the client type before allowing the refresh token grant. This can be achieved by leveraging the OAuth 2.0
client_id
andclient_secret
combination to differentiate between confidential and public clients.Implementation Steps
Benefits
Implementing this solution will enhance the security of the token refresh process by ensuring that only trusted and confidential clients can perform token refreshes. Public clients, which may not securely store client secrets, will be denied access to this functionality.
I hope that this solution will address the issue effectively and contribute to the overall security posture of the system. If approved, I would be glad to work alongside a seasoned contributor and take on the task of implementing this solution and creating a pull request for the proposed changes. I am new to open source contribution space, hence would need a bit of hand holding initially.
Attached the pdf write-up here.
Beta Was this translation helpful? Give feedback.
All reactions