适用于: 员工租户
外部租户(了解详细信息)
在本快速入门中,您将了解如何运行 iOS 示例应用程序,该应用程序演示了使用 Microsoft Entra External ID 进行注册、登录、注销和重置密码的场景。
先决条件
- 外部租户。 如果还没有试用版, 请注册免费试用版
- 使用电子邮件一次性密码标识提供者选项设置的用户流。 有关详细信息,请参阅 为外部租户中的应用创建自助服务注册用户流。 此用户流可用于多个应用程序。
- 在 Microsoft Entra 管理中心注册新的客户端 Web 应用,为 任何组织目录中的帐户和个人Microsoft帐户配置。 有关更多详细信息 ,请参阅注册应用程序 。 在应用程序 概述 页中记录以下值供以后使用:
- 应用程序(客户端)ID
- 目录(租户)ID
- 将应用程序添加到用户流。
- Xcode 代码
启用公共客户端和原生身份验证流
若要指定此应用是公共客户端,并且可以使用本机身份验证,请启用公共客户端和本机身份验证流:
- 在“应用注册”页中,选择要为其启用公共客户端和本机身份验证流程的应用注册。
- 在“管理”下,选择“身份验证”。
- 在 “高级设置”下,允许公共客户端流:
- 对于“启用以下移动和桌面流程”,请选择“是”。
- 对于“启用本机身份验证”,请选择“是”。
- 选择“保存”按钮。
克隆示例 iOS 移动应用程序
打开终端并导航到要保留代码的目录。
通过运行以下命令从 GitHub 克隆 iOS 移动应用程序:
git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-ios-sample.git
导航到克隆存储库的目录:
cd ms-identity-ciam-native-auth-ios-sample
配置示例 iOS 移动应用程序
在 Xcode 中,打开 NativeAuthSampleApp.xcodeproj 项目。
打开 NativeAuthSampleApp/Configuration.swift 文件。
查找占位符:
-
查找
Enter_the_Application_Id_Here
并将其替换为之前注册的应用的应用程序(客户端)ID。 -
Enter_the_Tenant_Subdomain_Here
并将其替换为 Directory (tenant) 子域。 例如,如果租户主域为contoso.onmicrosoft.com
,请使用 contoso。 如果没有租户子域,请了解如何 阅读租户详细信息。
-
查找
注释
请务必选择要生成的方案,以及计划运行生成的产品的目标位置。 每个方案都包含表示可用目标的实际设备或模拟设备的列表。
运行和测试示例 iOS 移动应用程序
若要生成并运行代码,请从 Xcode 中的“产品”菜单中选择“运行”。 成功生成后,Xcode 将在模拟器中启动示例应用。
本指南测试 电子邮件一次性密码 的使用情况。 输入有效的电子邮件地址,选择 Sign Up(注册),然后启动提交代码屏幕:
在上一屏幕上输入电子邮件地址后,应用程序会向其发送验证码。 提交收到的代码后,应用程序会将你带回上一个屏幕并自动登录。
此示例支持的其他方案
示例应用程序支持以:
- 电子邮件 + 密码 包括使用具有密码的电子邮件进行登录或注册流。
- 使用用户属性进行电子邮件 + 密码注册 包括注册电子邮件和密码,以及提交用户属性。
- 密码重置 涵盖自助密码重置(SSPR)。
- 访问受保护的 API 涵盖在用户成功注册或登录并获取访问令牌后调用受保护的 API。
- 回退到 Web 浏览器 涵盖在用户出于任何原因无法通过本机身份验证完成身份验证时,使用基于浏览器的身份验证作为回退机制。
使用密码流测试电子邮件
在本部分中,你将测试使用电子邮件及密码的流,包括其变体,例如使用用户属性进行电子邮件 + 密码注册、自助式密码重置等:
使用 创建用户流 中的步骤创建新的用户流,但这次选择 “使用密码的电子邮件 ”作为身份验证方法。 需要将 国家/地区 和 城市 配置为用户属性。 或者,可以修改现有用户流以使用 带密码的电子邮件 (选择 外部标识>用户流>SignInSignUpSample>标识提供者>电子邮件和密码>保存)。
使用 应用程序与新用户流关联的 步骤将应用添加到新用户流。
运行示例应用,然后选择省略号菜单(...)以打开更多选项。
选择要测试的方案,例如 电子邮件 + 密码 或 电子邮件 + 密码注册与用户属性 或 密码重置,然后按照提示进行作。 若要测试 密码重置,需要首先注册用户,并为租户中的所有用户 启用一次性密码 。
测试调用受保护的 API 流
使用 使用本机身份验证在示例 iOS 移动应用程序中调用受保护的 Web API 中的 步骤,从示例 Android 移动应用程序调用受保护的 Web API。