---
# System prepended metadata

title: OAuth 2.0 and OpenID Connect (OIDC)
tags: [Authorization, Security, Authentication, OIDC]

---

# OAuth 2.0 and OpenID Connect (OIDC)
###### tags: `Security` `Authentication` `Authorization` `OIDC`

### OAuth 2.0
Oauth is a authorization protocol. The aim is getting an access token. Client requests an authorization with a callback, after that a code will be sent to the client via the front channel. After that, the client may get the access token via back channel.

### Front Channel, Back Channel
Front channel communication is considered partially safe. Back channel communication is considered safer. Oauth incorporates both of those for their strengths, namely: user interaction and security.

### OpenID Connect
Oauth by default doesn't support authentication. OIDC is an authentication layer on top of Oauth. It sends an id_token which contains user data.

### State
Prevents CSRF

Create a csrf token
```
{
  "afterAuth": "https://www.my-site.com/admin/",
  "proofKey": "Es.wszQ-wqc_N9fR7ppwjqOaD~jADC..."
}
```

and put it in the cookie by b64 (httpOnly, Secure, SameSite=None). Then, hash it while sending to the server. Compare hashes.

### Nonce
For replay attacks



### Reference
OAuth 2.0 and OpenID Connect (in plain English)
https://www.youtube.com/watch?v=996OiexHze0