Azure B2C登录Xamarin表单应用程序,Face/TouchId/Fingerprint/钥匙链与API集成



我们使用Azure B2C对用户进行登录/身份验证。这在我们的网站上运行良好(社交和电子邮件登录等(。我们的移动应用程序是以Xamarin形式构建的,我们正在尝试构建一种本地登录体验(使用本地应用程序控件与B2C提供的应用程序中的网络视图(,该体验与用于登录的设备生物特征(FaceId、TouchId、指纹登录(本地集成。正如你所能想象的,在Azure B2C所需的网络视图中这样做不允许本地登录体验。这里的总体目标是2倍:

  1. 构建本地登录体验
  2. 与生物识别技术集成

问题

  1. Azure B2C是否有启用此功能的API,特别是这样我们就可以在没有UI的情况下使用授权代码流。ROPC存在,但它也与社交账户整合了吗
  2. 如果没有,当登录屏幕显示在网络视图中时,是否有方法将生物识别登录与移动设备上的Azure B2C集成?因此,当网络视图中的B2C登录页面出现时,用户可以使用touch/faceId登录,并将该信息保存到他们的钥匙链中(在iOS和Android上相当(

您需要使用webview,并且可以启用生物识别与webview类型体验的集成。

  1. 您不能将任何服务与社会账户和ROPC集成。任何与Social IdP的集成都需要一个网络视图。

  2. 是,为长期会话启用"保持我登录"。将生物特征代码包裹在acquireTokenSilent((方法周围。

然后您有两个选项:

  1. 您可以隐藏KMSI按钮,并使用JavaScript通过页面自定义强制选择登录页面中的KMSI复选框。

  2. 您可以在登录页面上重命名KMSI标签,询问用户是否要注册生物识别。然后在登录后,您的应用程序将在令牌中收到一个声明,无论用户是否选择加入,都可以使用声明解析器来实现这一点。

现在您有一个用户登录到应用程序,使用:

  1. 1小时访问令牌
  2. 可能长达无穷长的刷新令牌
  3. 多日/年Azure AD B2C会话cookie

然后,当用户再次尝试打开应用程序或在应用程序中执行某些操作时,您需要调用acquireTokenSilent((。此MSAL方法获取所需API资源/作用域的新访问令牌。

如果令牌已过期,或者需要不同的作用域,则会获取新的令牌。

您可以使用生物识别SDK包装应用程序中的任何操作。

if (performingSomeAction && requiresBiometric)
if (challengeBiometric succeeds)
acquireTokenSilent() 
//do someAction

现在,如果刷新令牌已过期,则会弹出web视图,长寿命会话cookie将用于获取新令牌。acquireTokenSilent((方法已经处理了所有这些。

相关内容

  • 没有找到相关文章

最新更新