问题标签 [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.

0 投票
2 回答
607 浏览

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 文件?有没有人在不托管此文件的情况下取得成功?

0 投票
3 回答
514 浏览

google-chrome - 凭证管理api在哪里存储webauthn相关数据

WebAuthn 包括凭证管理 API 的扩展,允许您使用公钥。我可以转到 chrome 设置并检查托管密码,以查看我选择使用凭据管理 API 将哪些用户名/密码存储在浏览器中。关于 webauthn+credential management api 组合的几个问题。

  1. 当我们成功创建凭证时,浏览器会存储哪些信息?
  2. 我们可以从 chrome 设置(或其他方式)访问此信息吗?
0 投票
1 回答
385 浏览

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 的开发支持是什么意思?这是否意味着不支持某些身份验证器? 浏览器对 webauth 的支持

0 投票
1 回答
49 浏览

webauthn - 在 publicKeyCredentialCreationOptions 中传递用户对象的值(用于 webauthn)

通过 webauthn 注册后,我们会收到一个凭证 ID,用于与该用户关联(以及后端的其他信息,如公钥等)。在登录期间,我们创建了传递给 navigator.credentials.get 的 publicKeyCredentialRequestOptions,我们传递了凭证 ID。

我的问题是,当我们调用 navigator.credentials.create 时,在 publicKeyCredentialCreationOptions(包含 id、name、displayName)中传递“user”键的价值是什么?我(认为)用户信息可能会作为断言响应的一部分返回(在 userHandle 字段中),但不确定添加的值如何(因为我们可能已经在后端拥有该信息)。

0 投票
1 回答
300 浏览

authentication - 使用 WebAuth 重定向从应用程序到浏览器的 React Native Login

在 React-Native 中使用 Auth0 Webauth 登录时,它会打开浏览器进行登录。我想创建一个流畅的登录,以便用户不应该体验我是使用应用程序还是浏览器登录,就像 webview 一样有人知道吗?

0 投票
1 回答
691 浏览

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 扩展程序中,它可以正常工作。

0 投票
2 回答
414 浏览

security - YubiKey + Webauth:userHandle 始终为空

当我使用 WebAuthn 和我的 YubiKey 进行身份验证时,response.userHandle 属性始终为空。那就是我注册凭据的用户 id 和 displayName 没有得到返回。这是因为我在注册/身份验证过程中做错了什么:

这是我用来验证的代码:

我最终得到的是:

0 投票
1 回答
228 浏览

javascript - Web 身份验证 API 奇怪的行为

我想构建用户可以使用移动指纹传感器、pin 或面部识别登录的应用程序。我发现Web Authentication API为我提供了这样的功能,但是当我尝试使用从互联网上创建的演示(例如Webauthn.io)时,它的行为很奇怪。我有 iPhone,里面有最新的 google chrome 和 safari 浏览器。当我使用 chrome 尝试这个演示时,它说不支持 Web Authentication API,当我尝试 safari 时,它说:

“'webauthn.io' 想要注册一个安全密钥。插入您的安全密钥或将密钥放在 iPhone 顶部附近。然后,激活密钥”

那么发生了什么?我应该怎么办?这是否意味着使用 Web Authentication API 没有意义,因为它缺乏浏览器支持?

0 投票
1 回答
191 浏览

delphi - 试图让 Webauthn 运行

不久前我开始了一个Fido2/WebAuthn项目,并试图让微软的 webauthn 实现开始。为此,在这个项目中存在webauthn.h文件的翻译(因为今天我只在 Mozilla 和 Chromium 浏览器代码中找到了对这个文件的引用......)。

现在......我只是尝试使用一个按钮来创建表单,该按钮发出一个创建凭据的命令,但是这个调用因访问冲突@ $0000EA60 而惨遭失败,我不知道这可能会导致什么。我可能会做错什么???

这里是按钮 onClick 处理程序的代码。

我使用的是 Delphi2010,所以所有字符串都应该是 unicode,除了 JSON 客户端数据字符串。

0 投票
2 回答
2031 浏览

javascript - Selenium 测试:使用 Webauthn 进行身份验证

在我的用例中,有一个注册页面会触发特定于浏览器的 webauthn 流程。例如,在 Mac 上的 Chrome 中,您将看到这一系列弹出窗口:

  1. 在 USB 安全密钥和内置传感器之间选择一个选项
  2. 带有 Touch ID 的 MacOS 确认
  3. 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关键