共用方式為


教學課程:準備 iOS/macOS 應用程式以進行原生驗證

適用於內含白色核取記號的綠色圓圈。 iOS (Swift) 內含白色核取記號的綠色圓圈。 macOS (Swift)

本教學課程示範如何將 Microsoft 驗證庫 (MSAL) 原生驗證 SDK 架構新增至 iOS/macOS Swift 應用程式。

在本教學課程中,您會了解如何:

  • 將 MSAL 架構新增至 iOS/macOS 應用程式。
  • 建立 SDK 執行個體。

必要條件

將 MSAL 架構新增至 iOS/macOS 應用程式

  1. 在 Xcode 中開啟 iOS/macOS 專案。
  2. 從 [檔案] 功能表中選取 [新增套件相依性...]
  3. 輸入 https://github.com/AzureAD/microsoft-authentication-library-for-objc 作為套件 URL,然後選擇 [新增套件]
  4. 將新的鑰匙圈群組新增至專案的 [功能]。 使用 com.microsoft.adalcache (在 iOS 止) 和 com.microsoft.identity.universalstorage (在 macOS 上)。

如需將 MSAL 新增至專案的詳細資訊和其他機制,請參閱專案讀我檔案

建立 SDK 執行個體

  1. ViewController 類別頂端新增 import MSAL,以將 MSAL 程式庫匯入至檢視控制器。

  2. nativeAuth 成員變數新增至 ViewController 類別,方法是在 viewDidLoad() 函式之前新增下列程式碼:

    var nativeAuth: MSALNativeAuthPublicClientApplication!
    
  3. 接下來,將下列程式碼新增至 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)")
     }
    
  4. 將下列值取代為來自 Microsoft Entra 系統管理中心的值:

    1. 尋找 Enter_the_Application_Id_Here,並將其取代為您稍早所註冊應用程式的應用程式 (用戶端) 識別碼

    2. 尋找 Enter_the_Tenant_Subdomain_Here,並將其取代為目錄 (租用戶) 子網域。 例如,如果您的租用戶主要網域是 contoso.onmicrosoft.com,請使用 contoso。 如果您沒有目錄 (租用戶) 子網域,請了解如何讀取租用戶詳細資料

      查問類型為值清單,應用程式會利用其值通知 Microsoft Entra 有關其支援的驗證方法。

      • 針對具有電子郵件一次性密碼的註冊和登入流程,請使用 [.OOB]
      • 針對具有電子郵件和密碼的註冊和登入流程,請使用 [.OOB, .password]
      • 針對自助式密碼重設 (SSPR),請使用 [.OOB]

      深入瞭解查問類型

  5. 若要建置,請在專案工具列中選取 [產品]>[建置]

選用:記錄設定

MSAL 會提供記錄 API,您可以用來啟用和設定記錄。 若要查看來自 MSAL 的所有偵錯輸出,請在 viewDidLoad() 函式開頭新增下列程式碼:

MSALGlobalConfig.loggerConfig.logLevel = .verbose
MSALGlobalConfig.loggerConfig.setLogCallback { logLevel, message, containsPII in
   if !containsPII {
      print("MSAL: \(message ?? "")")
   }
}

這會從 MSAL 輸出所有偵錯記錄,此舉有助於診斷問題,並了解原生驗證流程的運作方式。 若要深入了解如何設定記錄層級和最佳做法,請參閱 iOS/macOS 版 MSAL 中的記錄

後續步驟