# OAuth 2 Roles

OAuth 2 définit 4 rôles.

### Resource Owner

Une entité disposant de la légitimité et du pouvoir décisionnel lui permettant d’autoriser l’accès à une ou plusieurs ressources protégées.

*E.g.: L’utilisateur des services google qui souhaite autoriser une application d'agrégation d'agendas à accéder à son agenda.*

### Resource Server

Ce service détient les ressources protégées. Il est capable de répondre aux requêtes d’accès à ces ressources en fonction des *access tokens* présentés.

*E.g. : Google Calendar.*

### Client

Une application émettant des requêtes à destination du **Resource Server** au nom du **Resource Owner** et avec son autorisation.\
Le **Client** peut être entièrement frontend *(Web / Progressive Web App / Mobile Web App / Desktop etc…)* ou backend *(Serveur / Minitel etc…)*.

*E.g. : L’application d’agrégation d’agendas.*

Nous distinguerons deux types de **Clients**

#### Confidential

Capable de garder un secret.\
\
\&#xNAN;*E.g. : Backend*

#### Public

Incapable de garder un secret.

*E.g. : Frontend, Single Page App, Progressive Web App, Mobile, Desktop, Appliance…*

### **Authorization Server**

Un serveur qui fournit des *access tokens* après authentification du **Resource Owner** et obtention des autorisations.

*E.g. : Service d’authentification et d’autorisation google. Google accounts.*
