Condividi tramite


Token ID in Microsoft Identity Platform

I token ID sono un tipo di token di sicurezza che funge da prova di autenticazione, confermando che un utente è stato autenticato correttamente. Le informazioni nei token ID consentono al client di verificare che un utente sia chi dichiara di essere, simile ai tag dei nomi in una conferenza. Il server di autorizzazione rilascia token ID che contengono attestazioni che trasmettono informazioni sull'utente. Possono essere inviati insieme o invece di un token di accesso e sono sempre formato JWT (token Web JSON).

I token ID differiscono dai token di accesso, che fungono da prova di autorizzazione. I client riservati devono convalidare i token ID. Non è consigliabile usare un token ID per chiamare un'API.

Le applicazioni di terze parti sono destinate a riconoscere i token ID. I token ID non devono essere usati a scopo di autorizzazione. I token di accesso vengono usati per l'autorizzazione. Le attestazioni che fornisce possono essere usate per definire l'esperienza utente all'interno dell'applicazione, compilare un database e consentire l'accesso all'applicazione client. Per altri dettagli sulle attestazioni usate nel token ID, vedere Riferimento attestazioni token ID. Per ulteriori informazioni sull'uso delle autorizzazioni basate sulle attestazioni, vedere Proteggere applicazioni e API convalidando le attestazioni.

Formati del token

In Microsoft Identity Platform sono disponibili due versioni di token ID: v1.0 e v2.0. Queste versioni determinano le attestazioni presenti nel token. I token ID v1.0 e v2.0 presentano differenze nelle informazioni che contengono. La versione è basata sull'endpoint da cui è stato richiesto. Le nuove applicazioni dovrebbero usare v2.0.

  • v1.0: https://login.microsoftonline.com/common/oauth2/authorize
  • v2.0: https://login.microsoftonline.com/common/oauth2/v2.0/authorize

Token ID v1.0 campione

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyIsImtpZCI6IjdfWnVmMXR2a3dMeFlhSFMzcTZsVWpVWUlHdyJ9.eyJhdWQiOiJiMTRhNzUwNS05NmU5LTQ5MjctOTFlOC0wNjAxZDBmYzljYWEiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC9mYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkvIiwiaWF0IjoxNTM2Mjc1MTI0LCJuYmYiOjE1MzYyNzUxMjQsImV4cCI6MTUzNjI3OTAyNCwiYWlvIjoiQVhRQWkvOElBQUFBcXhzdUIrUjREMnJGUXFPRVRPNFlkWGJMRDlrWjh4ZlhhZGVBTTBRMk5rTlQ1aXpmZzN1d2JXU1hodVNTajZVVDVoeTJENldxQXBCNWpLQTZaZ1o5ay9TVTI3dVY5Y2V0WGZMT3RwTnR0Z2s1RGNCdGsrTExzdHovSmcrZ1lSbXY5YlVVNFhscGhUYzZDODZKbWoxRkN3PT0iLCJhbXIiOlsicnNhIl0sImVtYWlsIjoiYWJlbGlAbWljcm9zb2Z0LmNvbSIsImZhbWlseV9uYW1lIjoiTGluY29sbiIsImdpdmVuX25hbWUiOiJBYmUiLCJpZHAiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaXBhZGRyIjoiMTMxLjEwNy4yMjIuMjIiLCJuYW1lIjoiYWJlbGkiLCJub25jZSI6IjEyMzUyMyIsIm9pZCI6IjA1ODMzYjZiLWFhMWQtNDJkNC05ZWMwLTFiMmJiOTE5NDQzOCIsInJoIjoiSSIsInN1YiI6IjVfSjlyU3NzOC1qdnRfSWN1NnVlUk5MOHhYYjhMRjRGc2dfS29vQzJSSlEiLCJ0aWQiOiJmYTE1ZDY5Mi1lOWM3LTQ0NjAtYTc0My0yOWYyOTU2ZmQ0MjkiLCJ1bmlxdWVfbmFtZSI6IkFiZUxpQG1pY3Jvc29mdC5jb20iLCJ1dGkiOiJMeGVfNDZHcVRrT3BHU2ZUbG40RUFBIiwidmVyIjoiMS4wIn0=.UJQrCA6qn2bXq57qzGX_-D3HcPHqBMOKDPx4su1yKRLNErVD8xkxJLNLVRdASHqEcpyDctbdHccu6DPpkq5f0ibcaQFhejQNcABidJCTz0Bb2AbdUCTqAzdt9pdgQvMBnVH1xk3SCM6d4BbT4BkLLj10ZLasX7vRknaSjE_C5DI7Fg4WrZPwOhII1dB0HEZ_qpNaYXEiy-o94UJ94zCr07GgrqMsfYQqFR7kn-mn68AjvLcgwSfZvyR_yIK75S_K37vC3QryQ7cNoafDe9upql_6pB2ybMVlgWPs_DmbJ8g0om-sPlwyn74Cc1tW3ze-Xptw_2uVdPgWyqfuWAfq6Q

