使用 Firebase 进行指纹身份验证

问题描述 投票:0回答:4

我想开发一个使用Firebase(Android和IOS)进行指纹身份验证的应用程序,我想要的是在Firebase数据库上进行身份验证,而不是在手机本身上进行(因此用户的指纹ID必须存储在Firebase中)是无论如何要做吗?指纹扫描仪确实会为扫描的手指生成唯一的 ID?如果是的话,您能给我提供 Java 代码吗? 谢谢你

android ios firebase firebase-authentication fingerprint
4个回答
3
投票

API 无法访问指纹图像及其特征。来自安卓网站:

因此,原始图像和处理后的指纹特征一定不能传入 不可信的记忆。所有此类生物识别数据都需要在传感器内得到保护 硬件或可信内存。 (TEE 内的内存被认为是可信的 记忆; TEE 之外的内存被认为是不可信的。)


2
投票

Web 身份验证 API(也称为 WebAuthn)是一种新的 Web W3C 于 2019 年编写的规范。

https://webauthn.guide/

它允许使用生物识别技术(FaceID、指纹、Windows Hello 等)进行无密码身份验证。

这对您来说可能不是一个完美的解决方案,因为它不一定完全适合 Firebase 世界,但通过一些自定义后端代码,您可能可以让它工作。


1
投票
  • 任何类型的指纹数据均不得备份到任何其他来源,包括云或您的计算机或任何应用程序
  • 指纹身份验证必须由请求它的进程使用(不得共享任何指纹数据,即使只是回答“是”或“否”来查看是否正确

TEE 代表可信执行环境

来源:Android Central (https://www.androidcentral.com/how-does-android-save-your-fingerprints)


0
投票

我知道这是一个非常古老的问题,但它在今天仍然具有现实意义。因此,我对这个问题做了一些研究,因为我也想提供生物识别登录。我认为您需要连接 Web 身份验证 API 才能与服务器上的 Firebase 身份验证协同工作。

集思广益,讨论这种集成的流程

所以,我想象这看起来像你有一个用户注册或登录,就像其他应用程序一样,你允许他们选择“使用生物识别技术登录”,当他们打开该标志时,在成功通过他们的身份验证后正常的 Firebase 凭据,然后您可以让他们进行生物识别验证。

成功进行生物识别验证后,您将存储公钥(他们现在使用的设备包含私钥和其他详细信息),然后还存储生成的任何 ID 并将其存储在您的数据库中。

下次他们想要登录时,允许他们使用生物识别技术(使用公钥、用户 ID 等),成功进行生物识别验证后,您可以再次与服务器通信,并使用 Google Firebase 管理工具 强制生成身份验证令牌。请参阅下面的文档链接。

您所需要的只是 Firebase 用户的相应“UID”,理想情况下,该“UID”将与生物识别密钥对的生成 ID 一起存储,然后使用生成的令牌响应您的应用程序:

强制生成带有 uid 的令牌:

https://firebase.google.com/docs/auth/admin/create-custom-tokens#create_custom_tokens_using_the_firebase_admin_sdk

然后在客户端使用生成的令牌结合
signInWithCustomToken(...)
方法完成登录:

https://firebase.google.com/docs/auth/admin/create-custom-tokens#sign_in_using_custom_tokens_on_clients

© www.soinside.com 2019 - 2024. All rights reserved.