What is OAuth 2.0? Delegated Authorization Explained

Understand OAuth 2.0, the framework for delegated authorization. Learn how it secures resources without sharing user credentials directly.

Clifford Spielman |

What Is OAuth 2.0?

OAuth 2.0 is a standardized authorization framework that allows applications to request permission to access protected resources without handling credentials directly. These resources may belong to a user or be managed by another system, and access is granted through defined permissions rather than shared usernames and passwords. OAuth 2.0 defines a common structure for requesting access, expressing consent, and enforcing limits, without requiring applications to store or process credentials themselves.

The name OAuth originated as shorthand for Open Authorization — reflecting its focus on delegated access rather than authentication — though today, OAuth is treated as a proper name rather than a formal acronym. OAuth, written without a version number in this article, refers to OAuth 2.0.

A Brief History of OAuth

The OAuth specification originated in the mid-2000s as a response to a growing problem on the web: third-party applications were increasingly requiring users to share their passwords in order to access online services. This approach made it difficult to limit what an application could access, revoke access when it was no longer needed, or reduce the impact of compromised credentials. Early social and API-driven platforms needed a safer way to delegate access without exposing user passwords.

Before OAuth became a formal specification, it began as a collaborative effort among developers and platform providers who were grappling with this growing need for delegated access. During the late-2000s, an informal group of implementers worked to define an open protocol that would allow third-party applications to access user data without requiring full account credentials.

This early work eventually evolved into the OAuth 1.0 specification, which was formally published in 2010. This new spec introduced the fundamental idea of delegated authorization — allowing an application to access resources on behalf of another entity, often a user, without being given credentials. In practice, however, it proved complex to implement and challenging to adapt across a wide range of use cases.

OAuth 2.0, finalized in 2012, was a deliberate redesign rather than a routine version update. It simplified the model, made it more flexible, and aligned it better with modern web, mobile, and API-centric architectures. Moreover, it's not backward-compatible with OAuth 1.0.

Today, OAuth 2.0 is maintained through the Internet Engineering Task Force (IETF) and forms the foundation of many authorization systems, often alongside related standards such as OpenID Connect (OIDC). The IETF is an open, international standards organization responsible for developing many of the protocols and specifications that underpin the modern internet.

Why OAuth Exists

At the heart of OAuth is the need to solve a delegated authorization problem. In modern systems, applications and services often need to perform specific actions using access they do not directly own — such as reading data, posting content, or invoking protected APIs — without being given full control over credentials. In many cases, this access is granted on behalf of a user, but the same challenge also arises between independently managed systems.

Credential sharing creates an all-or-nothing trust relationship. Once an application or service has a username and password, it can typically do anything the credential owner can, with no practical way to limit scope, duration, or behavior. This model breaks down quickly as systems become more interconnected and responsibilities need to be divided more precisely.

OAuth at a Conceptual Level

Without going into implementation details, OAuth 2.0 defines four roles: resource owner, client, authorization server, and resource server. These roles work together to manage delegated access to protected resources across systems. These roles also describe who is involved in an authorization decision, rather than how that decision is implemented.

The resource owner is the user or system that has authority over the data or service being accessed. The client is the application requesting permission to access resources controlled by the resource owner. This might be a mobile app, a web application, or a third-party service that needs limited permission to interact with protected resources.

Two of these OAuth roles are server-side roles. The authorization server is responsible for authenticating the relevant party, obtaining consent when required, and issuing credentials that represent approved access. The resource server hosts the protected APIs or services and enforces access based on those permissions.

Separating these roles is one of OAuth's core design principles. The application requesting access does not need to handle user credentials, and the system hosting the protected resources does not need to participate directly in the user's authentication process; instead, it relies on information conveyed in an access token issued after successful authorization.

This role-based model allows OAuth to adapt to a wide range of architectures while preserving a consistent authorization pattern. Whether the systems involved are owned by a single organization or span multiple providers, the same conceptual framework applies.

What OAuth Is Not

Because OAuth is often discussed alongside authentication systems, tokens, and identity platforms, it is easy to misunderstand what OAuth is responsible for and what it's not.

