问题标签 [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.
android - FIDO 是否必须托管assetlinks.json 文件?
我有一个关于 FIDO2 的问题。
小背景: 我的公司决定使用 FIDO2 进行用户帐户管理。所以我们创建了一个主要使用 yubico webauthn 库的 FIDO 服务器包装器。在 Android 端,我们使用 Fido2ApiClient 谷歌播放服务原生库来支持 FIDO
根据 Fido 文档, https://developers.google.com/identity/fido/android/native-apps#interoperability_with_your_website 允许用户在您的网站和 Android 应用程序之间无缝共享凭据很简单。但是,我们没有使用任何网站,仅在 API 端点(AWS-ALB)中使用 FIDO 服务器
在没有托管assetlinks.json 文件的情况下,Android FIDO Authenticator 始终返回以下错误消息。
FIDO 是否必须托管assetlinks.json 文件?有没有人在不托管此文件的情况下取得成功?
google-chrome - 凭证管理api在哪里存储webauthn相关数据
WebAuthn 包括凭证管理 API 的扩展,允许您使用公钥。我可以转到 chrome 设置并检查托管密码,以查看我选择使用凭据管理 API 将哪些用户名/密码存储在浏览器中。关于 webauthn+credential management api 组合的几个问题。
- 当我们成功创建凭证时,浏览器会存储哪些信息?
- 我们可以从 chrome 设置(或其他方式)访问此信息吗?
webauthn - 关于 FIDO2 webauthn 和 U2F 的几个开放性问题
我在多个地方读过,由于 U2F 没有用户的概念,它可以用作登录的因素之一(在 MFA 中),但不适合无密码,而 webauthn 有用户的概念,可以帮助无密码。我的问题是 webauthn 添加的额外内容是什么?是的,我们在创建凭据时确实传递了用户信息,但最终我们返回了一个凭据 ID(这似乎与密钥句柄非常相似)并用于关联用户(在服务器上)。据我了解,webauthn def 具有使用不同身份验证器(不仅仅是 U2F 密钥)的优势,但除此之外,webauthn 究竟添加了什么以使无密码更容易。
CTAP 描述了浏览器和操作系统如何通过 USB、NFC 或 BLE 通信介质与兼容的身份验证设备建立通信。我们可以说 CTAP 是一种应用层协议(如 FTP 吗?)
当我在我的安卓手机上使用指纹功能使用 webauthn 进行验证时,浏览器是否使用 CTAP2 与操作系统进行通信(进而弹出身份验证器)?ufc、nfc、ble、internal 哪里来的?
这是浏览器对 webauthn 的支持图表。在 chrome/android 中,对 WebAuthnAPI 的稳定支持但对 CTAP2 的开发支持是什么意思?这是否意味着不支持某些身份验证器?
webauthn - 在 publicKeyCredentialCreationOptions 中传递用户对象的值(用于 webauthn)
通过 webauthn 注册后,我们会收到一个凭证 ID,用于与该用户关联(以及后端的其他信息,如公钥等)。在登录期间,我们创建了传递给 navigator.credentials.get 的 publicKeyCredentialRequestOptions,我们传递了凭证 ID。
我的问题是,当我们调用 navigator.credentials.create 时,在 publicKeyCredentialCreationOptions(包含 id、name、displayName)中传递“user”键的价值是什么?我(认为)用户信息可能会作为断言响应的一部分返回(在 userHandle 字段中),但不确定添加的值如何(因为我们可能已经在后端拥有该信息)。
authentication - 使用 WebAuth 重定向从应用程序到浏览器的 React Native Login
在 React-Native 中使用 Auth0 Webauth 登录时,它会打开浏览器进行登录。我想创建一个流畅的登录,以便用户不应该体验我是使用应用程序还是浏览器登录,就像 webview 一样有人知道吗?
firefox-addon - 为什么 navigator.credentials.get 函数在 firefox 插件中不起作用
在 Firefox 插件中从后台调用函数navigator.credentials.get({ publicKey })The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
会引发以下错误。
我找不到有关该问题的任何信息。有没有办法在 Firefox 插件脚本中使用 WebAuthn 函数?在 Chrome 扩展程序中,它可以正常工作。
security - YubiKey + Webauth:userHandle 始终为空
当我使用 WebAuthn 和我的 YubiKey 进行身份验证时,response.userHandle 属性始终为空。那就是我注册凭据的用户 id 和 displayName 没有得到返回。这是因为我在注册/身份验证过程中做错了什么:
这是我用来验证的代码:
我最终得到的是:
javascript - Web 身份验证 API 奇怪的行为
我想构建用户可以使用移动指纹传感器、pin 或面部识别登录的应用程序。我发现Web Authentication API为我提供了这样的功能,但是当我尝试使用从互联网上创建的演示(例如Webauthn.io)时,它的行为很奇怪。我有 iPhone,里面有最新的 google chrome 和 safari 浏览器。当我使用 chrome 尝试这个演示时,它说不支持 Web Authentication API,当我尝试 safari 时,它说:
“'webauthn.io' 想要注册一个安全密钥。插入您的安全密钥或将密钥放在 iPhone 顶部附近。然后,激活密钥”
那么发生了什么?我应该怎么办?这是否意味着使用 Web Authentication API 没有意义,因为它缺乏浏览器支持?
delphi - 试图让 Webauthn 运行
不久前我开始了一个Fido2/WebAuthn项目,并试图让微软的 webauthn 实现开始。为此,在这个项目中存在webauthn.h文件的翻译(因为今天我只在 Mozilla 和 Chromium 浏览器代码中找到了对这个文件的引用......)。
现在......我只是尝试使用一个按钮来创建表单,该按钮发出一个创建凭据的命令,但是这个调用因访问冲突@ $0000EA60 而惨遭失败,我不知道这可能会导致什么。我可能会做错什么???
这里是按钮 onClick 处理程序的代码。
我使用的是 Delphi2010,所以所有字符串都应该是 unicode,除了 JSON 客户端数据字符串。
javascript - Selenium 测试:使用 Webauthn 进行身份验证
在我的用例中,有一个注册页面会触发特定于浏览器的 webauthn 流程。例如,在 Mac 上的 Chrome 中,您将看到这一系列弹出窗口:
- 在 USB 安全密钥和内置传感器之间选择一个选项
- 带有 Touch ID 的 MacOS 确认
- Chrome 请求访问您的安全密钥的确认对话框
除了https://w3c.github.io/webauthn/#add-virtual-authenticator我还没有找到太多关于使用 webauthn 进行身份验证作为硒测试的一部分的文档。有哪些资源可以帮助开发人员弄清楚如何在 JavaScript 中使用 Selenium 测试 webauthn?我还检查了https://github.com/SeleniumHQ/selenium/issues/7829但示例测试用例对我来说没有意义。示例将不胜感激。
更新 js 的解决方案:
注意this.driver
是类型WebDriver
。
addVirtualAuthenticator
在点击任何与之交互的代码之前调用navigator
(在我们的例子中,用户注册涉及对 的调用navigator.credentials.create
)。如果您需要访问公共密钥,即navigator.credentials.get({ publicKey: options })
在登录期间通过,那么hasResidentKey
很关键。