我需要开发一个具有MFA身份验证的Android应用程序。
要登录,用户需要首先插入他的用户名&密码,然后是生物特征数据(指纹、人脸或虹膜(来确认他的身份。
我想用Cognito之类的东西来存储生物识别登录信息,但老实说,我真的不明白该怎么做。
这可行吗?
如果是,怎么做?
简单的答案-你不能。
你不能将安卓系统(或iOs系统(收集的生物特征数据传递到手机之外。
人脸/虹膜和指纹都无法以某种可读格式解码并发送给第三方服务。
这就是安卓系统的工作原理。据我所知,iOs的工作原理是一样的——你无法检索这些数据。此外,你不能改变系统的这种行为(我想,只有在一个非常定制的Android ROM中,这将很难实现(
不过,你可以在应用程序中使用指纹/虹膜/人脸解锁-你不会向服务器发送任何信息,但你可以解锁应用程序的UI-这是目前的通用情况。
如果完全是真的——你可以向服务器发送一些东西——你可以生成一个密钥,并根据生物特征数据对其进行加密,使用生物特征身份验证,你可以解密它,并将其发送到你想要的任何地方。这个秘密不会代表真正的生物特征信息,但它是。。。(cognito支持自定义身份验证流-也许你甚至可以以某种方式利用这种方法(
长话短说-这里是关于生物特征认证和基于生物特征的加密的官方文档。
这是一个代码实验室的例子。
以下是它的工作原理图。
这里有一篇关于这个话题的好文章。