首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Webauthn实现FIDO U2F?

如何使用Webauthn实现FIDO U2F?
EN

Stack Overflow用户
提问于 2018-12-06 04:41:44
回答 3查看 2.2K关注 0票数 3

我目前正在使用window.u2f API在我的网站上实现U2F双因素身份验证。它们在火狐中是原生可用的(当about:config标志被启用时),并通过Chromium与u2f-api.js库一起使用。

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

我读到新的Web Authentication API是向后兼容的,也支持FIDO U2F,然而,我找不到任何关于如何实现它的信息。所有的示例似乎只是演示FIDO2无密码登录,这不是我想要做的。

如何使用网络身份验证API实现具有等效window.u2f.registerwindow.u2f.sign函数的FIDO U2F?

EN

回答 3

Stack Overflow用户

发布于 2018-12-28 07:41:45

问得好。在Yubico's Github Account中可以找到一些令人难以置信的U2F实现示例。更具体地说,如果你想要一个在客户端使用javascript注册密钥并对其进行身份验证的工作示例,请使用Flask API在后端实现加密,该示例为is located here。它同时支持FIDO2和传统的U2F。此外,如果您想要一个人一步一步地演示该实现如何工作的视频,that is located here.我希望这对您有所帮助:)

票数 0
EN

Stack Overflow用户

发布于 2019-05-27 20:19:42

要为您突出显示的内容

CBORCTAP1/U2F验证器返回命令错误或

响应格式不正确。对于任何故障,平台可能会回退到CTAP1/U2F协议。

如果验证器不支持FIDO2,验证器将返回错误码,然后WebAuthn将通过U2F原始消息与验证器通信。

你可以像你所读到的那样来实现WebAuthn。Web Authentication API

您可以将this用于您的实现

票数 0
EN

Stack Overflow用户

发布于 2020-05-27 18:10:13

@kspearrin,这是我得到的解决方案。

我有使用U2F (u2f-api.js)注册的用户。迁移到WebAuthn实际上很简单。所有新注册都将使用WebAuthn,所有验证都将使用带有扩展参数的WebAuthn。

U2F

代码语言:javascript
复制
Registration - window.u2f.register
Verification - window.u2f.sign

WebAuthn

代码语言:javascript
复制
Registration - navigator.credentials.create
Verification - navigator.credentials.get

U2F注册用户的兼容性

使用navigator.credentials.get()时,请确保将extensions.appid设置为U2F appId参数。在我的例子中,我使用了origins.json URL。

https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredentialRequestOptions/extensions

最后,您需要在客户端和服务器端实现WebAuthn函数。根据您的平台,有许多可用的库。来自WebAuthn的响应包含ArrayBuffer格式的数据。我需要弄清楚的唯一一件事就是在客户端和服务器之间正确地传输ArrayBuffer数据。我必须将它们转换为base64,然后才能将其发布到服务器上并返回。基本上,您必须调整数据格式才能使其正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53640407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档