我们有自己的 SSO 服务器,它具有允许在身份验证过程中注册 U2F 令牌的功能。
此功能在使用 Chrome(带有或不带有 U2F 浏览器扩展程序)的 PC 上运行良好。在用户成功通过身份验证后,在 Chromebook 上的浏览器中使用它也能正常工作。
但是,当我们在 Chromebook 上启用 SSO 并尝试在身份验证过程中注册 U2F 令牌时,注册似乎不起作用。经过一些调试,我们发现在向通道onMessage发送 U2F 注册请求后没有调用事件侦听器。u2f_register_request
但是,签名请求并非如此(在使用 PC 注册后进行身份验证时)。当我们向我们发送请求时,u2f_sign_request我们成功地收到了onMessage回调消息。
有没有人遇到过这个问题?或者知道可以让我们在身份验证过程中执行注册的解决方法?
下面显示了一些用于发布到频道的代码:
// 1. 连接到扩展
var port = chrome.runtime.connect("kmendfapggjehodndflmmgagdbamhnfd", {'includeTlsChannelId': true});
// 2.绑定回调函数
port.onMessage.addEventListener(function(message) {
// this callback not been invoked if post 'u2f_register_request' message to channel in chrome OS login page
handler({'data': message});
});
// 3. 将消息发布到扩展。
port.postMessage({
type: 'u2f_register_request',
signRequests: signRequests,
registerRequests: registerRequests,
timeoutSeconds: (typeof opt_timeoutSeconds !== 'undefined' ?
opt_timeoutSeconds : u2f.EXTENSION_TIMEOUT_SEC),
requestId: reqId
});
正在使用的代码可以在(https://github.com/Yubico/java-u2flib-server/blob/master/u2flib-server-demo/src/main/resources/assets/u2f-api.js)找到
Chromebook 信息如下:
Google Chrome 版本(和 Chromebook 信息)
版本:43.0.2357.125
框架版本:6946.58.0(官方构建)稳定通道 kip
软件版本:Google_Kip.5216.227.5
启动模式:已验证
型号:HP Chromebook 11 2100-2199 / HP Chromebook 11 G3