-
Notifications
You must be signed in to change notification settings - Fork 229
feat(passkeys): Support passkeys verification method for sessionTokens #20379
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -78,6 +78,7 @@ export enum VerificationMethods { | |
| totp2fa = 2, | ||
| recoveryCode = 3, | ||
| sms2fa = 4, | ||
| passkey = 5, | ||
| } | ||
|
|
||
| /** | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1813,6 +1813,12 @@ export class AccountHandler { | |
| res.locale = account.locale; | ||
| } | ||
| if (scope.contains('profile:amr')) { | ||
| // authenticatorAssuranceLevel here is account-level: it tells the RP | ||
| // what AAL this account *requires* (based on mandatory second factors | ||
| // like TOTP), so the RP can decide whether to prompt for step-up. | ||
| // It is NOT the AAL of the current session. Passkeys are excluded from | ||
| // this computation — a passkey-only account reports AAL1 even though | ||
| // AAL2 is achievable. See FXA-13432. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just for my own personal clarification... A passkey session is a AAL2 session correct? I'm just getting thrown off by the 'is acheivable' comment... I guess I also don't understand why a 'passkey only' account is excluded from this calculation. Is it that we are concerned the RP will assume TOTP is required? I'd assume a passkey only account would be require AAL2 just like an account with totp. Maybe this is incorrect though.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Passkey session is AAL2, but the account does not necessarily require AAL2 for all sign-ins unless 2FA/TOTP is also enabled. |
||
| const amrValues = await authMethods.availableAuthenticationMethods( | ||
| this.db, | ||
| account | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for cleaning this up!