Protocols Flashcards

1
Q

Cos’è OAuth2 ?

A

Framework che da la possibilità ad un applicazioni di terze parti l’accesso ad un servizio HTTP; questo per conto di un “resource owner” orchestrando un processo di approvazione tra l’owner e il servizio HTTP, sia permettendo l’accesso al servizio web per conto proprio.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

OAuth2 è un protocollo di autenticazione?

A

No, è un protocollo di autorizzazione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cos’è un Access Token di OAuth2?

A

Stringa che rappresenta la facoltà di accesso ad un risorsa per conto del resource owner. Esso è sempre dotato di expiration date.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qual è il formato di un Access token di Oauth2?

A

Il framework non stabilisce esattamente come il token debba essere costituito. Uno dei formati più utilizzati è il JSON Web Token (JWT)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Come è possibile includere un OAuth2 token in una richiesta ad un HTTP service?

A
  1. Nell’Header HTTP, secondo il formato Authorization: Bearer TOKEN. Dove con bearer si intende che chiunque presenta quel token ha il diritto ad usarlo.
  2. Nel body di una richiesta HTTP.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cos’è un Refresh Token di OAuth2?

A

Token quale da il diritto di rinnovare un access token. Normalmente è caratterizzato da una durata maggiore rispetto ad una access token.

Anche in questo caso il formato non è ben definito, quello che però deve indicare è:
- Access token
- refresh token
- scope

e altri campi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quali sono i ruoli previsti dal framework OAuth2?

A
  • Resource Owner: entità che dispone di una risorsa web e che ne concede l’accesso.
  • Client: Risorsa che in possesso di un Access Token o Authentication Token, attraverso le API di un messe a disposizione da un HTTP Service, richiede l’accesso alle risorse di un owner.
  • Authorization server: entità incaricata di raccogliere il consenso di accesso dell’utente a valle di un autenticazione di quest’ultimo operazione effettuata mediante l’esposizione di un endpoint di autenticazione ed emettere un access token sempre mediante un apposito endpoint e.g. /token
  • Http Service : server responsabile di esporre un API per l’accesso alle risorse e accogliere l’access token del client, quale deve essere posto in un processo di validazione.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cos’è un Authorization Code in OAuth2?

A

Codice di Autorizzazione generato dall’authorization server il quale è destinato al client. Esso, insieme ad altre informazioni quali:
- client_id
- secret
- grant_type

viene utilizzato per richiedere una access token.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Cosa sono i Grants in OAuth2?

A

Insieme di step che il client deve eseguire effettuare l’accesso alla risorsa.
Esistono diversi tipi di grant:

  • Authorizaton Code Grant: Il client, presenta l’authorization code, client_id e secret per recuperare l’access token
  • Client Credentials Grant type: Utilizzato per autorizzazioni service-to-serivce e richiede che il client fornisca all’auth server semplicemente: client_id e secret

-Refresth token grant: rigeneriamo un token a partire da un refresh token

  • Implicint Grant: il token viene restituito al client direttamente come parametro della callback URI oppure come un form di risposta. Il primo caso è deprecato per ovvi motivi.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Come funziona OAuth2 in modalità Autorization Code Grant?

A

Resource Owner = RO
Client = C
Authentication Server = AS
Resource Server = RS

  1. RO > C : resource access
  2. C > RO : client_id, link=callback uri, scope, state
  3. RO > AS: follow the redirect
  4. RO > AS: autenticate an accept resource access
  5. AS > RO: authentication_code, state
  6. RO > C : authentication_code, state
  7. C > AS: authentication_code, client_id, client_secret, grant_type
  8. AS > C : access_token, refresh_token
  9. C > RS: authorization: Bearer access_token
  10. RS > C: resource

Il protocollo non definisce come garantire l’autenticità del token, un modo per farlo è mediante crittografia asimmetrica, in cui la AS, firma il token JWT con una chiave privata, il RS valida la firma mediante la chiave pubblica e ricalcola l’hash.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly