Indica l'ora in cui il token è stato rilasciato, rappresentata come valore epoch time.This claim is the time at which the token was issued, represented in epoch time.

ScadenzaExpiration time

exp

1438539443

Indica l'ora di scadenza del token, rappresentata come valore epoch time.The expiration time claim is the time at which the token becomes invalid, represented in epoch time.L'app deve usare questa attestazione per verificare la validità della durata del token.Your app should use this claim to verify the validity of the token lifetime.

Non primaNot before

nbf

1438535543

Indica l'ora di inizio della validità del token, rappresentata come valore epoch time.This claim is the time at which the token becomes valid, represented in epoch time.Equivale in genere all'ora di rilascio del token.This is usually the same as the time the token was issued.L'app deve usare questa attestazione per verificare la validità della durata del token.Your app should use this claim to verify the validity of the token lifetime.

VersionVersion

ver

1.0

Versione del token ID, definita da Azure AD.This is the version of the ID token, as defined by Azure AD.

I token di aggiornamento sono e saranno sempre, completamente opachi per l'app.Refresh tokens are, and will always be, completely opaque to your app.Vengono rilasciati da Azure AD e possono essere controllati e interpretati solo da Azure AD.They are issued by Azure AD and can be inspected and interpreted only by Azure AD.Hanno lunga durata, ma l'app non deve essere scritta in base a una durata specifica prevista per il token di aggiornamento.They are long-lived, but your app should not be written with the expectation that a refresh token will last for a specific period of time.I token di aggiornamento possono essere annullati in qualsiasi momento per vari motivi.Refresh tokens can be invalidated at any moment for a variety of reasons.L'unico modo per l'app di sapere se un token di aggiornamento è valido è tentare di riscattarlo mediante una richiesta di token al Azure AD.The only way for your app to know if a refresh token is valid is to attempt to redeem it by making a token request to Azure AD.

Convalida dei tokenToken validation

Sono disponibili molte librerie open source per la convalida dei token JWT, a seconda del linguaggio preferito.Many open source libraries are available for validating JWTs, depending on your preferred language.È consigliabile prendere in esame tali opzioni anziché implementare una logica di convalida personalizzata.We recommend that you explore those options rather than implement your own validation logic.Le informazioni contenute in questa guida permettono di imparare a usare correttamente tali librerie.The information in this guide can help you learn how to properly use those libraries.

convalidare la firmaValidate the signature

Un token JWT contiene tre segmenti separati dal carattere . .A JWT contains three segments, separated by the . character.Il primo segmento costituisce l'intestazione, il secondo è il corpo, il terzo la firma.The first segment is the header, the second is the body, and the third is the signature.Il segmento di firma può essere usato per convalidare l'autenticità del token, in modo che possa essere considerato attendibile dall'app.The signature segment can be used to validate the authenticity of the token so that it can be trusted by your app.

L'attestazione alg indica l'algoritmo usato per firmare il token.The alg claim indicates the algorithm that was used to sign the token.L'attestazione kid indica la chiave pubblica specifica usata per firmare il token.The kid claim indicates the particular public key that was used to sign the token.

In qualsiasi momento Azure AD può firmare un token usando un determinato set di coppie di chiavi pubblica/privata.At any given time, Azure AD can sign a token by using any one of a certain set of public-private key pairs.Azure AD ruota il set di chiavi su base periodica, quindi l'app deve essere scritta in modo da gestire automaticamente le modifiche delle chiavi.Azure AD rotates the possible set of keys periodically, so your app should be written to handle those key changes automatically.Una frequenza ragionevole per la ricerca di aggiornamenti per le chiavi pubbliche usate da Azure AD è di circa 24 ore.A reasonable frequency to check for updates to the public keys used by Azure AD is every 24 hours.

fabrikamb2c.onmicrosoft.com è la directory B2C usata per autenticare l'utente e b2c_1_sign_in sono i criteri usati per acquisire il token.fabrikamb2c.onmicrosoft.com is the B2C directory used to authenticate the user, and b2c_1_sign_in is the policy used to acquire the token.Per determinare quale criterio è stato usato per la firma di un token e la posizione da cui recuperare i metadati, sono disponibili due opzioni.To determine which policy was used to sign a token (and where to go to fetch the metadata), you have two options.Prima di tutto, il nome del criterio è incluso nell'attestazione acr del token.First, the policy name is included in the acr claim in the token.È possibile analizzare le attestazioni all'esterno del corpo del token JWT decodificando il corpo in base 64 e deserializzando la stringa JSON risultante.You can parse claims out of the body of the JWT by base-64 decoding the body and deserializing the JSON string that results.L'attestazione acr è il nome del criterio usato per rilasciare il token.The acr claim will be the name of the policy that was used to issue the token.L'altra opzione consiste nel codificare i criteri nel valore del parametro state quando si rilascia la richiesta, per poi decodificarlo e determinare quali criteri sono stati utilizzati.Your other option is to encode the policy in the value of the state parameter when you issue the request, and then decode it to determine which policy was used.Entrambi i metodi sono validi.Either method is valid.

Il documento metadati è un oggetto JSON che contiene diverse informazioni utili,The metadata document is a JSON object that contains several useful pieces of information.come ad esempio il percorso degli endpoint necessari per eseguire l'autenticazione OpenID Connect.These include the location of the endpoints required to perform OpenID Connect authentication.Include anche un oggetto jwks_uri che fornisce la posizione del set di chiavi pubbliche usate per firmare i token.They also include jwks_uri, which gives the location of the set of public keys that are used to sign tokens.Tale posizione è indicata di seguito, ma è consigliabile recuperarla in modo dinamico usando il documento di metadati e analizzando l'oggetto jwks_uri:That location is provided here, but it is best to fetch the location dynamically by using the metadata document and parsing out jwks_uri:

Il documento JSON in questo URL contiene tutte le informazioni sulla chiave pubblica usata in un determinato momento.The JSON document located at this URL contains all the public key information in use at a particular moment.L'app può usare l'attestazione kid nell'intestazione del token JWT per selezionare la chiave pubblica nel documento JSON usata per firmare un determinato token.Your app can use the kid claim in the JWT header to select the public key in the JSON document that is used to sign a particular token.Può quindi eseguire la convalida della firma usando la chiave pubblica corretta e l'algoritmo indicato.It can then perform signature validation by using the correct public key and the indicated algorithm.

La descrizione della convalida della firma non rientra nelle finalità di questo documento.A description of how to perform signature validation is outside the scope of this document.A tale scopo è possibile consultare le varie librerie open source disponibili.Many open source libraries are available to help you with this if you need it.