You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义凭据提供程序中调用Windows WebAuthn API的问题

凭据提供程序中FIDO2身份验证的问题与实践记录

原始问题

我制作了一个简单的控制台应用程序,调用Windows WebAuthn API的WebAuthNAuthenticatorGetAssertion(),该API会弹出CredentialUIBroker.exe窗口,用于通过外部FIDO2安全密钥完成身份验证。

我尝试将该应用集成到自定义凭据提供程序中,通过子进程执行,但登录页面并未显示预期的UI。查看系统事件日志后发现身份验证失败,错误代码为:

Error: 0x8000401A. The server process could not be started because the configured identity is incorrect. Check the username and password

这一情况很奇怪,因为在正常登录会话中使用相同的凭据ID和安全密钥时,该程序可以成功运行。

有讨论指出,凭据提供程序中无法使用Windows WebAuthn API,必须使用第三方FIDO客户端(如libfido2);但也有观点认为这只是UI线程问题,应该可以像samplehardwareeventcredentialprovider示例那样创建窗口来显示Broker。

我尝试在其他线程以及CommandLinkClicked回调中调用WebAuthNAuthenticatorGetAssertion(),但两次尝试均以失败告终。

想问:凭据提供程序中只能使用第三方FIDO客户端吗?无法使用Windows WebAuthn API确实很遗憾,因为它提供了操作FIDO兼容设备的简便方式。

编辑1:解决方案调整

最终我改用了libfido2。需要注意:Windows限制普通用户从HID接口访问FIDO2安全令牌,如果使用默认的USE_HIDAPI配置通过libfido2访问FIDO2安全密钥,需要具备管理员权限。

由于凭据提供程序将在系统上下文下运行,这不会(部分)成为问题。

编辑2:补充说明

正如@Nehluxhes所述,在CREDUI模式下的凭据提供程序中使用libfido2确实会存在问题。


内容的提问来源于stack exchange,提问作者stevenchucp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:52:47