gpt4 book ai didi

fido-u2f - 具有多方面 App ID 的 U2F

转载 作者:行者123 更新时间:2023-12-03 00:29:08 25 4
gpt4 key购买 nike

我们一直在我们的身份验证 Web 应用程序上直接使用 U2F,并将主机名作为我们的应用程序 ID ( https://auth.company.com ),并且工作正常。但是,我们希望能够从通过 HTTP API 与身份验证服务器通信的其他应用程序(和主机名,例如 https://customer.app.com )向身份验证服务器进行身份验证。

我可以通过 API 调用生成签名请求等,并将它们返回给客户端应用程序,但它在服务器端(身份验证服务器)失败,因为应用程序 ID 未验证(客户端使用自己的主机名作为应用程序 ID)。这是可以理解的,但是我该如何处理呢?我读过有关方面的内容,但我根本无法让它发挥作用。

客户端应用程序 JS 如下:

var registerRequests = // ...
var signRequests = // ...

u2f.register('http://localhost:3000/facets', registerRequests, signRequests, function(registerResponse) {
if (registerResponse.errorCode) {
return alert("Registration error: " + registerResponse.errorCode);
}

// etc.
});

一段时间后,这给了我一个错误代码 5(超时错误)。我没有看到任何对/facets 的请求。有没有办法解决这个问题,还是我找错了树(或不同的森林)?

————

好的,经过几个小时的研究;我很确定 Firefox U2F 插件的这个恶魔部分是我的一些痛苦的根源:

if (u.scheme == "http")
if (url2str(u, true) == url2str(ou, true))
return resolve(challenge);
else
return reject("Not matching appID");

https://github.com/prefiks/u2f4moz/blob/master/ext/appIdValidator.js#L106-L110

本质上是说,如果 appID 的方案是 http,则仅当它与页面主机完全相同时才允许它(它继续执行获取可信方面 JSON 的行为,但仅限于 https)。

尽管我尝试设计这个,但仍然不确定我是否走在正确的轨道上。

最佳答案

我不需要担心我的特殊情况的各个方面。最后,我只是通过安全 API 接口(interface)将客户端应用程序主机名传递到身份验证服务器,然后它使用该主机名作为应用程序 ID。到目前为止似乎工作正常。

我遇到的 Facets 问题是由于在开发中使用 http 而 Firefox U2F 插件不允许使用 JSON Facets。

关于fido-u2f - 具有多方面 App ID 的 U2F,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40403716/

25 4 0