我正在尝试使用驻留密钥/可发现凭据创建无用户名登录的凭据:
navigator.credentials.create({
publicKey: {
challenge: ...,
timeout: ...,
rp: { name: 'Some name' },
user: { ... },
pubKeyCredParams: [
{"type":"public-key","alg":-7},
{"type":"public-key","alg":-37},
{"type":"public-key","alg":-257}]
],
authenticatorSelection: {
authenticatorAttachment: 'cross-platform',
residentKey: 'required',
requireResidentKey: true,
userVerification: 'discouraged'
}
}
})
不幸的是,Chrome仍然提示用户设置PIN,或者如果硬件密钥不支持PIN,则告诉用户设备不受支持。就好像Chrome忽略了userVerification: 'discouraged'
一样。
我们的要求是,用户可以注册和登录,而无需输入用户名或PIN(所有隐含的安全缺陷)。
有没有办法用Chrome来实现这一点?
1条答案
按热度按时间jv4diomz1#
应该可以使用
参见https://groups.google.com/a/fidoalliance.org/g/fido-dev/c/_GlMmEpHya8和https://developers.yubico.com/WebAuthn/WebAuthn_Developer_Guide/Resident_Keys.html
编辑:为了更精确,在
create()
选项中添加:调用
get()
时,请确保指定: