You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not like authentication request processing, Servlet filter is not provided for registration request processing
105
+
In contrast to authentication request processing, Servlet filter is not provided for registration request processing
106
106
because in most cases, data other than WebAuthn like user's first name, last name, or email address are sent at the same time.
107
107
108
108
While it is basically application's responsibility to handle an authenticator registration process, WebAuthn4J Spring Security provides converters and validators to examine the received credential.
@@ -114,7 +114,7 @@ While it is basically application's responsibility to handle an authenticator re
114
114
==== Options endpoints
115
115
116
116
Web Authentication needs to obtain a challenge from the server prior to registration and authentication.
117
-
When using the FIDO-U2F token as an authentication device, the CredentialIds associated with the user identified by the first authentication factor are also need to be obtained from the server.
117
+
When using the FIDO-U2F token as an authentication device, the CredentialIds associated with the user identified by the first authentication factor also need to be obtained from the server.
118
118
To retrieve these data, WebAuthn4J Spring Security offers `AttestationOptionsEndpointFilter` and `AssertionOptionsEndpointFilter`.
119
119
120
120
=== Customization
@@ -135,7 +135,7 @@ For WebAuthn assertion verification, `WebAuthnManager` is used. See https://weba
135
135
WebAuthn4J Spring Security provides `AttestationOptionsEndpointFilter` for WebAuthn JS Credential Creation API parameters serving, and `AssertionOptionsEndpointFilter` for WebAuthn JS Credential Get API parameter serving.
136
136
As these Parameters generation are delegated through `AttestationOptionsProvider` and `AssertionOptionsProvider` interfaces, they can be customized by implementing these interfaces.
137
137
138
-
These can be customized through Java Config. Method chains from `WebAuthnLoginConfigurer`'s `attestationOptionsEndpoint` method or `assertionOptionsEndpoint` method are configuration point for that.
138
+
These can be customized through Java Config. Method chains from `WebAuthnLoginConfigurer`'s `attestationOptionsEndpoint` method or `assertionOptionsEndpoint` method are configuration point for that.
139
139
140
140
[source,java]
141
141
----
@@ -181,7 +181,7 @@ public class WebSecurityConfig {
181
181
182
182
===== Dynamic generation of PublicKeyCredentialUserEntity
183
183
184
-
Attestation options endpoint can generate `PublicKeyCredentialUserEntity` to be returned dynamically based on the `Authentication` object associated with login user.
184
+
Attestation options endpoint can generate `PublicKeyCredentialUserEntity` to be returned dynamically based on the `Authentication` object associated with logged-in user.
185
185
To generate `PublicKeyCredentialUserEntity`, `PublicKeyCredentialUserEntityProvider` is provided.
186
186
187
187
Speaking of Java Config, it can be set in this way:
@@ -203,10 +203,9 @@ public class WebSecurityConfig {
203
203
}
204
204
----
205
205
206
-
If `PublicKeyCredentialUserEntityProvider` is not set explicitly, WebAuthn4J Spring Security Java Config look up it from Spring Application Context.
206
+
If `PublicKeyCredentialUserEntityProvider` is not set explicitly, WebAuthn4J Spring Security Java Config looks it up from Spring Application Context.
207
207
Registering its bean to the application context is another way to set it.
208
208
209
-
210
209
==== Selecting authentication method
211
210
212
211
WebAuthn4J Spring Security supports "Password-less multi-factor authentication with a user-verifying authenticator", "Multi-factor authentication with password and authenticator" and "Single-factor authentication like password".
@@ -218,7 +217,7 @@ To realize "Multi-factor authentication with password and authenticator" and "Si
218
217
"Multi-factor authentication with password and authenticator" can be realized by including additional authorization requirement to check a user is authenticated by WebAuthn.
219
218
220
219
Whether it is authenticated by WebAuthn can be checked with the `WebAuthnSecurityExpression#isWebAuthnAuthenticated` method.
221
-
Register a bean of WebAuthnSecurityExpression instance and call it from JavaConfig. WebAuthn4J Spring Security Sample MPA is a good example for it.
220
+
Register a bean of `WebAuthnSecurityExpression` instance and call it from JavaConfig. WebAuthn4J Spring Security Sample MPA is a good example for it.
222
221
223
222
=== Advanced topics
224
223
@@ -252,10 +251,10 @@ If you would like to change `rpId` dynamically based on request, set `RpIdProvid
252
251
253
252
==== Attestation statement verification
254
253
255
-
Web Authentication specification allows the relying party to retrieve an attestation statement from an authenticator if it is requested while authenticator registration.
254
+
Web Authentication specification allows the relying party to retrieve an attestation statement from an authenticator if it is requested during authenticator registration.
256
255
By verifying attestation statement, the relying party can exclude authenticators not conforming its security requirements.
257
256
It's to be noted that the attestation statement contains information that can be used to track user across web sites, it is discouraged to request an attestation statement unnecessarily.
258
-
It is also to be noted that the browsers shows an additional dialog to confirm the user consent, lowers usability.
257
+
It is also to be noted that the browser shows an additional dialog to confirm the user consent, lowering usability.
259
258
Except for enterprise applications that require strict verification of authenticators, most sites should not request attestation statements.
260
259
261
260
`WebAuthnRegistrationContextValidator` from WebAuthn4J validates an authenticator registration request, and it delegates attestation statement signature and trustworthiness validation to `WebAuthnManager` and
0 commit comments