U2F与多个FacetID集成,没有Chrome扩展但是u2f-api.js

时间:2015-11-09 13:20:19

标签: fido-u2f yubico

我尝试将U2F实现到我的Web应用程序中。由于应用程序可以使用多个URL,因此我必须添加一个带有有效FacetID的JSON文件,如spec中所述。 Yubico在website上对该规范的摘要较短。

不幸的是,当我调用u2f.register(...)方法时,我收到错误代码2,这意味着AppID存在问题。

我的AppID是JSON文件的URL。如规范中所述,我添加application/fido.trusted-apps+json作为内容类型。无论如何,永远不会调用此URL。

我使用的是最新的Chrome(v46.0.2490.80m)。如上所述[{3}},Chrome扩展程序不再需要了。

此外,我在Chromium项目中找到了一个关闭的here,它告诉我U2F是根据规范实现的。

使用Bug Report

代替Chrome扩展程序

这是u2f-api.js的问题吗?有更新的吗?

到目前为止,这是我的代码:

var u2frequest =
[
    {
        "appId":"https://localhost:44300/api/u2f/appids.json",
        "challenge":"hDharTG-SROuScxyD7ACpMDp4xl6A91E9nUPXDRSo_4",
        "version":"U2F_V2"
    }
];
u2f.register(u2frequest, [], function (data) {
    // I always get data={errorCode:2} here.
}

2 个答案:

答案 0 :(得分:2)

Facets不适用于自签名证书。因此,单个身份应用程序在localhost上可以正常工作,但多个标识在localhost上不起作用。

最佳解决方案是租用VPS并获得Letsencrypt证书。

答案 1 :(得分:1)

我猜你的appjd json有不同的起源,facetID的来源必须与AppID相同, 例如:r中的所有facetID必须具有相同的https://*.example.com

来源

因此,在您的情况下,您的trustFaceID应该都属于https://example.com/app-id.json