适用于: 员工租户
外部租户(了解详细信息)
本教程演示如何将 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 实例
将 MSAL 库导入视图控制器中,通过在
import MSAL
类顶部添加ViewController
。在
viewDidLoad()
函数前添加以下代码,以将nativeAuth
成员变量添加到ViewController
类中: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
并将其替换为之前注册的应用 的应用程序(客户端)ID 。找到
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 中的所有调试日志,这有助于诊断问题并了解本机身份验证流的工作原理。 若要详细了解如何配置日志级别和最佳做法,请参阅 MSAL for iOS/macOS 中的日志记录。