使用Fido的Spring Security 4 Way身份验证,例如尤比奇

问题描述

我已经看过WebAuthn4J Spring Security。我不是在问“我使用哪个库来实现yubikey身份验证”,我的问题是“如何使用Spring安全框架执行4向身份验证?”。 Spring Security似乎具有您可以在2次握手中执行任何类型的身份验证的思想,但是使用yubikey身份验证是不可能的,因为这些步骤是

  1. 客户端发送用户名
  2. 服务器为此用户名发送挑战
  3. 客户签署挑战
  4. 服务器接受或拒绝客户签名

服务器无法在告知用户名之前发送质询,并且客户端在发送质询之前没有任何签名。如何指示Spring Security框架需要4个步骤,而不仅仅是2个步骤?

解决方法

我是WebAuthn4J Spring Security的作者。 WebAuthn4J Spring Security有两个示例应用程序。希望这些代码可以对您有所帮助。

  • WebAuthn4J Spring Security SPA
  • WebAuthn4J Spring Security MPA

https://github.com/webauthn4j/webauthn4j-spring-security/tree/master/samples

https://webauthn4j.github.io/webauthn4j-spring-security/en/#sample-application