Skip to main content
Category: OAuth & OIDC

Scope

Simply put

In general usage, scope refers to the range, extent, or area of what something covers or includes. Note: the evidence provided for this entry consists only of general-language dictionaries and project-management references and does not describe how 'scope' is used in identity and access management.

Formal definition

The supplied evidence does not support a practitioner-level definition of 'scope' as used in IAM. In IAM contexts, 'scope' most commonly refers to the OAuth 2.0 authorization framework parameter that expresses the extent of access a client requests or is granted, and in OpenID Connect it also selects claim sets (for example the 'openid' scope). However, none of the provided sources address this usage, cite the relevant specifications, or supply the technical detail required to define it accurately. An authoritative IAM definition cannot be generated from this evidence packet without fabricating specification references, and is therefore out of scope for the current sources.

Why it matters

The evidence packet assembled for this entry consists solely of general-language dictionaries and project-management references. None of these sources describe how the term 'scope' is used within identity and access management, and none address the OAuth 2.0 or OpenID Connect usage that would make the term meaningful to IAM practitioners. As a result, this entry cannot responsibly explain why 'scope' matters in an identity context without introducing claims the evidence does not support.

Who it's relevant to

Evidence limitation
This entry is currently backed only by general-language and project-management sources. Until IAM-specific references are supplied, the practitioner audiences who would normally rely on a 'Scope' definition, such as IAM engineers configuring OAuth 2.0 clients, security architects designing authorization flows, and identity governance leads reviewing granted access, cannot be served accurately from this evidence.
Required to complete this entry
To produce a verifiable IAM definition, supply authoritative specification references, for example the OAuth 2.0 authorization framework's treatment of the 'scope' parameter (RFC 6749 §3.3) and OpenID Connect Core's use of scope values such as 'openid' to select claim sets (§3.1.2.1). These would let the entry distinguish scope as a delegated-authorization concept from authentication concerns and describe it without fabricating detail.

Inside Scope

Scope parameter
In OAuth 2.0 (RFC 6749 §3.3), scope is a request parameter used by a client to specify the extent of access being requested. It is expressed as a space-delimited, case-sensitive list of string values, and the authorization server may honor the request fully, partially, or ignore it depending on policy and configuration.
Scope values
The individual space-separated strings within the scope parameter. Their format and meaning are defined by the authorization server; RFC 6749 does not prescribe a fixed vocabulary. Each value typically represents a category of permitted access to a protected resource.
openid scope
A reserved scope value defined by OpenID Connect Core (§3.1.2.1). Its presence signals that the request is an OIDC authentication request rather than a plain OAuth 2.0 authorization request, and it instructs the provider to return an ID token in addition to authorization.
OIDC standard scopes
OpenID Connect Core defines scopes such as profile, email, address, and phone that request access to corresponding sets of claims about the authenticated end-user. Which claims are ultimately returned depends on provider configuration and user consent.
Granted vs. requested scope
The scope a client asks for is not necessarily the scope it receives. Per RFC 6749, the authorization server may issue a token with a narrower scope than requested; in that case it includes a scope response parameter describing what was actually granted.
Scope in delegated authorization
Scope operates within OAuth 2.0's delegated authorization framework, constraining what a client may do on behalf of a resource owner. It bounds the permissions carried by an access token but does not by itself authenticate the user.

Common questions

Answers to the questions practitioners most commonly ask about Scope.

