具有 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 識別碼所產生,且只能由 Microsoft Entra ID 來瞭解。
  • 然後 Web 應用程式會驗證令牌。 如果驗證成功,Web 應用程式會顯示受保護的頁面,並將會話 Cookie 儲存在瀏覽器的 Cookie jar 中。 當使用者流覽至另一個頁面時,Web 應用程式會知道使用者是根據會話 Cookie 進行驗證。

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

web app authentication process

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。

Desktop app how it appears to be

MSAL 會使用瀏覽器來取得令牌。 如同 Web 應用程式,驗證會委派給 Microsoft 身分識別平台。

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

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

下一步

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

  • 請參閱驗證與授權,以瞭解 Microsoft 身分識別平台 中驗證和授權的基本概念。
  • 請參閱 安全性令牌 ,以瞭解如何在驗證和授權中使用存取令牌、重新整理令牌和標識碼令牌。
  • 請參閱應用程式模型,以瞭解註冊應用程式的程式,以便與 Microsoft 身分識別平台 整合。
  • 請參閱 藉由驗證宣告 來保護應用程式和 API,以瞭解如何在應用程式中安全地使用令牌宣告進行授權邏輯。

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

  • 請參閱驗證流程和應用程式案例,以深入瞭解其他案例,以驗證 Microsoft 身分識別平台 支援的使用者。
  • 請參閱 MSAL 連結庫 ,以瞭解可協助您開發使用 Microsoft 帳戶、Microsoft Entra 帳戶和 Azure AD B2C 使用者的應用程式,全都採用單一簡化的程式設計模型。