教程:准备 iOS/macOS 应用进行本机身份验证

适用于:带灰色 X 号的白色圆圈。 员工租户 带白色勾号的绿色圆圈。 外部租户(了解详细信息

本教程演示如何将 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. 将 MSAL 库导入视图控制器中,通过在 import MSAL 类顶部添加 ViewController

  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 中的日志记录

后续步骤