教學課程:準備 iOS/macOS 應用程式以進行原生驗證
適用於: iOS (Swift) macOS (Swift)
本教學課程示範如何將 Microsoft 驗證庫 (MSAL) 原生驗證 SDK 架構新增至 iOS/macOS Swift 應用程式。
在本教學課程中,您會了解如何:
- 將 MSAL 架構新增至 iOS/macOS 應用程式。
- 建立 SDK 執行個體。
必要條件
- Xcode
- 如果您尚未這麼做,請遵循使用原生驗證來登入範例 iOS (Swift) 行動應用程式中的使用者中的指示,並在外部租用戶註冊應用程式。 請務必完成下列步驟:
- 註冊應用程式。
- 啟用公用用戶端和原生驗證流程。
- 授與 API 權限。
- 建立使用者流程。
- 將應用程式與使用者流程建立關聯。
- iOS/macOS 專案
將 MSAL 架構新增至 iOS/macOS 應用程式
- 在 Xcode 中開啟 iOS/macOS 專案。
- 從 [檔案] 功能表中選取 [新增套件相依性...]。
- 輸入
https://github.com/AzureAD/microsoft-authentication-library-for-objc
作為套件 URL,然後選擇 [新增套件]。 - 將新的鑰匙圈群組新增至專案的 [功能]。 使用
com.microsoft.adalcache
(在 iOS 止) 和com.microsoft.identity.universalstorage
(在 macOS 上)。
如需將 MSAL 新增至專案的詳細資訊和其他機制,請參閱專案讀我檔案。
建立 SDK 執行個體
在
ViewController
類別頂端新增import MSAL
,以將 MSAL 程式庫匯入至檢視控制器。將
nativeAuth
成員變數新增至ViewController
類別,方法是在viewDidLoad()
函式之前新增下列程式碼:var nativeAuth: MSALNativeAuthPublicClientApplication!
接下來,將下列程式碼新增至
viewDidLoad()
函式:do { nativeAuth = try MSALNativeAuthPublicClientApplication( clientId: "Enter_the_Application_Id_Here", tenantSubdomain: "Enter_the_Tenant_Subdomain_Here", challengeTypes: [.OOB] ) print("Initialized Native Auth successfully.") } catch { print("Unable to initialize MSAL \(error)") }
將下列值取代為來自 Microsoft Entra 系統管理中心的值:
尋找
Enter_the_Application_Id_Here
,並將其取代為您稍早所註冊應用程式的應用程式 (用戶端) 識別碼。尋找
Enter_the_Tenant_Subdomain_Here
,並將其取代為目錄 (租用戶) 子網域。 例如,如果您的租用戶主要網域是contoso.onmicrosoft.com
,請使用contoso
。 如果您沒有目錄 (租用戶) 子網域,請了解如何讀取租用戶詳細資料。查問類型為值清單,應用程式會利用其值通知 Microsoft Entra 有關其支援的驗證方法。
- 針對具有電子郵件一次性密碼的註冊和登入流程,請使用
[.OOB]
。 - 針對具有電子郵件和密碼的註冊和登入流程,請使用
[.OOB, .password]
。 - 針對自助式密碼重設 (SSPR),請使用
[.OOB]
。
深入瞭解查問類型。
- 針對具有電子郵件一次性密碼的註冊和登入流程,請使用
若要建置,請在專案工具列中選取 [產品]>[建置]。
選用:記錄設定
MSAL 會提供記錄 API,您可以用來啟用和設定記錄。 若要查看來自 MSAL 的所有偵錯輸出,請在 viewDidLoad()
函式開頭新增下列程式碼:
MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
if !containsPII {
print("MSAL: \(message ?? "")")
}
}
這會從 MSAL 輸出所有偵錯記錄,此舉有助於診斷問題,並了解原生驗證流程的運作方式。 若要深入了解如何設定記錄層級和最佳做法,請參閱 iOS/macOS 版 MSAL 中的記錄。