TsgcWSAPIServer_WebAuthn

仅 OpenSSL 3。

简介

TsgcWSAPIServer_WebAuthn 组件提供了一个简单而强大的解决方案,用于实现 WebAuthn 依赖方服务器,在 Web 应用程序中实现无密码身份验证。一个 WebAuthn 应用程序由一个处理服务器端注册和身份验证的 WebAuthn 服务器,以及通常是 JavaScript 应用程序的客户端应用程序组成。

 

WebAuthn 要求使用安全连接(SSL/TLS),因此必须部署 OpenSSL 库并在服务器上进行配置。

 

仅支持 OpenSSL 3.0.0+ API,因此之前的 OpenSSL 版本可能无法正常工作。

 

配置

 

TsgcWSAPIServer_WebAuthn 必须使用 Server 属性附加到 HTTP 服务器,即 TsgcWebSocketHTTP_ServerTsgcWebSocketServer_HTTPAPI。您可以配置处理注册和身份验证选项的服务器端点,以及 WebAuthn 选项(如支持的算法、来源等)。

 

端点选项

在此处您可以配置处理 HTTP/JavaScript 请求的服务器端点,以使用 WebAuthn 作为验证器。该组件已配置默认端点,但您可以更改所有端点以满足您的需求。

 

 

示例:如果您的服务器正在监听域 www.test.com,则默认情况下,身份验证选项请求将为 http://www.test.com/sgcWebAuthn/Authentication/Options

 

WebAuthn 选项

在此属性中,您可以配置 WebAuthn 服务器组件的主要选项。

 

 

WebAuthn 使用来源来强制执行同源策略约束,这对于防止网络钓鱼和跨站攻击至关重要。在 WebAuthn 注册和身份验证过程中,浏览器和身份验证器会严格验证来源。

 

 

 

在 WebAuthn 中,crossOrigin 是一个布尔参数,指示 WebAuthn 操作是否在跨源上下文中执行,例如嵌入在与顶级浏览上下文不同源的 iframe 中。

引入此参数是为了帮助浏览器和身份验证器在嵌入式环境中安全处理身份验证请求。

 

 

WebAuthn 支持多种 加密算法,用于公钥凭据的生成和验证。这些算法在凭据注册(通过 navigator.credentials.create())和身份验证(通过 navigator.credentials.get())期间使用,并通过非对称密钥对确保挑战的安全签名和验证。服务器默认配置了最常用的 ES256 和 RS256 算法。您可以随时通过 Algorithms 属性更改所支持的算法。支持以下算法:

 

 

在 WebAuthn 中,证明是一种可选机制,允许验证器(例如设备或安全密钥)在凭据创建期间提供有关其制造商、型号和安全特性的信息。这些信息有助于依赖方(RP)决定是否信任该验证器。

 

不同的认证格式定义了此数据的结构和验证方式。三种常用格式为 android-key、packed 以及其他格式(如 fido-u2f、apple 或 none)。默认情况下,所有认证格式均已启用。您可以在下方找到受支持的认证格式列表:

 

 

 

 

 

 

 

在 WebAuthn API 中,AllowCredentials 是身份验证过程(通过 navigator.credentials.get())中使用的可选字段。它指定允许对特定依赖方(RP)进行用户身份验证的凭据 ID 列表。此机制允许 RP 控制哪些凭据被视为有效的登录尝试。credentials 属性包含以下字段:

 

 

 

 

WebAuthn 协议

 

 

 

 

 

参考