TOC
TOC
Client registration does not require a direct interaction between the client and the
authorization server. When supported by the authorization server, registration can rely on
other means for establishing trust and obtaining the required client properties (e.g.
redirection URI, client type). For example, registration can be accomplished using a self-
issued or third-party-issued assertion, or by the authorization server performing client
discovery using a trusted channel.
When registering a client, the client developer:
specifies the client type as described in ,
provides its client redirection URIs as described in , and
includes any other information required by the authorization server (e.g.
application name, website, description, logo image, the acceptance of legal
terms).
2.1. Client Types
OAuth defines two client types, based on their ability to authenticate securely with the
authorization server (i.e. ability to maintain the confidentiality of their client credentials):
confidential
Clients capable of maintaining the confidentiality of their credentials (e.g. client
implemented on a secure server with restricted access to the client credentials),
or capable of secure client authentication using other means.
public
Clients incapable of maintaining the confidentiality of their credentials (e.g. clients
executing on the resource owner's device such as an installed native application or
a web browser-based application), and incapable of secure client authentication
via any other mean.
The client type designation is based on the authorization server's definition of secure
authentication and its acceptable exposure levels of client credentials.
This specification has been designed around the following client profiles:
web application
A web application is a confidential client running on a web server. Resource owners
access the client via an HTML user interface rendered in a user-agent on the
resource owner's device. The client credentials as well as any access token issued
to the client are stored on the web server and are not exposed to or accessible by
the resource owner.
user-agent-based application
A user-agent-based application is a public client in which the client code is
downloaded from a web server and executes within a user-agent (e.g. web
browser) on the resource owner's device. Protocol data and credentials are easily
accessible (and often visible) to the resource owner. Since such applications reside
within the user-agent, they can make seamless use of the user-agent capabilities
when requesting authorization.
native application
A native application is a public client installed and executed on the resource
owner's device. Protocol data and credentials are accessible to the resource
owner. It is assumed that any client authentication credentials included in the
application can be extracted. On the other hand, dynamically issued credentials
such access tokens or refresh tokens, can receive an acceptable level of
protection. At a minimum, these credentials are protected from hostile servers
which the application may interact with. On some platform these credentials might
be protected from other applications residing on the same device.
2.2. Client Identifier
The authorization server issues the registered client a client identifier - a unique string
representing the registration information provided by the client. The client identifier is not a
secret, it is exposed to the resource owner, and MUST NOT be used alone for client
authentication.
Section 2.1
Section 3.1.2