權杖和宣告概觀
集中式識別提供者特別適用於全球各地不需要從企業網路登入應用程式的使用者。 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。
權杖的有效時間有限,因此授權伺服器經常提供一組權杖。 提供存取權杖,可存取應用程式或受保護的資源。 提供重新整理權杖,用來在存取權杖即將過期時重新整理存取權杖。
存取權杖會傳遞至 Web API 作為 Authorization
標頭中的持有人權杖。 應用程式可將重新整理權杖提供給授權伺服器。 如果未撤銷使用者對應用程式的存取權,則會取得新的存取權杖和新的重新整理權杖。 當授權伺服器收到重新整理權杖時,僅在使用者仍獲得授權時,才會發出另一個存取權杖。
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 (僅限應用程式) |
另請參閱
下一步
- 若要了解驗證和授權的基本概念,請參閱驗證與授權。