Webauthn - Windows Hello 身份验证器选择不起作用

Posted

技术标签:

【中文标题】Webauthn - Windows Hello 身份验证器选择不起作用【英文标题】:Webauthn - Windows Hello authenticatorSelection is not working 【发布时间】:2021-12-05 06:02:45 【问题描述】:

我只是在开发一个示例节点 js 应用程序来在 Windows 10 上玩 webauthn。

        challenge: challenge,
        rp: 
            name: "Example CORP",
            id  : "localhost"
        ,
        user: 
            id: new Uint8Array(16),
            name: "jdoe@example.com",
            displayName: "John Doe"
        ,
        pubKeyCredParams: [
            
            type: "public-key",
            alg: -7
            
        ],authenticatorSelection: 
            authenticatorAttachment: "platform" //cross-platform is working fine
        ,
        timeout: 60000
        ;
        const credential = navigator.credentials.create(
            publicKey: publicKey 
        );

我确实收到了以下错误,但我没有看到任何 Windows Hello 模式窗口。

login:32 publicKey.authenticatorSelection.userVerification was not set to any value in Web Authentication navigator.credentials.create() call. This defaults to 'preferred', which is probably not what you want. If in doubt, set to 'discouraged'. See https://chromium.googlesource.com/chromium/src/+/master/content/browser/webauth/uv_preferred.md for details

我还缺少任何其他参数吗?

-- 湿婆

【问题讨论】:

【参考方案1】:

您没有在 authenticatorSelection 对象中定义 userVerification 属性。

来自W3.org:

userVerification成为断言的有效用户验证要求:

设置为必需userVerification 为真。

设置为不鼓励userVerification 为假。

设置为首选 如果验证者 能够进行用户验证 让userVerification 为真。 如果身份验证器无法进行用户验证 让userVerification 为假。

authenticatorSelection: 
  authenticatorAttachment: "platform",
  userVerification: "required" 
,

【讨论】:

以上是关于Webauthn - Windows Hello 身份验证器选择不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 WebAuthN 可以拒绝某些类型的身份验证方法 FIDO2)

.Net 中的 WebAuthN 和 BouncyCastle

如何为Android和IOS实现FIDO2(WebAuthn)

Auth0 WebAuthn Passwordless将现代身份验证的便捷性和安全性推向新高度

求助,windows hello突然不能用了

Windows下编译Mongoose的hello.c