[java-idp-plugin-webauthn] branch main updated: JWEBAUTHN-5 - Add support for FIDO Alliance Metadata

Phil Smart philip.smart at jisc.ac.uk
Fri Mar 15 11:04:58 UTC 2024


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=ee37cc7c9392d417b27c018caea06f01d670295e

The following commit(s) were added to refs/heads/main by this push:
     new ee37cc7  JWEBAUTHN-5 - Add support for FIDO Alliance Metadata
ee37cc7 is described below

commit ee37cc7c9392d417b27c018caea06f01d670295e
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Mar 15 11:04:56 2024 +0000

    JWEBAUTHN-5 - Add support for FIDO Alliance Metadata
    
     - Add metadata properties to properties file
    
    https://shibboleth.atlassian.net/browse/JWEBAUTHN-5
---
 .../META-INF/net.shibboleth.idp/postconfig.xml     |  2 +-
 .../authn/webauthn/conf/authn/webauthn.properties  | 41 ++++++++++++++++------
 2 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/webauthn-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml b/webauthn-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
index 269b7d6..efaf5c1 100644
--- a/webauthn-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
+++ b/webauthn-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
@@ -72,7 +72,7 @@
         p:relyingPartyName="%{idp.authn.webauthn.relyingPartyName}"
         p:allowOriginPort="%{idp.authn.webauthn.allowOriginPort:false}"
         p:allowOriginSubdomain="%{idp.authn.webauthn.allowOriginSubdomain:false}"
-        p:allowUntrustedAttestation="%{idp.authn.webauthn.allowUntrustedAttestation:false}"
+        p:allowUntrustedAttestation="%{idp.authn.webauthn.allowUntrustedAttestation:true}"
         p:origins="%{idp.authn.webauthn.origins:}"
         p:preferredPublickeyParams="%{idp.authn.webauthn.preferredPublicKeyParams:EdDSA,ES256,ES384,ES512,RS1,RS256,RS384,RS512}"
         p:credentialRepository-ref="shibboleth.authn.webauthn.DefaultCredentialRepository"
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 00d669b..37ad201 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
@@ -1,3 +1,5 @@
+#### Relying Party properties
+
 # The relying party ID. Must be a valid domain string. A public key credential is only registered and valid for a single relying party ID.
 idp.authn.webauthn.relyingPartyId = localhost
 
@@ -10,6 +12,11 @@ idp.authn.webauthn.relyingPartyName = Shibboleth
 # Allow any subdomain of that origin
 #idp.authn.webauthn.allowOriginSubdomain = false
 
+# Allow credential registrations to be untrusted, the default. If false, this requires attestation statements from the 
+# authenticator using the idp.authn.webauthn.registration.attestationConveyancePreference = DIRECT property  
+# and FIDO metadata is loaded and itself trusted.
+#idp.authn.webauthn.allowUntrustedAttestation = true
+
 # Generic flow properties to adjust behavior
 #idp.authn.webauthn.order = 1000
 #idp.authn.webauthn.forcedAuthenticationSupported = true
@@ -21,26 +28,35 @@ idp.authn.webauthn.supportedPrincipals = \
     saml2/http://example.org/ac/classes/mfa, \
     saml1/http://example.org/ac/classes/mfa
 
+# An override of origins this RP allows in a responses from an authenticator
+#idp.authn.webauthn.origins = https://localhost
+
+# The storage service to use as a credential repository
+#idp.authn.webauthn.StorageService = shibboleth.StorageService
+
+#### Registration properties.
+
 # Access policy for the registration flow
 #idp.authn.webauthn.admin.registration.accessPolicy = 
 # Restrict the usable authentication flows
 #idp.authn.webauthn.admin.registration.authenticationFlows = 
 
-# An override of origins this RP allows in a responses from an authenticator
-#idp.authn.webauthn.origins = https://localhost
-
-### The storage service to use as a credential repository
-#idp.authn.webauthn.StorageService = shibboleth.StorageService
+# Enable FIDO Alliance metadata? If you want to use the metadata service, you *must* download and set the trust root and the legal blob file headers
+#idp.authn.webauthn.metadata.enabled = false
+#idp.authn.webauthn.metadata.trustRootFile=
+#idp.authn.webauthn.metadata.expectedLegalHeaders = Retrieval and use of this BLOB indicates acceptance of the appropriate agreement located at https://fidoalliance.org/metadata/metadata-legal-terms/
 
-## Which type of flow is supported? Usernameless or passwordless
-#idp.authn.webauthn.usernameless.enabled = true
+## If you want to download the metadata from a URL when the IdP starts, you must specify a cache file (.bin) and the URL to fetch the metadata
+#idp.authn.webauthn.metadata.cacheFile = 
+#idp.authn.webauthn.metadata.metadataBlobUrl = https://mds.fidoalliance.org
 
-# Registration properties.
+## If you want to load the metadata from a file *only*, set the metadata blob file location. This will override the metadataBlobUrl property
+#idp.authn.webauthn.metadata.metadataBlobFile = 
 
-### Which authentication flows to require 
+# Which authentication flows to require
 #idp.authn.webauthn.admin.registration.defaultAuthenticationMethods=saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
 
-# Require a residentKey (passkey) to be created when registering a credential. One-of 'discouraged', 'preferred', 'required'
+# Require a resident/discoverable key (passkey) to be created when registering a credential. One-of 'discouraged', 'preferred', 'required'
 #idp.authn.webauthn.registration.residentKey = preferred
 
 # Preferred set of COSE signature algorithms which a created credential will use. The sequence is ordered from the most preferred to the least. The client makes best effort to create the most preferred it can.
@@ -55,6 +71,11 @@ idp.authn.webauthn.supportedPrincipals = \
 # State the preference of the IdP during registration to receive an authenticator attestation. One-of 'none', 'indirect', 'direct', or 'enterprise'.
 #idp.authn.webauthn.registration.attestationConveyancePreference = none
 
+#### Authentication properties
+
+# Which type of flow is supported? Usernameless or passwordless
+#idp.authn.webauthn.usernameless.enabled = true
+
 # Enable this flow to act as a second factor. For example, after a password flow and only requiring a simple user gesture (user presence check)
 #idp.authn.webauthn.2fa.enabled = false
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list