OAUth 2.0 is an open protocol to allow secure authorization in a simple and standard method from web, mobile
and desktop applications.
OAuth2.0 is not about authentication. It's about authorization. The standard doesn't say anything about the user.
It's about what the client application is allowed to do.
Flows:
1. Client Credentials
2. Authorization Code
3. Implicit
4. Resource Owner Password Credentials
Main Actors
1. User (Resource Owner)
2. Client (application)
3. Authorization Server (Identity Server)
4. Resource Server (API)
Clients
1. Confidential Clients - capable of maintaining confidentiality of their credentials (ex MVC app stores client secret in web.cconfig file)
2. Public Clients - client secret cannot be safely stored as the app runs in the browser (ex Angular apps, Native apps)