共用方式為


使用 Microsoft 身分識別平台的應用程式登入流程

本主題討論使用 Microsoft 身分識別平台的 Web、傳統型和行動應用程式的基本登入流程。 若要了解 Microsoft 身分識別平台支援的登入案例,請參閱驗證流程和應用程式案例

Web 應用程式登入流程

當使用者在瀏覽器中瀏覽至 Web 應用程式時,將會發生下列情況:

  • Web 應用程式會判斷使用者是否經過驗證。
  • 如果使用者未經過驗證,Web 應用程式會委派給 Microsoft Entra ID 以登入使用者。 該登入將與組織的原則相容,這可能表示要求使用者輸入其認證、使用多重要素驗證 (有時稱為「雙因素驗證」或 2FA),或完全不使用密碼 (例如使用 Windows Hello)。
  • 系統會要求使用者同意用戶端應用程式所需的存取權。 這就是為什麼用戶端應用程式需要向 Microsoft Entra ID 註冊,因此 Microsoft 身分識別平台可以提供權杖,代表使用者已同意的存取權。

成功驗證使用者之後:

  • Microsoft 身分識別平台會將權杖傳送至 Web 應用程式。
  • 系統會儲存與 Microsoft Entra 網域相關聯的 Cookie,其中包含瀏覽器 Cookie Jar 中使用者的身分識別。 下次應用程式使用瀏覽器瀏覽至 Microsoft 身分識別平台授權端點時,瀏覽器會顯示 Cookie,讓使用者不必再次登入。 這也是達成 SSO 的方式。 Cookie 是由 Microsoft Entra ID 所產生,且只能由 Microsoft Entra ID 來理解。
  • 然後 Web 應用程式會驗證權杖。 如果驗證成功,Web 應用程式會顯示受保護的頁面,並將工作階段 Cookie 儲存在瀏覽器的 Cookie Jar 中。 當使用者瀏覽至另一個頁面時,Web 應用程式會知道使用者是根據工作階段 Cookie 進行驗證。

以下序列圖表摘要說明此互動:

Web 應用程式驗證程序

Web 應用程式如何判斷使用者已經過驗證

Web 應用程式開發人員可以指出所有或只有特定頁面需要驗證。 例如,在 ASP.NET/ASP.NET Core 中,這是藉由將 [Authorize] 屬性新增至控制器動作來完成。

這個屬性會讓 ASP.NET 檢查其中包含使用者身分識別的工作階段 Cookie 是否存在。 如果 Cookie 不存在,ASP.NET 會將驗證重新導向至指定的識別提供者。 如果識別提供者是 Microsoft Entra ID,則 Web 應用程式會將驗證重新導向至 https://login.microsoftonline.com,這會顯示登入對話方塊。

Web 應用程式如何將登入委派給 Microsoft 身分識別平台並取得權杖

使用者驗證會透過瀏覽器進行。 OpenID 通訊協定會使用標準的 HTTP 通訊協定訊息。

  • Web 應用程式會將 HTTP 302 (重新導向) 傳送至瀏覽器,以使用 Microsoft 身分識別平台。
  • 當使用者通過驗證時,Microsoft 身分識別平台會透過瀏覽器使用重新導向,將權杖傳送至 Web 應用程式。
  • 重新導向是由 Web 應用程式以重新導向 URI 的形式提供。 此重新導向 URI 會向 Microsoft Entra 應用程式物件註冊。 可能會有數個重新導向 URI,因為應用程式可以部署在數個 URL 上。 因此,Web 應用程式也需要指定要使用的重新導向 URI。
  • Microsoft Entra ID 會確認 Web 應用程式所傳送的重新導向 URI,是應用程式的其中一個已註冊重新導向 URI。

傳統型和行動應用程式登入流程

上述流程適用於傳統型和行動應用程式,只有些微不同。

傳統型和行動應用程式可以使用內嵌的 Web 控制項或系統瀏覽器來進行驗證。 下圖顯示傳統型或行動應用程式如何使用 Microsoft 驗證程式庫 (MSAL) 來取得存取權杖和呼叫 Web API。

傳統型應用程式的外觀

MSAL 會使用瀏覽器來取得權杖。 就像 Web 應用程式一樣,驗證會委派給 Microsoft 身分識別平台。

因為 Microsoft Entra ID 會如同對 Web 應用程式所執行的動作,在瀏覽器中儲存相同的身分識別 Cookie,所以如果原生或行動應用程式使用系統瀏覽器,則會立即以對應的 Web 應用程式取得 SSO。

根據預設,MSAL 會使用系統瀏覽器。 例外狀況是 .NET Framework 傳統型應用程式,其中內嵌控制項可用來提供更整合的使用者體驗。

下一步

如需涵蓋驗證和授權基本概念的其他主題:

  • 若要了解 Microsoft 身分識別平台中驗證和授權的基本概念,請參閱驗證與授權
  • 若要了解存取權杖、重新整理權杖和識別碼權杖如何用於驗證和授權,請參閱安全性權杖
  • 若要了解註冊應用程式以與 Microsoft 身分識別平台整合的程序,請參閱應用程式模型
  • 請參閱驗證宣告以保護應用程式和 API 的安全 (部分機器翻譯),以了解如何在應用程式中將權杖宣告安全地使用於授權邏輯。

若要深入了解應用程式登入流程:

  • 若要了解 Microsoft 身分識別平台支援的其他驗證使用者案例,請參閱驗證流程和應用程式案例
  • 若要了解可協助您開發應用程式的 Microsoft 程式庫,其全都在單一、簡化的程式設計模型中使用 Microsoft 帳戶、Microsoft Entra 帳戶和 Azure AD B2C 使用者,請參閱 MSAL 程式庫 (部分機器翻譯)。