使用本机身份验证在示例 Android (Kotlin) 应用中登录用户

适用于绿色圆圈,带有白色复选标记符号,指示以下内容适用于外部租户。 外部租户(了解详细信息

在本快速入门中,你将了解如何使用 Microsoft Entra 的 本机身份验证来运行演示注册、登录、注销和密码重置方案的 Android 示例应用程序。

先决条件

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

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

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

克隆示例 Android 移动应用程序

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

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

    git clone https://github.com/Azure-Samples/ms-identity-ciam-native-auth-android-sample 
    

配置示例 Android 移动应用程序

  1. 在 Android Studio 中,打开克隆的项目。

  2. 打开 app/src/main/res/raw/native_auth_sample_app_config.json 文件。

  3. 查找占位符:

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

现已配置应用,并且已准备好运行。

运行并测试示例 Android 移动应用程序

若要生成并运行应用,请执行以下步骤:

  1. 在工具栏中,从“运行配置”菜单中选择你的应用。

  2. 在目标设备菜单中,选择要在其中运行应用的设备。

    如果没有配置任何设备,则需要创建 Android 虚拟设备以使用 Android 模拟器或连接物理 Android 设备。

  3. 选择“运行”按钮。 应用将打开 “电子邮件和 OTP ”屏幕。

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

  4. 输入有效的电子邮件地址,然后选择“ 注册 ”按钮。 应用将打开提交代码屏幕,并在电子邮件地址中收到 OTP 代码。

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

  5. 在电子邮件收件箱中输入收到的 OTP 代码,然后选择“ 下一步”。 如果注册成功,应用会自动登录。 如果未在电子邮件收件箱中收到 OTP 代码,可以通过选择 “重新发送密码”在一段时间后重新发送它。

  6. 若要注销,请选择 “注销 ”按钮。

此示例支持的其他方案

此示例应用还支持以下身份验证流:

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

使用密码流测试电子邮件

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

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

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

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

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

测试调用受保护的 API 流

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

后续步骤