令牌和宣告概觀

集中式身分識別提供者特別適用於具有不一定從企業網路登入的全球用戶的應用程式。 Microsoft 身分識別平台會驗證使用者並提供安全性權杖,例如存取權杖、重新整理權杖以及識別碼權杖。 安全性權杖允許用戶端應用程式存取資源伺服器上受保護的資源。

  • 存取令牌 - 存取令牌 是授權伺服器在 OAuth 2.0 流程中發行的安全性令牌。 其包含使用者及權杖適用資源的相關資訊。 該資訊可用於存取 Web API 及其他受保護的資源。 資源會驗證存取令牌,以授與用戶端應用程式的存取權。 如需詳細資訊,請參閱 Microsoft 身分識別平台 中的存取令牌。
  • 重新整理令牌 - 因為存取令牌 只在短時間內有效,授權伺服器有時會在發出存取令牌的同時發出重新整理令牌。 用戶端應用程式可以接著交換此重新整理權杖以在需要時取得新的存取權杖。 如需詳細資訊,請參閱重新整理 Microsoft 身分識別平台 中的令牌。
  • 識別碼權杖:識別碼權杖會在 OpenID Connect 流程期間傳送至用戶端應用程式。 此權杖可以連同或取代存取權杖進行傳送。 用戶端會使用識別碼權杖來驗證使用者。 若要深入瞭解 Microsoft 身分識別平台 如何發出標識符令牌,請參閱 Microsoft 身分識別平台 中的標識元令牌。

許多企業應用程式會使用 SAML 來驗證使用者。 如需 SAML 判斷提示的資訊,請參閱 SAML 令牌參考

驗證令牌

它是由產生令牌的應用程式、登入使用者的 Web 應用程式,或呼叫的 Web API 來驗證令牌。 授權伺服器會使用私鑰簽署令牌。 授權伺服器會發佈對應的公鑰。 若要驗證令牌,應用程式會使用授權伺服器公鑰來驗證簽章,以驗證簽章是否使用私鑰建立。 如需詳細資訊,請參閱 驗證宣告 來保護應用程式和 API 一文。

建議您盡可能使用支援的 Microsoft 驗證連結庫 (MSAL)。 這會為您實作令牌的取得、重新整理和驗證。 它也會使用租使用者的 OpenID 已知探索文件,實作符合標準的租用戶設定和密鑰探索。 MSAL 支援許多不同的應用程式架構和平台,包括 .NET、JavaScript、JAVA、Python、Android 和 iOS。

令牌的有效時間有限,因此授權伺服器經常提供一組令牌。 提供存取令牌,以存取應用程式或受保護的資源。 提供重新整理令牌,用來在存取令牌接近到期時重新整理存取令牌。

存取令牌會當做標頭中的 Authorization 持有人令牌傳遞至 Web API。 應用程式可以提供授權伺服器的重新整理令牌。 如果未撤銷應用程式的使用者存取權,它會收到新的存取令牌和新的重新整理令牌。 當授權伺服器收到重新整理令牌時,只有在使用者仍獲得授權時,才會發出另一個存取令牌。

JSON Web 令牌和宣告

Microsoft 身分識別平台 會將安全性令牌實作為包含宣告的 JSON Web 令牌(JWT)。 由於 JWT 會作為安全性令牌使用,因此這種形式的驗證有時稱為 JWT 驗證

宣告會將一個實體的判斷提示提供給另一個實體,例如用戶端應用程式或資源擁有者,例如資源伺服器。 宣告也可能稱為 JWT 宣告或 JSON Web 令牌宣告。

宣告是轉寄令牌主體事實的名稱或值組。 例如,宣告可能包含授權伺服器驗證之安全性主體的相關事實。 特定令牌中的宣告取決於許多專案,例如令牌類型、用來驗證主體的認證類型,以及應用程式組態。

應用程式可以使用宣告來執行下列各種工作:

  • 驗證權杖
  • 識別令牌主體的租使用者
  • 顯示使用者資訊
  • 判斷主體的授權

宣告是由提供下列資訊類型的索引鍵/值組所組成:

  • 產生令牌的安全性令牌伺服器
  • 產生令牌的日期
  • 主旨(例如使用者,但不是精靈)
  • 物件,這是產生令牌的應用程式
  • 要求權杖的應用程式 (用戶端)

令牌端點和簽發者

Microsoft Entra ID 支援兩個租使用者設定:專為內部使用及管理員工和商務來賓所設計的員工設定,以及 針對隔離受限制外部目錄中的取用者和合作夥伴而優化的客戶 設定。 雖然基礎身分識別服務與這兩個租用戶組態相同,但外部租使用者的登入網域和令牌發行授權單位不同。 這可讓應用程式視需要將員工和外部標識碼工作流程分開。

Microsoft Entra 員工租使用者會在 login.microsoftonline.com 向 sts.windows.net 簽發的令牌進行驗證。 員工租使用者令牌通常可跨租使用者和多租使用者應用程式交換,只要基礎信任關係允許此互操作性。 Microsoft Entra 外部租使用者會使用 {tenantname}.ciamlogin.com 格式 的租用戶端點。 向外部租用戶註冊的應用程式必須注意此區隔,才能正確接收和驗證令牌。

每個 Microsoft Entra 租用戶都會發佈符合標準規範的已知元數據。 本檔包含簽發者名稱、驗證和授權端點、支援的範圍和宣告的相關信息。 若為外部租用戶,文件位於: https://{tenantname}.ciamlogin.com/{tenantid}/v2.0/.well-known/openid-configuration。 此端點會傳回簽發者值 https://{tenantid}.ciamlogin.com/{tenantid}/v2.0

授權流程和驗證碼

視用戶端建置方式而定,它可以使用 Microsoft 身分識別平台 支援的一或多個驗證流程。 支援的流程可以產生各種令牌和授權碼,並要求不同的令牌才能運作。 下表提供概觀。

Flow 需要 標識元令牌 存取權杖 重新整理令牌 授權碼
授權碼流程 x x x x
隱含流程 x x
混合式 OIDC 流程 x x
重新整理權杖兌換 重新整理令牌 x x x
代理者流程 存取權杖 x x x
用戶端認證 x (只限應用程式)

使用隱含流程發出的令牌有長度限制,因為它們會使用 URL 傳回瀏覽器,其中 response_modequery 或 或 。 fragment 有些瀏覽器對 URL 的大小有限制,可以放在瀏覽器列,而且當 URL 太長時就會失敗。 因此,這些令牌沒有 groupswids 宣告。

另請參閱

下一步

  • 若要瞭解驗證和授權的基本概念,請參閱 驗證與授權