From dd8c4a83bbca007c374727e0fc6d8482293b2034 Mon Sep 17 00:00:00 2001 From: peintnermax Date: Tue, 17 Sep 2024 14:31:43 +0200 Subject: [PATCH] passkey u2f improvements --- apps/login/readme.md | 51 +++++++++++++++++++++++--- apps/login/screenshots/register.png | Bin 0 -> 161800 bytes apps/login/src/lib/server/passkeys.ts | 7 +++- apps/login/src/lib/server/u2f.ts | 2 +- apps/login/src/lib/zitadel.ts | 38 +++++++++---------- apps/login/src/ui/RegisterPasskey.tsx | 38 +++---------------- 6 files changed, 77 insertions(+), 59 deletions(-) create mode 100644 apps/login/screenshots/register.png diff --git a/apps/login/readme.md b/apps/login/readme.md index c35eaf0eac6..c1b55ddc39e 100644 --- a/apps/login/readme.md +++ b/apps/login/readme.md @@ -141,11 +141,12 @@ Requests to the APIs made: - `updateSession()` When updating the session for the webAuthN challenge, we set `userVerificationRequirement` to `UserVerificationRequirement.DISCOURAGED` as this will request the webAuthN method as second factor and not as primary method. -After updating the session, the user is signed in. +After updating the session, the user is **always** signed in. :warning: required as this page is a follow up for setting up a u2f method. ### /passkey This page requests a webAuthN challenge for the user and updates the session afterwards. +It is invoked directly after setting up a passkey `/passkey/set` or when loggin in a user after `/loginname`. /passkey @@ -156,7 +157,7 @@ Requests to the APIs made: - `updateSession()` When updating the session for the webAuthN challenge, we set `userVerificationRequirement` to `UserVerificationRequirement.REQUIRED` as this will request the webAuthN method as primary method to login. -After updating the session, the user is signed in. +After updating the session, the user is **always** signed in. :warning: required as this page is a follow up for setting up a passkey > NOTE: This page currently does not check whether a user contains passkeys. If this method is not available, this page should not be used. @@ -185,19 +186,20 @@ At the moment, U2F methods are hidden if a method is already added on the users ### /passkey/set -/passkey/set - This page sets a passkey method for a user. This page can be either enforced, or optional depending on the Login Settings. +/passkey/set + Requests to the APIs made: - `getBrandingSettings(org?)` - `getSession()` -- `registerPasskeyLink()` +- `createPasskeyRegistrationLink(token)` :warning: This request requires the session token +- `registerPasskey()` - `verifyPasskey()` If the loginname decides to redirect the user to this page, a button to skip appears which will sign the user in afterwards. -If a passkey is registered, we redirect the user to `/passkey` to again verify it and sign in with the new method. +After a passkey is registered, we redirect the user to `/passkey` to verify it again and sign in with the new method. The `createPasskeyRegistrationLink()` uses the token of the session which is determined by the flow. > NOTE: Redirecting the user to `/passkey` will not be required in future and the currently used session will be hydrated directly after registering. (https://github.com/zitadel/zitadel/issues/8611) @@ -205,8 +207,45 @@ If a passkey is registered, we redirect the user to `/passkey` to again verify i ### /u2f/set +This page registers a U2F method for a user. + +/u2f/set + +Requests to the APIs made: + +- `getBrandingSettings(org?)` +- `getSession()` +- `registerU2F(token)` :warning: This request requires the session token +- `verifyU2FRegistration()` + +After a u2f method is registered, we redirect the user to `/passkey` to verify it again and sign in with the new method. The `createPasskeyRegistrationLink()` uses the token of the session which is determined by the flow. + +> NOTE: Redirecting the user to `/passkey` will not be required in future and the currently used session will be hydrated directly after registering. (https://github.com/zitadel/zitadel/issues/8611) + ### /register +This page shows a register page, which gets firstname and lastname of a user as well as the email. It offers to setup a user, using password or passkeys. + +/register + +Requests to the APIs made: + +- `listOrganizations()` :warning: TODO: determine the default organization if no context is set +- `getLegalAndSupportSettings(org)` +- `getPasswordComplexitySettings()` +- `getBrandingSettings()` +- `addHumanUser()` +- `createSession()` +- `getSession()` + +To register a user, the organization where the resource will be created is determined first. If no context is provided via url, we fall back to the default organization of the instance. + +**PASSWORD:** If a password is set, the user is created as a resource, then a session using the password check is created immediately. + +**PASSKEY:** If passkey is selected, the user is created as a resource first, then a session using the userId is created immediately. This session does not yet contain a check, we therefore redirect the user to setup a passkey at `/passkey/set`. As the passkey set page verifies the passkey right afterwards, the process ends with a signed in user. + +> NOTE: https://github.com/zitadel/zitadel/issues/8616 to determine the default organization of an instance must be implemented in order to correctly use the legal-, login-, branding- and complexitysettings. + ### /idp This page doubles as /loginname but limits it to choose from IDPs diff --git a/apps/login/screenshots/register.png b/apps/login/screenshots/register.png new file mode 100644 index 0000000000000000000000000000000000000000..ba9f6951d803ebdd9c4e31ae18111c9244015466 GIT binary patch literal 161800 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 VJJUZRw+;MJKd*Hz`>a{u{{@Vba_Rs8 literal 0 HcmV?d00001 diff --git a/apps/login/src/lib/server/passkeys.ts b/apps/login/src/lib/server/passkeys.ts index 9c507f95779..e0038836849 100644 --- a/apps/login/src/lib/server/passkeys.ts +++ b/apps/login/src/lib/server/passkeys.ts @@ -49,7 +49,12 @@ export async function registerPasskeyLink( throw new Error("Could not get session"); } // TODO: add org context - const registerLink = await createPasskeyRegistrationLink(userId); + + // use session token to add the passkey + const registerLink = await createPasskeyRegistrationLink( + userId, + sessionCookie.token, + ); if (!registerLink.code) { throw new Error("Missing code in response"); diff --git a/apps/login/src/lib/server/u2f.ts b/apps/login/src/lib/server/u2f.ts index 3f61f526fa4..4dba59a0e10 100644 --- a/apps/login/src/lib/server/u2f.ts +++ b/apps/login/src/lib/server/u2f.ts @@ -44,7 +44,7 @@ export async function addU2F(command: RegisterU2FCommand) { return { error: "Could not get session" }; } - return registerU2F(userId, domain); + return registerU2F(userId, domain, sessionCookie.token); } export async function verifyU2F(command: VerifyU2FCommand) { diff --git a/apps/login/src/lib/zitadel.ts b/apps/login/src/lib/zitadel.ts index 43715a94cbc..e255e4cc7f4 100644 --- a/apps/login/src/lib/zitadel.ts +++ b/apps/login/src/lib/zitadel.ts @@ -442,7 +442,6 @@ export function createUser( info: IDPInformation, ) { const userData = PROVIDER_MAPPING[provider](info); - console.log("ud", userData); return userService.addHumanUser(userData, {}); } @@ -468,23 +467,15 @@ export async function passwordReset(userId: string) { */ export async function createPasskeyRegistrationLink( userId: string, - token?: string, + token: string, ) { - // let userService; - // if (token) { - // const authConfig: ZitadelServerOptions = { - // name: "zitadel login", - // apiUrl: process.env.ZITADEL_API_URL ?? "", - // token: token, - // }; - // - // const sessionUser = initializeServer(authConfig); - // userService = user.getUser(sessionUser); - // } else { - // userService = user.getUser(server); - // } + const transport = createServerTransport(token, { + baseUrl: process.env.ZITADEL_API_URL!, + httpVersion: "2", + }); - return userService.createPasskeyRegistrationLink({ + const service = createUserServiceClient(transport); + return service.createPasskeyRegistrationLink({ userId, medium: { case: "returnCode", @@ -499,8 +490,18 @@ export async function createPasskeyRegistrationLink( * @param domain the domain on which the factor is registered * @returns the newly set email */ -export async function registerU2F(userId: string, domain: string) { - return userService.registerU2F({ +export async function registerU2F( + userId: string, + domain: string, + token: string, +) { + const transport = createServerTransport(token, { + baseUrl: process.env.ZITADEL_API_URL!, + httpVersion: "2", + }); + + const service = createUserServiceClient(transport); + return service.registerU2F({ userId, domain, }); @@ -550,7 +551,6 @@ export async function registerPasskey( userId, code, domain, - // authenticator: }); } diff --git a/apps/login/src/ui/RegisterPasskey.tsx b/apps/login/src/ui/RegisterPasskey.tsx index a56c34933a1..db96474c010 100644 --- a/apps/login/src/ui/RegisterPasskey.tsx +++ b/apps/login/src/ui/RegisterPasskey.tsx @@ -139,6 +139,10 @@ export default function RegisterPasskey({ return; } + continueAndLogin(); + } + + function continueAndLogin() { const params = new URLSearchParams(); if (organization) { @@ -147,41 +151,11 @@ export default function RegisterPasskey({ if (authRequestId) { params.set("authRequestId", authRequestId); - params.set("sessionId", sessionId); - - router.push("/passkey?" + params); - } else { - continueAndLogin(); } - } - function continueAndLogin() { - if (authRequestId) { - const params = new URLSearchParams({ - authRequest: authRequestId, - }); + params.set("sessionId", sessionId); - if (sessionId) { - params.set("sessionId", sessionId); - } - - if (organization) { - params.set("organization", organization); - } - - router.push("/login?" + params); - } else { - const params = new URLSearchParams(); - - if (sessionId) { - params.append("sessionId", sessionId); - } - if (organization) { - params.append("organization", organization); - } - - router.push("/signedin?" + params); - } + router.push("/passkey?" + params); } return (