Explore the differences between confidential and public client applications in terms of security, capabilities, and use cases in authentication protocols.
Vincent
Created: May 17, 2024
Updated: March 10, 2026

Confidential and Public Applications refer to two classifications of client applications in OAuth 2.0, distinguished by their ability to securely handle credentials like client secrets. Confidential applications can securely store credentials and are typically server-side applications, while public applications cannot securely store credentials and are often client-side apps, such as mobile or desktop applications.
A confidential application is one that can secure client credentials (like client IDs and secrets) and use these for authenticating with authorization servers.
Public applications run in environments like personal devices or browsers where the secure storage of credentials is not feasible, making them susceptible to attacks such as reverse engineering.
Confidential applications can use secrets to authenticate and obtain tokens, while public applications typically use alternative methods like PKCE to secure their token exchanges without needing a client secret.
Yes, public applications often use the Authorization Code flow with PKCE, which enhances security for apps unable to hold secrets.
Table of Contents