Microsoft 身分識別平台驗證程式庫
下表顯示數種應用程式類型的 Microsoft 驗證程式庫支援。 其中包含程式庫原始程式碼、取得應用程式專案套件的位置,以及程式庫是否支援使用者登入 (驗證) 和/或存取受保護的 Web API (授權)。
Microsoft 身分識別平台已由 OpenID Foundation 認證為認證 OpenID 提供者。 如果您想要使用 Microsoft 驗證程式庫以外的程式庫 (MSAL) 或其他 Microsoft 支援的程式庫,請選擇一個具有認證 OpenID Connect 實作。
如果您選擇硬式編碼 OAuth 2.0 or 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 應用程式的程式碼會在網頁伺服器上執行,因此會被視為可以安全地儲存祕密的機密用戶端。
語言/架構 | 專案平台 GitHub |
套件 | 開始 啟動 |
登入使用者 | 存取 Web API | 正式發行 (GA) 或 公開預覽1 |
|
---|---|---|---|---|---|---|---|
.NET | MSAL.NET | Microsoft.Identity.Client | — | GA | |||
.NET | Microsoft.IdentityModel | Microsoft.IdentityModel | — | 2 | 2 | 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) 的概觀。