分享方式:


Microsoft 身分識別平台內的識別碼權杖

識別碼權杖是可作為驗證證明的安全性權杖類型,確認已成功驗證使用者。 識別碼權杖中的資訊可讓用戶端確認使用者是否為其所宣稱的身分,與會議的名稱標記類似。 授權伺服器會發出識別碼權杖,其中包含的宣告會附帶使用者相關資訊。 其可以連同或取代存取權杖來進行傳送,而且一律為 JWT (JSON Web 權杖) 格式。

識別碼權杖與可作為授權證明的存取權杖不同。 保密用戶端應該驗證識別碼權杖。 您不應該使用識別碼權杖來呼叫 API。

第三方應用程式旨在了解識別碼權杖。 識別碼權杖不應該用於授權用途。 存取權杖用於進行授權。 識別碼權杖所提供的宣告可以用於應用程式內部的 UX、作為資料庫中的索引鍵,以及提供用戶端應用程式的存取權。 如需識別碼權杖中所使用宣告的詳細資訊,請參閱識別碼權杖宣告參考。 如需宣告型授權的詳細資訊,請參閱驗證宣告來保護應用程式和 API

權杖格式

Microsoft 身分識別平台中有兩種可用的識別碼權杖版本:v1.0 和 v2.0。 這些版本會決定權杖中的宣告。 v1.0 和 v2.0 識別碼權杖中所攜帶的資訊有差異。 版本是取決於要求所在的端點。 新的應用程式應該使用 v2.0。

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

範例 v1.0 識別碼權杖

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

請在 jwt.ms 中檢視此 v1.0 範例權杖。

範例 v2.0 識別碼權杖

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

請在 jwt.ms 中檢視此 v2.0 範例權杖。

權杖存留期

根據預設,識別碼權杖的有效時間為一小時,一小時之後,用戶端必須取得新的識別碼權杖。

您可以調整識別碼權杖的存留期,以控制用戶端應用程式讓應用程式工作階段到期,並要求使用者重新進行驗證的頻率,無論是無訊息方式或互動方式。 如需詳細資訊,請參閱可設定的權杖存留期

驗證權杖

若要驗證識別碼權杖,用戶端可以檢查權杖是否已遭到竄改。 用戶端還可以驗證簽發者,以確保正確的簽發者已傳回權杖。 識別碼權杖一律是 JWT 權杖,因此有許多程式庫可用來驗證這些權杖;您應該使用其中一個程式庫,而不需自己執行此作業。 只有保密用戶端應該驗證識別碼權杖。 如需詳細資訊,請參閱驗證宣告來保護應用程式和 API

公用應用程式 (程式碼完全在您無法控制的裝置或網路,例如使用者的瀏覽器或家用網路上) 無法運用驗證識別碼權杖的優勢。 在此執行個體中,惡意使用者可以攔截和編輯用來驗證權杖的金鑰。

驗證權杖上的簽章之後,應該在識別碼權杖中驗證下列 JWT 宣告。 權杖驗證程式庫也可能驗證下列宣告:

  • 時間戳記:iatnbfexp 時間戳記應該全部落在目前時間的前後 (視情況而定)。
  • 對象:aud 宣告應符合您應用程式的應用程式識別碼。
  • Nonce:承載中的 nonce 宣告必須符合在初始要求期間傳入 /authorize 端點的 nonce 參數。