[java-idp-plugin-webauthn] branch main updated: JWEBAUTHN-30 - two different NoRegisteredWebAuthnCredentials events
Phil Smart
philip.smart at jisc.ac.uk
Fri Feb 14 10:51:03 UTC 2025
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch main
in repository java-idp-plugin-webauthn.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-webauthn.git;a=commit;h=cede27744cf9e90566471284a76de0a96468a620
The following commit(s) were added to refs/heads/main by this push:
new cede277 JWEBAUTHN-30 - two different NoRegisteredWebAuthnCredentials events
cede277 is described below
commit cede27744cf9e90566471284a76de0a96468a620
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Feb 14 10:51:00 2025 +0000
JWEBAUTHN-30 - two different NoRegisteredWebAuthnCredentials events
- Add another property for specifying a different eventID if credential
lookup fails (0 credentials) for 2FA v Passwordless.
- Defaults to the same settings as passwordless to maintain backward
compatibility.
https://shibboleth.atlassian.net/browse/JWEBAUTHN-30
---
.../net/shibboleth/idp/flows/authn/WebAuthn/webauthn-beans.xml | 8 +++++++-
.../net/shibboleth/idp/flows/authn/WebAuthn/webauthn-flow.xml | 4 ++--
.../idp/plugin/authn/webauthn/conf/authn/webauthn.properties | 4 ++++
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-beans.xml b/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-beans.xml
index 88b8c4b..10c16eb 100644
--- a/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-beans.xml
+++ b/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-beans.xml
@@ -119,12 +119,18 @@
p:webAuthnContextLookupStrategy-ref="shibboleth.ChildLookup.WebAuthnAuthenticationContextFromAuthenticationContext"
p:userVerificationRequirement="discouraged" />
- <bean id="LookupRegisteredCredentials" scope="prototype" parent="AbstractWebAuthnBaseAction"
+ <bean id="LookupRegisteredCredentialsForPasswordless" scope="prototype" parent="AbstractWebAuthnBaseAction"
class="net.shibboleth.idp.plugin.authn.webauthn.impl.LookupRegisteredCredentials"
p:triggerEventOnNoCredentials="%{idp.authn.webauthn.passwordless.signalEventOnNoCredentials:false}"
p:noCredentialsEventId="%{idp.authn.webauthn.passwordless.noCredentialsEventId:NoRegisteredWebAuthnCredentials}"
p:webAuthnContextLookupStrategy-ref="shibboleth.ChildLookup.WebAuthnAuthenticationContextFromAuthenticationContext" />
+ <bean id="LookupRegisteredCredentialsFor2FA" scope="prototype" parent="AbstractWebAuthnBaseAction"
+ class="net.shibboleth.idp.plugin.authn.webauthn.impl.LookupRegisteredCredentials"
+ p:triggerEventOnNoCredentials="%{idp.authn.webauthn.2fa.signalEventOnNoCredentials:%{idp.authn.webauthn.passwordless.signalEventOnNoCredentials:false}}"
+ p:noCredentialsEventId="%{idp.authn.webauthn.2fa.noCredentialsEventId:%{idp.authn.webauthn.passwordless.noCredentialsEventId:NoRegisteredWebAuthnCredentials}}"
+ p:webAuthnContextLookupStrategy-ref="shibboleth.ChildLookup.WebAuthnAuthenticationContextFromAuthenticationContext" />
+
<bean id="FilterCredentialsOnPolicy" scope="prototype" parent="AbstractWebAuthnAuthenticationAction"
class="net.shibboleth.idp.plugin.authn.webauthn.impl.FilterCredentialsOnPolicy"
p:activationCondition="%{idp.authn.webauthn.credential.filter.policy.enabled:false}"
diff --git a/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-flow.xml b/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-flow.xml
index 1c330f9..535e549 100644
--- a/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-flow.xml
+++ b/webauthn-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/WebAuthn/webauthn-flow.xml
@@ -77,7 +77,7 @@
</action-state>
<action-state id="PasswordlessLoginProceed">
- <evaluate expression="LookupRegisteredCredentials"/>
+ <evaluate expression="LookupRegisteredCredentialsForPasswordless"/>
<evaluate expression="FilterCredentialsOnPolicy"/>
<evaluate expression="AddUserVerificationRequired"/>
<evaluate expression="'proceed'" />
@@ -101,7 +101,7 @@
-->
<action-state id="SecondFactorLogin">
<evaluate expression="PopulateWebAuthnAuthenticationContextFor2FA"/>
- <evaluate expression="LookupRegisteredCredentials"/>
+ <evaluate expression="LookupRegisteredCredentialsFor2FA"/>
<evaluate expression="FilterCredentialsOnPolicy"/>
<evaluate expression="AddUserVerificationNotRequired"/>
<evaluate expression="'proceed'" />
diff --git a/webauthn-impl/src/main/resources/net/shibboleth/idp/plugin/authn/webauthn/conf/authn/webauthn.properties b/webauthn-impl/src/main/resources/net/shibboleth/idp/plugin/authn/webauthn/conf/authn/webauthn.properties
index 3efde48..9ba3c34 100644
--- a/webauthn-impl/src/main/resources/net/shibboleth/idp/plugin/authn/webauthn/conf/authn/webauthn.properties
+++ b/webauthn-impl/src/main/resources/net/shibboleth/idp/plugin/authn/webauthn/conf/authn/webauthn.properties
@@ -44,6 +44,10 @@ idp.authn.webauthn.supportedPrincipals = \
# The bean name of the username lookup strategy. By default, this comes from the principal name established by the first factor.
#idp.authn.webauthn.2fa.username.strategy = shibboleth.authn.WebAuthn.CanonicalUsernameLookupStrategy
+# Should an event be built if there are no credentials found? Only applicable to 2fa authentication.
+#idp.authn.webauthn.2fa.signalEventOnNoCredentials = false
+#idp.authn.webauthn.2fa.noCredentialsEventId = NoRegisteredWebAuthnCredentials
+
# Should we update an authenticators signature counter inside the credential repository after each successful authentication?
#idp.authn.webauthn.updateSignatureCount = true
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list