Does requesting a scope in an OAuth 2.0 authorization request authenticate the user?
No. In OAuth 2.0 (RFC 6749 §3.3), scope is a mechanism for expressing and limiting the access privileges granted to an access token; it governs delegated authorization, not authentication. Determining who the user is requires the authentication layer added by OpenID Connect, where requesting the reserved openid scope triggers issuance of an ID token per OpenID Connect Core §3.1.2.1. Scope by itself, in a plain OAuth 2.0 flow, tells the authorization server what access is being requested, not who the requesting principal is.
Is a scope the same thing as a role or a permission in an access control model?
Not exactly. Scope is an OAuth 2.0/OIDC construct that bounds what an issued token may be used to request; it is expressed as space-delimited strings in the authorization and token requests. Roles (RBAC) and fine-grained permissions typically live in the resource server's or authorization system's access control model and are evaluated at enforcement time. In many deployments a scope represents a coarse-grained capability that the resource server then maps to finer-grained authorization decisions, but the OAuth 2.0 specification does not define scope values or mandate any particular access control model. The mapping between scopes and roles or permissions is deployment-specific.
How are scope values defined and communicated between parties?
Under RFC 6749 §3.3, scope is expressed as a case-sensitive, space-delimited list of strings whose meanings are defined by the authorization server. OpenID Connect Core reserves certain values such as openid, profile, email, address, and phone, which map to defined sets of claims. Beyond those reserved values, scope strings are typically defined by the API provider or authorization server and documented out of band. The authorization server may grant a scope narrower than what the client requested, and per the specification it should inform the client when the granted scope differs from the requested scope.
How should scopes be designed to support least privilege?
A common practice is to define scopes narrowly enough that clients request only the access they need, rather than defining a few broad scopes that over-grant. Depending on your API design, this may mean separating read from write access, or segmenting scopes by resource type or sensitivity. Because the authorization server may issue a narrower scope than requested, designing granular scopes lets both the server and resource operators enforce tighter boundaries. Keep in mind that scope is generally coarse-grained; fine-grained, contextual, or data-row-level decisions are typically better handled by the resource server's authorization logic (for example an ABAC or PBAC policy) rather than by proliferating scope values indefinitely.
How does a resource server enforce scope at request time?
At the enforcement point, the resource server typically validates the presented access token and then checks whether the scope associated with that token permits the requested operation. For self-contained tokens such as signed JWTs, the scope claim can be read after signature validation; note that a signed token is integrity-protected but not necessarily confidential unless it is also encrypted. For opaque tokens, the resource server generally relies on token introspection or an equivalent lookup with the authorization server to obtain the granted scope. Whether scope enforcement alone is sufficient depends on your design; many deployments treat scope as one input to a broader authorization decision made by a policy decision point.
What is the relationship between requested scope and the tokens that are issued?
In OpenID Connect, requesting the openid scope signals that authentication is desired and that an ID token should be issued alongside the access token, per OpenID Connect Core §3.1.2.1; additional reserved scopes like profile or email influence which claims are returned. The scope requested at authorization time typically bounds the access token's granted privileges and, in most deployments, also constrains what a refresh token can later obtain. Behavior such as whether scopes can be narrowed on token refresh, and how scope maps to ID token claims versus UserInfo endpoint responses, varies by authorization server configuration and profile, so consult your provider's documentation.

Common misconceptions

Requesting a scope guarantees the client will be granted that scope.
Per RFC 6749 §3.3, the authorization server may grant a narrower set of scopes than requested based on its own policy, resource owner consent, or configuration, and it communicates the effective scope back to the client via the scope response parameter.
The presence of scopes means OAuth 2.0 is authenticating the user.
OAuth 2.0 scope governs delegated authorization, not authentication. User authentication in the OAuth-based ecosystem is provided by OpenID Connect, which is signaled by including the reserved openid scope (OIDC Core §3.1.2.1); scope alone does not establish who the user is.
Scope values are standardized and interoperable across all authorization servers.
Aside from OIDC-defined values such as openid, profile, email, address, and phone, the vocabulary and semantics of scope strings are defined by each authorization server. Custom scope values are typically deployment-specific and not portable without agreement between parties.

Best practices

Request only the scopes a client actually needs for its function, applying least privilege so tokens carry the minimum access required.
Always validate the granted scope returned by the authorization server rather than assuming the requested scope was honored, since it may have been narrowed per RFC 6749 §3.3.
Include the openid scope only when OpenID Connect authentication and an ID token are genuinely required, and do not rely on plain OAuth 2.0 scopes to establish user identity.
Define custom scope values with a clear, documented, and namespaced vocabulary within your authorization server, recognizing that such values are typically not interoperable across providers.
Enforce scope checks at the resource server (the enforcement point) when validating access tokens, and treat scope as one input to authorization decisions rather than the sole determinant.
Design consent screens and scope grouping so that resource owners can meaningfully understand the access each scope represents, since scope-to-claim mapping depends on provider configuration.
Promotional banner for the Pentest Readiness checklist download