OAuth is not an authentication protocol. Authentication protocols, such as OIDC, verify a user's identity — for example, by validating credentials or other authentication factors. OAuth, by contrast, is concerned with authorizing access to resources after authentication has already occurred.

OAuth is also not an identity system. Identity systems, such as those that manage user accounts, profiles, and identity attributes, are responsible for representing who a user is. OAuth does not define user profiles, credentials, or identity attributes. Instead, it provides a framework for granting limited access to protected resources, regardless of how identity is managed.

Similarly, OAuth is not a token format. Token formats such as JSON Web Tokens (JWTs) are often used in OAuth-based implementations, but OAuth itself does not require a specific token structure. Token formats and lifetimes are implementation choices layered on top of the authorization model.

Finally, OAuth is not an API security solution on its own. While it plays a central role in securing APIs, it must be combined with proper authentication, transport security, and application design best practices to form a complete security strategy.

Understanding these boundaries helps clarify where OAuth fits and prevents it from being expected to solve problems outside its intended purpose.

Where OAuth Shows Up in Practice

In practice, OAuth is most often encountered when applications need to access APIs or services without directly handling user credentials. These scenarios are common across modern web, mobile, and service-based architectures.

OAuth is also widely used in API-based systems, where backend services communicate directly with one another. In these cases, OAuth provides a structured way to grant access between services.

Single-page applications (SPAs), native mobile apps, and backend services that implement OAuth may do so in somewhat different ways, but the underlying model remains the same. The application requests access, the user or system grants permission, and access is enforced based on the approved scope rather than shared credentials.

These patterns appear not only in consumer applications but also within internal enterprise systems. While the technical details vary, OAuth's role is consistent: enabling controlled, delegated access to protected resources between systems.

Why OAuth Still Matters

OAuth continues to matter and evolve because the problems it was designed to address have not gone away. In fact, they have become more pervasive. Modern applications are increasingly distributed, composed of web front ends, mobile clients, APIs, and third-party services that need to interact without sharing credentials or undermining overall security. Ongoing work on OAuth 2.1 reflects the continued relevance of the standard.

As systems grow more interconnected, the need for delegated access becomes more pronounced. Applications rarely operate in isolation; they act on behalf of users or other services, often across organizations or between independently managed systems. OAuth provides a consistent authorization model that scales with these complexities.

OAuth's role separation also aligns well with modern security practices. By decoupling authorization from identity verification and application logic, it supports architectures that limit credential exposure and reduce blast radius when something goes wrong. For example, if a short-lived access token is exposed, its scope (assuming it was scoped narrowly) and lifetime constrain what can be affected.

Finally, OAuth remains relevant because it is adaptable. While OAuth implementations and usage patterns continue to evolve, the underlying model has proven flexible enough to support new application types and deployment styles without requiring a fundamental redesign of the systems that use it.

For these reasons, OAuth is not just a historical artifact of earlier web architectures. It remains a foundational building block of secure, delegated access in modern systems.

Implementing OAuth with Established Tools

While OAuth provides a clear authorization model, implementing it correctly requires careful attention to standards, security considerations, and evolving best practices. For many teams, this means relying on established tools rather than building and maintaining OAuth infrastructure from scratch. Duende Software's IdentityServer is a standards-compliant authorization server and OpenID Provider for OAuth and OIDC, designed to help teams implement these standards consistently.

For browser-based applications, Duende's Backend for Frontend (BFF) supports architectures that reduce token exposure while preserving OAuth's delegated access model.

For readers interested in exploring OAuth concepts in more depth, Duende Software also maintains comprehensive documentation and learning resources covering OAuth, OIDC, and related topics.

Final Thoughts

As discussed above, OAuth provides a consistent way to delegate access to protected resources without sharing credentials, regardless of application type or architecture.

Understanding what OAuth is, what it is not, and where it fits helps clarify why it remains a prominent authorization framework across modern application architectures. With that foundation in place, the remaining challenge is not conceptual, but practical: implementing OAuth within your systems to support secure, delegated authorization.