Questo token v1.0 di esempio viene visualizzato in jwt.ms.

Token ID v2.0 campione

eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjFMVE16YWtpaGlSbGFfOHoyQkVKVlhlV01xbyJ9.eyJ2ZXIiOiIyLjAiLCJpc3MiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vOTEyMjA0MGQtNmM2Ny00YzViLWIxMTItMzZhMzA0YjY2ZGFkL3YyLjAiLCJzdWIiOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFJa3pxRlZyU2FTYUZIeTc4MmJidGFRIiwiYXVkIjoiNmNiMDQwMTgtYTNmNS00NmE3LWI5OTUtOTQwYzc4ZjVhZWYzIiwiZXhwIjoxNTM2MzYxNDExLCJpYXQiOjE1MzYyNzQ3MTEsIm5iZiI6MTUzNjI3NDcxMSwibmFtZSI6IkFiZSBMaW5jb2xuIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiQWJlTGlAbWljcm9zb2Z0LmNvbSIsIm9pZCI6IjAwMDAwMDAwLTAwMDAtMDAwMC02NmYzLTMzMzJlY2E3ZWE4MSIsInRpZCI6IjkxMjIwNDBkLTZjNjctNGM1Yi1iMTEyLTM2YTMwNGI2NmRhZCIsIm5vbmNlIjoiMTIzNTIzIiwiYWlvIjoiRGYyVVZYTDFpeCFsTUNXTVNPSkJjRmF0emNHZnZGR2hqS3Y4cTVnMHg3MzJkUjVNQjVCaXN2R1FPN1lXQnlqZDhpUURMcSFlR2JJRGFreXA1bW5PcmNkcUhlWVNubHRlcFFtUnA2QUlaOGpZIn0.1AFWW-Ck5nROwSlltm7GzZvDwUkqvhSQpm55TQsmVo9Y59cLhRXpvB8n-55HCr9Z6G_31_UbeUkoz612I2j_Sm9FFShSDDjoaLQr54CreGIJvjtmS3EkK9a7SJBbcpL1MpUtlfygow39tFjY7EVNW9plWUvRrTgVk7lYLprvfzw-CIqw3gHC-T7IK_m_xkr08INERBtaecwhTeN4chPC4W3jdmw_lIxzC48YoQ0dB1L9-ImX98Egypfrlbm0IBL5spFzL6JDZIRRJOu8vecJvj1mq-IUhGt0MacxX8jdxYLP-KUu2d9MbNKpCKJuZ7p8gwTL5B7NlUdh_dmSviPWrw

Questo token v2.0 di esempio viene visualizzato in jwt.ms.

Durata dei token

Per impostazione predefinita, un token ID è valido per un'ora, trascorsa un'ora, il client deve acquisire un nuovo token ID.

È possibile regolare la durata del token ID per controllare con quale frequenza si verifica la scadenza di una sessione in un'applicazione client ed è necessario eseguire nuovamente l'autenticazione dell'utente in modo automatico o interattivo. Per altre informazioni, vedere Durate dei token configurabili.

Convalidare i token

Per convalidare un token ID, il client può verificare se il token è stato manomesso. Può anche convalidare l'autorità emittente per assicurarsi che l'autorità di certificazione corretta abbia inviato il token. Poiché i token ID sono sempre token JWT, esistono molte librerie per la convalida dei token; si dovrebbe usare una di queste librerie anziché crearla manualmente. Solo i client riservati devono convalidare i token ID. Per altre informazioni, vedere Proteggere applicazioni e API mediante la convalida delle attestazioni.

Le applicazioni pubbliche, ossia con codice in esecuzione interamente in un dispositivo o in una rete non sotto controllo, come il browser di un utente o la rete domestica, non traggono vantaggio dalla convalida del token ID. In questo caso, un utente malintenzionato può intercettare e modificare le chiavi usate per la convalida del token.

È necessario convalidare le attestazioni JWT seguenti nel token ID dopo la convalida della firma nel token. La libreria di convalida dei token può anche convalidare le attestazioni seguenti:

  • Timestamp: i timestamp iat, nbf e exp devono essere tutti registrati prima o dopo l'ora corrente, in base alle esigenze.
  • Destinatario: l'attestazione aud deve corrispondere all'ID app della propria applicazione.
  • Nonce: l'attestazione nonce nel payload deve corrispondere al parametro nonce passato all'endpoint /authorize durante la richiesta iniziale.