# Application (client)

## Types

Type is related to the ability to maintain the confidentiality of client credentials.

* Even from the resource owner.

### Confidential.

* Capable.
  * e.g. a secure server

### Public.

* Incapable.
  * e.g. a web browser-based application, or a mobile App.

Different application types will be allowed to execute different flows.

## Profiles

### Web application

Confidential client running on a web server.

<figure><img src="https://3490214077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAHT7avzIVwxfPJ4pkhhO%2Fuploads%2FLD0BTHZVK9vB06esRDBS%2FScreenshot%20from%202024-02-24%2012-46-15.png?alt=media&#x26;token=bb085a8a-2f2b-4c6c-b499-7474dc2adc55" alt=""><figcaption></figcaption></figure>

### User-agent based application

Public client where the client code runs on a user-agent application.

<figure><img src="https://3490214077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAHT7avzIVwxfPJ4pkhhO%2Fuploads%2FA5KisRsUfAFQwijizHuG%2FScreenshot%20from%202024-02-24%2012-46-15.png?alt=media&#x26;token=665081f6-0fbc-4252-ab2f-f5ac20680b39" alt=""><figcaption></figcaption></figure>

### Native application

The public client is installed and executed on the device used by the resource owner.

<figure><img src="https://3490214077-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAHT7avzIVwxfPJ4pkhhO%2Fuploads%2FjUKzwJOFXBnHAsTWBp6t%2FScreenshot%20from%202024-02-24%2012-46-15.png?alt=media&#x26;token=860a29fe-4ce3-4612-b5ce-2ea02a188ea8" alt=""><figcaption></figcaption></figure>

## Registration (in an OAuth server)

Clients accessing OAuth servers must be previously registered.

* Nevertheless, the standard does not exclude unregistered clients.
* **A registered client is given a unique identifier**, a ClientID.

Registration includes both informational, legal and operational information.

* Redirection URLs
* Acceptance of legal terms
* Application (client) name, logo, website, description
* Client type
* Client authentication method (for confidential clients)
