问题标签 [webauthn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
3505 浏览

navigator - 本地主机上的 WebAuthn 开发

  • 我正在尝试使用 WebAuthn 开发网站身份验证。不幸的是,我遇到了问题。调用 navigator.credentials.create 时出现以下错误:

    SecurityError: 依赖方 ID ' https://localhost:7000 ' 不是可注册域后缀,也不等于 ' https://localhost:7000 '。

这真的意味着我不能从 localhost 开发 WebAuthn 吗?顺便说一句,我正在使用 Chrome70 测试版。我必须在一个真实的领域进行开发,这似乎有点疯狂,调试和开发将成为一场噩梦。

有什么想法吗?WebAuthn 中真的禁止 localhost 吗?

谢谢

0 投票
2 回答
2164 浏览

javascript - 如何检查浏览器是否支持公钥凭据?

我正在使用 PHP 实现webauthn,现在我面临如何检测浏览器是否支持公钥凭据的问题。如果浏览器支持公钥凭据,那么我必须启动指纹注册程序。

那么有什么方法可以检测浏览器公钥凭据

0 投票
3 回答
2459 浏览

fido-u2f - 您如何使用 Webauthn API 实现 FIDO U2F?

我目前正在使用window.u2fAPI 在我的网站上实现 U2F 两因素身份验证。这些在 Firefox(启用 about:config 标志时)和通过带有u2f-api.js库的 Chromium 原生可用。

我的实现window.u2f.register(...)在密钥设置和window.u2f.sign(...)登录期间使用。

我已经读到新的Web 身份验证 API是向后兼容的,并且也支持 FIDO U2F,但是,我找不到任何有关如何实现它的信息。所有示例似乎只演示了 FIDO2 无密码登录,这不是我想要做的。

如何使用 Web 身份验证 API 实现具有等效功能的window.u2f.registerFIDO U2F?window.u2f.sign

0 投票
1 回答
860 浏览

firebase - Firebase Fido2 身份验证支持

我知道 Google 的 Firebase/Firestore 平台支持多种身份验证方法/后端,但我目前没有看到 Fido2 或 WebAuthn 用于 Firebase 身份验证的任何选项。有谁知道 Google 是否有时间表在其 Firebase 开发平台上发布对 Fido2 的支持?或者,如果它已经可用,而我只是缺少一些东西。

我目前只使用 Spark FREE 计划,所以我不知道这是否有问题。

任何见解或帮助将不胜感激。

干杯!

0 投票
2 回答
3042 浏览

javascript - 无法理解来自 JavaScript 的 WebAuthn API 错误

我目前正在为 Django 构建一个 AJAX 注册端点,以允许 FIDO2 身份验证(物理硬件密钥登录)。这是来自Yubico 的官方 fido2 python 库的示例/文档。

唯一的依赖是cbor.jsjs-cookie。现在所有服务器端都在工作,但是,我在调用该navigator.credentials.create方法时不断收到此 JavaScript 错误

编码:

我想不通。你知道有什么问题吗?谢谢!

0 投票
1 回答
614 浏览

typescript - 如何在 TypeScript 中键入 PublicKeyCredential?

我正在使用 WebAuthN API,我想使用它PublicKeyCredential来检测身份验证器。但是我的 TypeScript 不知道这个名字并且一直告诉我error TS2304: Cannot find name 'PublicKeyCredential'.

我确实导入了“@types/webappsec-credential-management”以获得正确的类型。但是出于同样的原因,我的 TypeScript 不想编译。

您知道如何将其添加到我的tsconfig.json或其他解决方案中以正确使用 TypeScript 吗?

0 投票
1 回答
318 浏览

byte - WebAuthn - “凭证公钥”的字节长度

在 WebAuthn 中,验证器数据包含可变长度,attested credential data后跟 (extensions如果有): WebAuthn 规范中的身份验证器数据架构

由于字段是 CBOR 映射,因此它是attested credential data可变的。credential public key

如果有扩展,如何提前知道该字段的字节长度,以便我可以将没有扩展的截断字段传递给 CBOR 库?

我正在使用的 CBOR 库似乎没有处理额外的字节,而且我对 CBOR 的了解还不够,无法知道是否有从第一个字节计算映射字节长度的技巧(或任何其他技巧)。

0 投票
3 回答
381 浏览

yubico - Yubikey 5 NFC:获得“打包”证明声明

使用以下 javascript 请求:

兼容 FIDO2 的 Yubikey 5 NFC 系统地返回"fido-u2f"证明声明:

如何改为接收 FIDO2"packed"证明声明?

0 投票
1 回答
507 浏览

google-chrome - Chrome 中 CTAP2 (FIDO2) 协议的不完整实现?

我一直在研究使用 Google Chrome 实现 CTAP2 协议(Fido Authenticator 和 Fido 客户端(例如 Chrome)之间的协议),Chrome从版本 69 起应该支持该协议。

所以我在两种情况下将 chrome 请求转储给了身份验证器:

1. U2F (CTAP1) 与yubico 演示网站

这里一切都按预期进行,chrome 遵循CTAP1 协议

2. FIDO2/Webauthn (CTAP2) 与webauthn.org

浏览器有一个奇怪的行为:

  • 它首先通过发送 AuthenticatorGetInfoRequest 遵循 CTAP2 协议
  • Authenticator 回复 AuthenticatorGetInfoResponse
  • 但随后 Chrome 通过发送注册请求消息 (U2F_REGISTER) 切换到 CTAP1 协议

Chrome 实现是否有问题:CTAP2 尚未完全启用(它似乎在 Chromium 源代码中实现)?

还是来自身份验证器的问题:发送使 Chrome 切换到 CTAP1 的响应?

还是完全不同的东西?

0 投票
2 回答
518 浏览

google-chrome - Yubico / Webauthn 和常驻密钥

我有一个 Yubikey 5,我正在使用 OSX 和 Chrome 72。

根据文档,我应该有多达 25 个常驻密钥: https: //support.yubico.com/support/solutions/articles/15000014219-yubikey-5-series-technical-manual#FIDO29g3ue8

从技术上讲,如果我是对的,需要一个常驻密钥才能在没有用户名的情况下“进行身份验证”。尝试使用 webauthn 进行身份验证时,浏览器应“要求”用户根据存储的域/驻留密钥选择“身份”。

我在一些演示站点上尝试使用驻留密钥的 webauthn。但似乎 Chrome 或 Key 都不“支持”驻留密钥。

我很确定之前 Yubico 网站上存在“无用户名”注册/登录。但我找不到它。我认为演示站点已经更新......并且该功能不再存在。

你知道如何测试 webauthn 常驻密钥吗?