教程:准备 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. 将新的密钥链组添加到项目“功能”。 在 iOS 上使用 com.microsoft.adalcache,而在 macOS 上使用 com.microsoft.identity.universalstorage

有关将 MSAL 添加到项目的详细信息和其他机制,请参阅项目自述文件

创建 SDK 实例

  1. 通过在 ViewController 类顶部添加 import MSAL,将 MSAL 库导入视图控制器。

  2. 通过在 viewDidLoad() 函数前面添加以下代码,将 nativeAuth 成员变量添加到 ViewController 类:

    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 值,并将其替换为之前注册的应用的应用程序(客户端)ID。

    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 的所有调试日志,这有助于诊断问题并了解本机身份验证流的工作原理。 若要详细了解如何配置日志级别和最佳做法,请参阅 MSAL for iOS/macOS 中的日志记录

后续步骤