diff --git a/services/src/main/java/org/keycloak/organization/authentication/authenticators/browser/OrganizationAuthenticator.java b/services/src/main/java/org/keycloak/organization/authentication/authenticators/browser/OrganizationAuthenticator.java index fb88ecb0a11..cfb6722a474 100644 --- a/services/src/main/java/org/keycloak/organization/authentication/authenticators/browser/OrganizationAuthenticator.java +++ b/services/src/main/java/org/keycloak/organization/authentication/authenticators/browser/OrganizationAuthenticator.java @@ -364,6 +364,10 @@ public class OrganizationAuthenticator extends IdentityProviderAuthenticator { form.addError(new FormMessage("Your email domain matches the " + organization.getName() + " organization but you don't have an account yet.")); } + // user is null, setup webauthn data if enabled + if (webauthnAuth.isPasskeysEnabled()) { + webauthnAuth.fillContextForm(context); + } context.challenge(form.createLoginUsername()); } diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/passwordless/PasskeysOrganizationAuthenticationTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/passwordless/PasskeysOrganizationAuthenticationTest.java index 70a23f08ead..cd1ae8e38f7 100644 --- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/passwordless/PasskeysOrganizationAuthenticationTest.java +++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/webauthn/passwordless/PasskeysOrganizationAuthenticationTest.java @@ -107,6 +107,23 @@ public class PasskeysOrganizationAuthenticationTest extends AbstractWebAuthnVirt appPage.assertCurrent(); + events.expectLogin() + .user(user.getId()) + .detail(Details.USERNAME, user.getUsername()) + .detail(Details.CREDENTIAL_TYPE, WebAuthnCredentialModel.TYPE_PASSWORDLESS) + .detail(WebAuthnConstants.USER_VERIFICATION_CHECKED, "true") + .assertEvent(); + + logout(); + events.clear(); + + // login forcing the organization + oauth.scope("organization:email"); + oauth.openLoginForm(); + WaitUtils.waitForPageToLoad(); + + appPage.assertCurrent(); + events.expectLogin() .user(user.getId()) .detail(Details.USERNAME, user.getUsername())