Microsoft 身分識別平台驗證程式庫
下表顯示數種應用程式類型的Microsoft驗證連結庫支援。 其中包括連結庫原始程式碼,其中可取得您 app 專案的套件,以及連結庫是否支援使用者登入(驗證)、受保護 Web API 的存取權或兩者。
Microsoft 身分識別平台 已由 OpenID Foundation 認證為經認證的 OpenID 提供者。 如果您想要使用 Microsoft 驗證連結庫 (MSAL) 以外的連結庫或其他Microsoft支援的連結庫,請選擇具有 認證的 OpenID Connect 實作連結庫。
如果您選擇自行撰寫 OAuth 2.0 或 OpenID Connect 1.0 通訊協定層級實作的程式碼,請密切關注每個標準規格中的安全性考慮,並遵循安全軟體設計和開發做法,例如Microsoft SDL 中的安全性考慮。
單頁應用程式 (SPA)
單頁應用程式會在瀏覽器中完全執行,並在應用程式載入時間動態或擷取頁面數據(HTML、CSS 和 JavaScript)。 它可以呼叫 Web API 來與後端數據源互動。
因為 SPA 的程式代碼會在瀏覽器中完全執行,所以它被視為 無法安全地儲存秘密的公用用戶端 。
語言/架構 | 專案平台 GitHub |
套件 | 開始 啟動 |
登入使用者 | 存取 Web API | 正式發行 (GA) 或 公開預覽1 |
---|---|---|---|---|---|---|
Angular | MSAL Angular v22 | MSAL Angular | 快速入門 | GA | ||
Angular | MSAL Angular3 | MSAL Angular | — | GA | ||
AngularJS \(英文\) | MSAL AngularJS3 | msal-angularjs | — | 公開預覽 | ||
JavaScript | MSAL.js v22 | 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)。