-1

我目前正在.Net 5.0 中开发一个独立的(不是 .Net Core 托管的)Blazor WebAssembly 应用程序。我一直在尝试将几个 Asp.Net MVC WebAuthn 示例转换为我的 Blazor 应用程序以进行无密码身份验证。

我现在遇到的问题是由于此应用的体系结构,因为它不是 Blazor Server 应用。我正在关注的 Asp.Net MVC 示例包含所有内容,包括托管在服务器上的客户端,而我的应用程序是拆分的 Web 客户端/Web API 架构。

然而到目前为止,我已经设法克服了这些差异,但现在我遇到的问题是在 Fido2NetLib 库的 Make Credential 请求中向服务器注册凭证的最后一个功能。在线的:

 // 2. Verify and make the credentials
 var success = await _lib.MakeNewCredentialAsync(attestationResponse, options, callback);

我收到一条错误消息:“来源 https://localhost:44325 不等于原始来源 https://localhost:44309”。现在当然这是一个开发环境,但它在生产环境中完全一样,因为 API 和客户端托管在两个不同的域中。

任何想法将不胜感激。我希望我可以“白名单”某些域?

4

2 回答 2

2

WebAuthn 将 origin 定义为完全限定的 origin。根据引用的RFC6454,这是方案、主机和端口的元组。你不能在不偏离标准的情况下违反规则。

于 2021-04-21T01:45:10.190 回答
0

WebAuthn 非常适合使用单独的身份提供者(例如,基于 Open ID Connect/IdentityServer4 的东西)作为处理凭据的来源,无论涉及的依赖方如何,都将始终相同。

于 2021-04-21T12:08:42.053 回答