如何在WebAuthn认证中获取用户使用的授权类型(PIN/生物识别)
回答
首先明确:WebAuthn 2.0标准本身不提供直接获取用户具体认证方式(PIN/Face ID/Touch ID)的机制——这类信息属于用户设备的敏感操作细节,标准出于隐私保护考虑,刻意将应用层与具体的用户验证手段做了隔离。
你能获取到的相关有限信息,无法区分具体认证类型:
PublicKeyCredential.response.authenticatorData中的userVerified(UV)标志位:仅能表明用户完成了符合要求的身份验证,但无法得知是用PIN还是生物识别完成的。authenticatorAttachment属性:可以区分验证器是平台验证器(比如苹果设备内置的Touch ID/Face ID、Windows Hello)还是交叉平台验证器(比如YubiKey这类硬件密钥),但即便确定是平台验证器,也无法判断用户本次用的是生物识别还是PIN(比如苹果设备允许用户在生物识别失败后切换为PIN验证)。
如果你的核心需求是统计苹果生态中Face ID/Touch ID的使用占比,只能通过以下间接方式做近似统计:
- 检测客户端设备是否为iOS/macOS平台
- 结合
authenticatorAttachment判断是否为平台验证器 - 基于上述两个条件推断用户大概率使用了Face ID/Touch ID(但无法排除用户使用PIN的情况)
目前没有标准、可靠的方法能精准获取用户本次WebAuthn认证所使用的具体验证类型。
内容的提问来源于stack exchange,提问作者pixelboy
相关产品推荐
相关产品推荐

