公用用戶端和機密用戶端應用程式

Microsoft 驗證程式庫 (MSAL) 會定義兩種類型的用戶端:公用用戶端和機密用戶端。 這兩種用戶端類型的辨識方式是安全地向授權伺服器進行驗證,並維護其用戶端認證機密性的能力。

  • 機密用戶端應用程式是在伺服器上執行的應用程式 (Web 應用程式、Web API 應用程式,甚或是服務/精靈應用程式)。 這些應用程式被視為難以存取,而基於這個原因可以保存應用程式祕密。 機密用戶端可以保留設定時間祕密。 用戶端的每個執行個體都有不同的設定 (包括用戶端識別碼和用戶端密碼)。 這些值對終端使用者而言都難以擷取。 Web 應用程式是最常見的機密用戶端。 用戶端識別碼是透過網頁瀏覽器公開,但是祕密只會在後端通道中傳遞,永遠不會直接公開。

    機密用戶端應用程式:

    Web appWeb APIDaemon/service

  • 公用用戶端應用程式是在裝置或桌上型電腦或網頁瀏覽器中執行的應用程式。 這些應用程式不受信任可以安全地保存應用程式祕密,因此只會代表使用者存取 Web API。 (僅支援公用用戶端流程。) 公用用戶端無法保存設定時間祕密,因此沒有用戶端密碼。

    公用用戶端應用程式:

    Desktop appBrowserless APIMobile app

在 MSAL.js 中,不會區分公用和機密用戶端應用程式。 MSAL.js 將用戶端應用程式表示為以使用者代理程式為基礎的應用程式、公用用戶端,用戶端程式碼在其中於如同網頁瀏覽器的使用者代理程式中執行。 這些用戶端不會儲存祕密,因為瀏覽器內容可供公開存取。

比較用戶端類型

以下是公用和機密用戶端應用程式之間的一些相似之處和差異:

  • 這兩種類型的應用程式都會維護使用者權杖快取,而且可以透過無訊息方式取得權杖 (當權杖已經在權杖快取中時)。 機密用戶端應用程式也有應用程式權杖快取,適用於應用程式本身的權杖。
  • 這兩種類型的應用程式都會管理使用者帳戶,而且可以從使用者權杖快取取得帳戶、從其識別碼取得帳戶,或移除帳戶。
  • 公用用戶端應用程式有四種方式可取得權杖 (四個驗證流程)。 機密用戶端應用程式有三種方式可取得權杖 (以及用來計算識別提供者授權端點 URL 的一種方式)。 如需詳細資訊,請參閱取得權杖

在 MSAL 中,用戶端識別碼 (也稱為應用程式識別碼App 識別碼) 會在建構應用程式時傳遞。 當應用程式取得權杖時,不需要再次傳遞。 對於公用和機密用戶端應用程式都是如此。 機密用戶端應用程式的建構函式也會傳遞用戶端認證:與識別提供者共用的祕密。

後續步驟

如需應用程式設定和具現化的詳細資訊,請參閱: