Microsoft 驗證資源庫(MSAL)適用於 iOS 和 macOS 是一個認證 SDK,可透過業界標準的 OAuth2 和 OpenID Connect 無縫整合驗證功能。 它可讓您使用Microsoft身分識別來登入使用者或應用程式。 這些身份包括 Microsoft Entra ID 工作與學校帳號、個人 Microsoft 帳號、社群帳號及客戶帳號。
使用 iOS 和 macOS 的 MSAL,你可以從 Microsoft 身分識別平台 取得安全令牌,以驗證使用者身份並存取其應用程式的安全網頁 API。 函式庫支援多種認證情境,如單一登入(SSO)、條件存取及經紀驗證。
MSAL 的原生驗證支援
MSAL iOS 提供原生認證 API,讓應用程式能在其行動應用程式中實現端對端可自訂流程的原生體驗。 透過原生認證,使用者能在不離開應用程式的情況下,完成豐富、原生、以行動裝置為優先的註冊與登入旅程。 原生驗證功能僅適用於 External ID for customers 上的行動應用程式。 macOS 不被支援。 建議始終使用最新版本的 SDK。
適用於 iOS 和 macOS 的 MSAL 入門概念文件
MSAL 文件涵蓋常見模式、錯誤處理與除錯最佳做法、額外的函式庫功能(例如日誌記錄、遙測),以及任何目前仍存在的錯誤,或具有已知緩解方式的常見問題。 如果你想了解更多關於使用 Microsoft Entra ID、Microsoft 帳戶的幫助,可以參考 Microsoft 身分識別平台 文件。如果你想了解更多關於 Microsoft Graph API 的資訊,可以參考 Microsoft Graph 文件。要有效使用 MSAL iOS 和 macOS 來保護您的應用程式,熟悉以下概念非常重要:
- 了解 iOS 版 MSAL 與 macOS 版的差異
- 在 Microsoft Entra 註冊你的應用程式
- 安裝適用於 iOS 和 macOS 的 MSAL,並將您的專案設定為使用此程式庫
- 取得憑證 以存取受保護的 API
要在您的應用程式中使用 MSAL iOS 和 macOS,您需要在 Microsoft Entra 管理中心註冊應用程式並設定專案。 由於 SDK 支援瀏覽器委派與原生認證體驗,請依照你的情境依照這些快速入門中的步驟操作。
關於瀏覽器委派驗證的情境,請參考快速啟動、登入使用者並從 iOS 或 macOS 應用程式呼叫 Microsoft Graph。
關於 iOS 應用程式的原生認證情境,請參考 Microsoft Entra 外部 ID 範例指南《執行 iOS 範例應用程式》。
支援的版本
iOS - MSAL 支援 iOS 14 及以上版本。
macOS - MSAL 支援 macOS (OSX) 10.13 及以上版本。
適用於 iOS 的 Microsoft 驗證程式庫 與 macOS 的主要差異
本節說明 iOS 版 Microsoft 驗證資源庫(MSAL)與 macOS 在功能上的差異。
Note
在 Mac 上,MSAL 只支援 macOS 應用程式。
一般差異
macOS 版 MSAL 是 iOS 功能中的一個子集。
macOS 版 MSAL 不支援:
- 不同的瀏覽器類型,如
ASWebAuthenticationSession、SFAuthenticationSessionSFSafariViewController、 。 - macOS 不支援透過 Microsoft Authenticator 應用程式的經紀驗證。
同一發行商的應用程式間的鑰匙串分享在 macOS 10.14 及更早版本上較為有限。 使用 存取控制清單 來指定應該共享鑰匙圈的應用程式路徑。 使用者可能會看到額外的鑰匙圈提示。
在 macOS 10.15+ 版本中,MSAL 的行為在 iOS 和 macOS 之間是一樣的。 MSAL 使用 鑰匙圈存取群組 來分享鑰匙圈。
條件存取認證
在條件存取情境下,使用 iOS 版 MSAL 時,使用者提示會較少。 這是因為 iOS 使用經紀人應用程式(Microsoft Authenticator),在某些情況下免除了使用者提示的需求。
專案設定
macOS
- 當你在 macOS 上架設專案時,請確保你的應用程式已簽署有效的開發或生產證書。 MSAL 在未簽名模式下仍可運作,但在快取持久性方面會有所不同。 此應用程式僅應在偵錯用途下以未簽署方式執行。 如果你以未簽名的方式發佈應用程式,它將:
- 在 10.14 版本及更早版本中,MSAL 每次重啟應用程式時都會提示使用者輸入鑰匙圈密碼。
- 在 10.15 以上版本中,MSAL 會在每次取得權杖時提示使用者輸入認證資訊。
- macOS 應用程式不需要實作 AppDelegate 呼叫。
iOS
- 還需要額外步驟,才能將您的專案設定為支援認證代理流程。 教學中會說明這些步驟。
- iOS 專案需要在 info.plist 註冊自訂方案。 macOS 上不需要這個。
從 Azure Active Directory Authentication Library (ADAL) 遷移
Objective-C 的Azure Active Directory認證函式庫(ADAL)已於 2023 年 6 月 30 日起被棄用。 如果您或您的組織正在使用 Azure Active Directory 認證函式庫(ADAL),您應該遷移到 MSAL,以避免讓您的應用程式安全受到風險。
Samples
請參閱 我們完整的範例清單。
尋求 SDK 的協助
如果你對 MSAL SDK 有疑問、在文件中發現錯誤或需要推薦,請建立一個包含細節的 Github 議題 。