使用本机身份验证在示例 iOS (Swift) 移动应用程序中登录用户

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

在本快速入门中,您将了解如何运行 iOS 示例应用程序,该应用程序演示了使用 Microsoft Entra External ID 进行注册、登录、注销和重置密码的场景。

先决条件

启用公共客户端和原生身份验证流

若要指定此应用是公共客户端,并且可以使用本机身份验证,请启用公共客户端和本机身份验证流:

  1. 在“应用注册”页中,选择要为其启用公共客户端和本机身份验证流程的应用注册。
  2. 在“管理”下,选择“身份验证”。
  3. “高级设置”下,允许公共客户端流:
    1. 对于“启用以下移动和桌面流程”,请选择“是”。
    2. 对于“启用本机身份验证”,请选择“是”。
  4. 选择“保存”按钮。

克隆示例 iOS 移动应用程序

  1. 打开终端并导航到要保留代码的目录。

  2. 通过运行以下命令从 GitHub 克隆 iOS 移动应用程序:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-ios-sample.git
    
  3. 导航到克隆存储库的目录:

    cd ms-identity-ciam-native-auth-ios-sample
    

配置示例 iOS 移动应用程序

  1. 在 Xcode 中,打开 NativeAuthSampleApp.xcodeproj 项目。

  2. 打开 NativeAuthSampleApp/Configuration.swift 文件。

  3. 查找占位符:

    • 查找 Enter_the_Application_Id_Here 并将其替换为之前注册的应用的应用程序(客户端)ID
    • Enter_the_Tenant_Subdomain_Here 并将其替换为 Directory (tenant) 子域。 例如,如果租户主域为 contoso.onmicrosoft.com,请使用 contoso。 如果没有租户子域,请了解如何 阅读租户详细信息

注释

请务必选择要生成的方案,以及计划运行生成的产品的目标位置。 每个方案都包含表示可用目标的实际设备或模拟设备的列表。

运行和测试示例 iOS 移动应用程序

若要生成并运行代码,请从 Xcode 中的“产品”菜单中选择“运行”。 成功生成后,Xcode 将在模拟器中启动示例应用。

用户在 iOS 应用程序中提示输入电子邮件的屏幕截图。

本指南测试 电子邮件一次性密码 的使用情况。 输入有效的电子邮件地址,选择 Sign Up(注册),然后启动提交代码屏幕:

在 iOS 应用程序中提示用户输入一次性密码 (OTP) 的屏幕截图。

在上一屏幕上输入电子邮件地址后,应用程序会向其发送验证码。 提交收到的代码后,应用程序会将你带回上一个屏幕并自动登录。

此示例支持的其他方案

示例应用程序支持以:

  • 电子邮件 + 密码 包括使用具有密码的电子邮件进行登录或注册流。
  • 使用用户属性进行电子邮件 + 密码注册 包括注册电子邮件和密码,以及提交用户属性。
  • 密码重置 涵盖自助密码重置(SSPR)。
  • 访问受保护的 API 涵盖在用户成功注册或登录并获取访问令牌后调用受保护的 API。
  • 回退到 Web 浏览器 涵盖在用户出于任何原因无法通过本机身份验证完成身份验证时,使用基于浏览器的身份验证作为回退机制。

使用密码流测试电子邮件

在本部分中,你将测试使用电子邮件及密码的流,包括其变体,例如使用用户属性进行电子邮件 + 密码注册、自助式密码重置等:

  1. 使用 创建用户流 中的步骤创建新的用户流,但这次选择 “使用密码的电子邮件 ”作为身份验证方法。 需要将 国家/地区城市 配置为用户属性。 或者,可以修改现有用户流以使用 带密码的电子邮件 (选择 外部标识>用户流>SignInSignUpSample>标识提供者>电子邮件和密码>保存)。

  2. 使用 应用程序与新用户流关联的 步骤将应用添加到新用户流。

  3. 运行示例应用,然后选择省略号菜单(...)以打开更多选项。

  4. 选择要测试的方案,例如 电子邮件 + 密码电子邮件 + 密码注册与用户属性密码重置,然后按照提示进行作。 若要测试 密码重置,需要首先注册用户,并为租户中的所有用户 启用一次性密码

测试调用受保护的 API 流

使用 使用本机身份验证在示例 iOS 移动应用程序中调用受保护的 Web API 中的 步骤,从示例 Android 移动应用程序调用受保护的 Web API。

后续步骤