Microsoft 身分識別平台驗證程式庫
下表顯示數種應用程式類型的 Microsoft 驗證連結庫支援。 其中包括連結庫原始程式碼,其中可取得您 app 專案的套件,以及連結庫是否支援使用者登入(驗證)、受保護 Web API 的存取權或兩者。
Microsoft 身分識別平台 已由 OpenID Foundation 認證為認證的 OpenID 提供者。 如果您想要使用 Microsoft 驗證連結庫 (MSAL) 或另一個 Microsoft 支援的連結庫,請選擇具有認證的 OpenID 連線 實作連結庫。
如果您選擇自行撰寫 OAuth 2.0 或 OpenID 連線 1.0 通訊協定層級實作的程式代碼,請密切關注每個標準規格的安全性考慮,並遵循 Microsoft SDL 中的安全軟體設計和開發做法。
單頁應用程式 (SPA)
單頁應用程式會在瀏覽器中完全執行,並在應用程式載入時間動態或擷取頁面數據(HTML、CSS 和 JavaScript)。 它可以呼叫 Web API 來與後端數據源互動。
因為 SPA 的程式代碼會在瀏覽器中完全執行,所以它被視為 無法安全地儲存秘密的公用用戶端 。
語言/ 架構 | 項目開啟 GitHub |
套件 | 取得 啟動 |
登入使用者 | 存取 Web API | 正式推出 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
Angular | MSAL Angular v2 2 | msal-angular | 教學課程 | GA | ||
Angular | MSAL Angular3 | msal-angular | — | GA | ||
AngularJS \(英文\) | MSAL AngularJS3 | msal-angularjs | — | 公開預覽 | ||
JavaScript | MSAL.js v2 2 | msal-browser | 教學課程 | GA | ||
JavaScript | MSAL.js 1.03 | msal-core | — | GA | ||
React | MSAL React2 | msal-react | 教學課程 | GA |
1在線服務的通用授權條款適用於公開預覽中的連結庫。
2僅限 PKCE 驗證程式碼流程 (建議使用)。
3僅限隱含授與流程 (不建議)。
Web 應用程式
Web 應用程式會在產生 HTML、CSS 和 JavaScript 的伺服器上執行程式代碼,並將其傳送至要轉譯的使用者網頁瀏覽器。 使用者的身分識別會維持為用戶瀏覽器(前端)與網頁伺服器(後端)之間的會話。
因為 Web 應用程式的程式代碼會在 Web 伺服器上執行,所以它被視為 可以安全地儲存秘密的機密用戶端 。
語言/ 架構 | 項目開啟 GitHub |
套件 | 取得 啟動 |
登入使用者 | 存取 Web API | 正式推出 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
.NET | MSAL.NET | Microsoft.Identity.Client | — | GA | ||
.NET | Microsoft.IdentityModel | Microsoft.IdentityModel | — | 2 | 2 | GA |
ASP.NET Core | ASP.NET Core | Microsoft.AspNetCore.Authentication | 快速入門 | GA | ||
ASP.NET Core | Microsoft.Identity.Web | Microsoft.Identity.Web | 快速入門 | GA | ||
Java | MSAL4J | msal4j | 快速入門 | GA | ||
Spring | spring-cloud-azure-starter-active-directory | spring-cloud-azure-starter-active-directory | 教學課程 | GA | ||
Node.js | MSAL 節點 | msal-node | 快速入門 | GA | ||
Python | MSAL Python | msal | GA | |||
Python | identity | identity | 快速入門 | -- |
(1)在線服務的通用授權條款適用於公開預覽中的連結庫。
(2) Microsoft.IdentityModel 連結庫只會驗證權杖 - 它無法要求識別碼或存取令牌。
桌面應用程式
傳統型應用程式通常是二進位程式代碼(已編譯的)程序代碼,其會顯示使用者介面,且打算在使用者的桌面上執行。
因為桌面應用程式會在使用者的桌面上執行,所以它被視為 無法安全地儲存秘密的公用用戶端 。
語言/ 架構 | 項目開啟 GitHub |
套件 | 取得 啟動 |
登入使用者 | 存取 Web API | 正式推出 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
Electron | MSAL Node.js | msal-node | — | 公開預覽 | ||
Java | MSAL4J | msal4j | — | GA | ||
macOS (Swift/Obj-C) | 適用於 iOS 和 macOS 的 MSAL | MSAL (部分機器翻譯) | 教學課程 | GA | ||
UWP | MSAL.NET | Microsoft.Identity.Client | 教學課程 | GA | ||
WPF | MSAL.NET | Microsoft.Identity.Client | 教學課程 | GA |
1在線服務的通用授權條款適用於公開預覽中的連結庫。
行動應用程式
行動應用程式通常是二進位程式代碼(已編譯的)程式代碼,其會顯示使用者介面,並打算在使用者的行動裝置上執行。
因為行動應用程式會在使用者的行動裝置上執行,所以它被視為 無法安全地儲存秘密的公用用戶端 。
平台 | 項目開啟 GitHub |
套件 | 取得 啟動 |
登入使用者 | 存取 Web API | 正式推出 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
Android (Java) | MSAL Android | MSAL (部分機器翻譯) | 快速入門 | GA | ||
Android (Kotlin) | MSAL Android | MSAL (部分機器翻譯) | — | GA | ||
iOS (Swift/Obj-C) | 適用於 iOS 和 macOS 的 MSAL | MSAL (部分機器翻譯) | 教學課程 | GA | ||
Xamarin (.NET) | MSAL.NET | Microsoft.Identity.Client | — | GA |
1在線服務的通用授權條款適用於公開預覽中的連結庫。
服務 / 精靈
服務和精靈通常用於伺服器對伺服器和其他自動通訊(有時稱為 無頭通訊)。 由於鍵盤上沒有使用者輸入認證或同意資源存取權,因此這些應用程式會在要求 Web API 資源的授權存取權時自行驗證,而不是使用者。
在伺服器上執行的服務或精靈, 會被視為可以安全地儲存其秘密的機密用戶端 。
語言/ 架構 | 項目開啟 GitHub |
套件 | 取得 啟動 |
登入使用者 | 存取 Web API | 正式推出 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
.NET | MSAL.NET | Microsoft.Identity.Client | 快速入門 | GA | ||
Java | MSAL4J | msal4j | — | GA | ||
節點 | MSAL 節點 | msal-node | 快速入門 | GA | ||
Python | MSAL Python | msal-python | 快速入門 | GA |
1在線服務的通用授權條款適用於公開預覽中的連結庫。
下一步
如需 Microsoft 驗證連結庫的詳細資訊,請參閱 Microsoft 驗證連結庫概觀(MSAL)。