在 Android 应用中设置优化的 QR 码身份验证体验

QR 代码身份验证方法使一线工作人员能够在共享设备上的应用中快速轻松地登录。 用户可以使用管理员提供的唯一 QR 码并输入 PIN 登录,而无需输入用户名和密码。

可以使用 login.microsoft.com 提供的 QR 码 Web 登录体验。 此用户入口点不需要任何开发人员更改。 用户选择“登录”选项>“登录到组织>”使用 QR 码登录。 可以通过在登录页提供入口点来优化 QR 码登录体验,从而消除两次用户单击。 若要利用 QR 码身份验证方法,应用开发人员和 身份验证策略管理员 协同工作:

  • 应用开发人员使用适用于 Android 的Microsoft身份验证库(MSAL)在其应用中集成 QR 码身份验证的优化入口点。
  • 身份验证策略管理员在 Microsoft Entra ID 中配置 身份验证方法

将应用配置为使用 QR 码身份验证

若要将应用配置为使用 QR 码身份验证,您需要在PreferredAuthMethod对象中将AcquireTokenParameters设置为 QR。 以下代码片段演示如何将应用配置为使用 QR 码身份验证:

final AcquireTokenParameters acquireTokenParameters = 
    new AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withLoginHint(requestOptions.getLoginHint())
     .forAccount(requestOptions.getAccount())
     .withPrompt(requestOptions.getPrompt())
     .withPreferredAuthMethod(PreferredAuthMethod.QR)
     .withCallback(getAuthenticationCallback(callback))
     .build(); 

设置为 PreferredAuthMethodPreferredAuthMethod.QR,指定应使用 QR 码身份验证方法。 此方法允许用户通过扫描 QR 码并输入其 PIN 进行身份验证。

配置 AcquireTokenParameters 对象后,可以调用 acquireToken 该方法来启动身份验证过程。 以下代码片段演示如何使用 AcquireTokenParameters 对象获取令牌:

// Create the MultipleAccountPublicClientApplication instance with the given configuration
final MultipleAccountPublicClientApplication mpca = new MultipleAccountPublicClientApplication(config);

// Pass the acquireTokenParameters object to the acquireToken function
mpca.acquireToken(acquireTokenParameters);

这会使用指定的参数(包括首选 QR 码身份验证方法)启动令牌获取过程。

获取首选身份验证方法

QR 码身份验证方法由身份验证策略管理员通过Microsoft Authenticator 应用上 托管 Android Enterprise 设备的应用配置策略进行配置 ,设置为 preferred_auth_method 等于 qrpin

显示如何配置 QR 码身份验证的屏幕截图。

可以通过对对象调用 getPreferredAuthMethod 该方法 mpca 来获取当前帐户的首选身份验证方法。 以下代码片段演示如何获取当前帐户的首选身份验证方法:

mpca.getPreferredAuthConfiguration()

该方法 getPreferredAuthConfiguration 要求在设备上安装 Microsoft Authenticator 应用。 如果未安装 Microsoft Authenticator 应用,该方法将 None返回。

默认情况下,每次需要使用相机扫描 QR 码时,QR 码和 PIN 身份验证都会提示用户获得相机权限。 但是,管理员可以取消此行为,并跳过请求相机权限。

显示 Android QR 码和 PIN 身份验证提示的屏幕截图。

身份验证策略管理员通过 Microsoft Authenticator 应用上的 托管 Android Enterprise 设备的应用配置策略 进行配置,设置 sdm_suppress_camera_consent 等于 true,与配置 preferred_auth_method 的方式类似。

启用此设置后:

  • 如果已在 OS 级别授予相机权限,应用不会显示相机同意提示。
  • 用户无需重复权限请求即可获得更流畅的身份验证体验。
  • 将使托管设备的二维码扫描流程更加流畅。

此配置在 IT 管理员可以预配置设备和相机权限的企业环境中非常有用。