OAuth 2.0 – Claims e scopes

Un claim è il meccanismo che consente di associare ad una entità una specifica proprietà.

Claims are assertions – they allow the application to trust attributes about a user.

Il modo piu’ semplice di considerare un claim è quello di paragonarlo ad un attributo: un attributo può avere un nome ed un valore. E’ proprio in questo modo che si presenta un claim.

I claims vengono scambiati all’interno dei tokens: questo significa che i claims provengono da un API oppure dall’iterazione tra OpenID ed il client.

Il client è configurato per ricevere i claims e se durante il processo di gestione il server permette la loro generazione, verranno inseriti all’interno del token.

Nei sistemi dove è fondamentale la comunicazione e scambio di informazioni tra client e server, i claims forniscono un valido punto di partenza.

All’interno di un claim possiamo trovare semplici informazioni come ad esempio l’email dell’utente ma possono anche informazioni piu’ complesse.

Un claim può essere definito utilizzando differenti sintassi anche se normalmente viene codificato con un semplice plain-text.

Uno scope è un gruppo di claims e lo standard prevede una serie di scope predefiniti, come quelli riportati nella tabella:

ScopeClaims
emailemail, email_verified
addressaddress
profilename, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at
phonephone_number, phone_number_verified
openidsub, auth_time, acr

Esiste un particolare tipo di scope, chiamato prefix scope, in cui lo scope è soltanto un prefisso, e lo scope finale dipende dalla richiesta dal client. Ad esempio:

Prefix Scope: read-

Requested Scope: read-diary

Issued Scope: read-diary

Il prefix Scope ambito del prefisso è utile quando sono presenti risorse che devono essere allocate dinamicamente. Il server può implementare criteri per emettere o non emettere questi ambiti secondo necessità.

Se il consenso è abilitato, all’utente verrà presentato un suffisso, diary nell’esempio precedente, per acconsentire.