Docs Italia beta

Documenti pubblici, digitali.

7.3. ID Token

L’ID Token è un JSON Web Token (JWT) che contiene informazioni sull’utente che ha eseguito l’autenticazione. I Client devono eseguire la validazione dell’ID Token.

Esempio di ID Token:

{
 "iss": "https://rp.spid.agid.gov.it/",
 "sub": "OP-1234567890",
 "aud": "https://op.spid.agid.gov.it/auth",
 "acr": "https://www.spid.gov.it/SpidL2",
 "at_hash": "qiyh4XPJGsOZ2MEAyLkfWqeQ",
 "iat": 1519032969,
 "nbf": 1519032969,
 "exp": 1519033149,
 "jti": "nw4J0zMwRk4kRbQ53G7z",
 "nonce": "MBzGqyf9QytD28eupyWhSqMj78WNqpc2"
}
Parametro Descrizione Validazione
Iss Identificatore dell’OP che lo contraddistingue univocamente nella federazione nel formato Uniform Resource Locator (URL). Il client è tenuto a verificare che questo valore corrisponda all’OP chiamato.
Sub Per il valore di questo parametro fare riferimento allo standard “OpenID Connect Core 1.0”, paragrafo 8.1. “Pairwise Identifier Algorithm”.  
Aud Contiene il client ID. Il client è tenuto a verificare che questo valore corrisponda al proprio client ID.
Acr Livello di autenticazione effettivo. Può essere uguale o superiore a quello richiesto dal client nella Authentication Request.  
at_hash Hash dell’Access Token; il suo valore è la codifica base64url della prima metà dell’hash del valore access_token, usando l’algoritmo di hashing indicato in alg nell’header dell’ID Token. Il client è tenuto a verificare che questo valore corrisponda all’access token restituito insieme all’ID Token.
Iat Data/ora di emissione del token in formato UTC.  
Nbf Data/ora di inizio validità del token in formato UTC. Deve corrispondere con il valore di iat.
{
userinfo: {…}
id_token: {
acr: {…},
nbf: { essential: true},
jti: { essential: true }
}
}
Exp Data/ora di scadenza del token in formato UTC, secondo le modalità definite dall’Agenzia per l’Italia Digitale.  
Jti Identificatore unico dell’ID Token che il client più utilizzare per prevenirne il riuso, rifiutando l’ID Token se già processato. Deve essere di difficile individuazione da parte di un attaccante e composto da una stringa casuale.  
Nonce Stringa casuale generata dal Client per ciascuna sessione utente ed inviata nell’Authentication Request (parametro nonce), finalizzata a mitigare attacchi replay. Il client è tenuto a verificare che coincida con quella inviata nell’Authentication Request.

Riferimenti:

http://openid.net/specs/openid-connect-core-1_0.html#IDToken

https://openid.net/specs/openid-igov-openid-connect-1_0-02.html#rfc.section.3.1