如何在 Android 上通过 Cognito 使用生物识别登录?

How can I use biometrics login with Cognito on Android?

我需要开发一个具有 MFA 身份验证的 Android 应用程序。

要登录,用户需要先输入用户名和密码,然后输入生物识别数据(指纹、面部或虹膜)以确认其身份。

我想使用 Cognito 之类的东西来存储生物识别登录信息,但老实说,我真的不明白该怎么做。

这可行吗?

如果是,怎么做?

简单的答案 - 你不能。

您不能将 Android 系统(或 iOs 系统)收集的生物识别数据传递到 phone.

之外

face/iris 和指纹都无法以某种可读格式解码并发送到第三方服务。

这就是 android 系统的工作原理。据我所知,iOs 的工作原理相同 - 您无法检索此数据。此外,您无法更改系统的这种行为(我想只能在非常自定义的 Android ROM 中,而且很难实现)

虽然您可以在您的应用程序中使用 fingerprint/iris/face 解锁 - 您不会向您的服务器发送任何内容,但您将能够解锁您应用程序的 UI - 这有点目前的一般用例。

好吧,如果这是完全正确的——你可以向服务器发送一些东西——你可以生成一个密钥并根据生物识别数据对其进行加密,使用生物识别身份验证你可以解密它并发送到你想要的任何地方。这个秘密不会代表实际的生物识别信息,但它是某种东西......(cognito 支持自定义身份验证流程 - 也许你甚至能够以某种方式利用这种方法)

长话短说 - here 是关于生物识别身份验证和基于生物识别的加密的官方文档。

Here 是一个代码实验室示例。

Here 是其工作原理的一般示意图。

Here and here 是一篇关于该主题的好文章。