Skip to content
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

feat: add MFA for WebAuthn #1775

Merged
merged 6 commits into from
Oct 11, 2024
Merged

feat: add MFA for WebAuthn #1775

merged 6 commits into from
Oct 11, 2024

Conversation

J0
Copy link
Contributor

@J0 J0 commented Sep 18, 2024

What kind of change does this PR introduce?

Adds MFA for WebAuthn and supporting migrations

What is the current behavior?

MFA for Phone and MFA for TOTP is supported

What is the new behavior?

Developers can use MFA For WebAuthn to sign in

example.env Outdated Show resolved Hide resolved
@J0 J0 force-pushed the j0/add_webauthn branch 2 times, most recently from 4bafb15 to cb1ac2a Compare September 28, 2024 09:34
internal/api/mfa.go Outdated Show resolved Hide resolved
@J0
Copy link
Contributor Author

J0 commented Sep 28, 2024

Not quite ready yet, please check back after 12pm CEST tomorrow..

internal/models/user.go Outdated Show resolved Hide resolved
internal/models/user.go Outdated Show resolved Hide resolved
internal/models/user.go Outdated Show resolved Hide resolved
@coveralls
Copy link

coveralls commented Sep 30, 2024

Pull Request Test Coverage Report for Build 11293653315

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 141 of 360 (39.17%) changed or added relevant lines in 5 files are covered.
  • 76 unchanged lines in 4 files lost coverage.
  • Overall coverage decreased (-0.4%) to 57.577%

Changes Missing Coverage Covered Lines Changed/Added Lines %
internal/models/user.go 9 18 50.0%
internal/models/challenge.go 16 37 43.24%
internal/models/factor.go 10 46 21.74%
internal/api/mfa.go 105 258 40.7%
Files with Coverage Reduction New Missed Lines %
internal/api/mfa.go 2 57.97%
cmd/serve_cmd.go 10 0.0%
internal/api/api.go 19 84.21%
internal/api/middleware.go 45 80.37%
Totals Coverage Status
Change from base Build 11256757764: -0.4%
Covered Lines: 9499
Relevant Lines: 16498

💛 - Coveralls

@J0 J0 marked this pull request as ready for review October 2, 2024 14:57
@J0 J0 requested a review from a team as a code owner October 2, 2024 14:57
Copy link
Contributor

@hf hf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very good, very close! Thanks!

internal/api/mfa_test.go Outdated Show resolved Hide resolved
internal/models/amr.go Show resolved Hide resolved
internal/models/factor.go Outdated Show resolved Hide resolved
migrations/20240930203726_add_web_authn.up.sql Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
@J0 J0 force-pushed the j0/add_webauthn branch 2 times, most recently from c9b18e3 to cc764cc Compare October 10, 2024 14:16
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
Copy link
Contributor

@hf hf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pretty solid. Approving but please consider the points especially about scanning.

internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/models/challenge.go Show resolved Hide resolved
internal/models/challenge.go Outdated Show resolved Hide resolved
internal/models/factor.go Outdated Show resolved Hide resolved
internal/models/factor.go Outdated Show resolved Hide resolved
Co-authored-by: Stojan Dimitrovski <sdimitrovski@gmail.com>
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
internal/api/mfa.go Outdated Show resolved Hide resolved
J0 and others added 2 commits October 10, 2024 22:12
Co-authored-by: Stojan Dimitrovski <sdimitrovski@gmail.com>
internal/models/factor.go Outdated Show resolved Hide resolved
@J0
Copy link
Contributor Author

J0 commented Oct 11, 2024

Merging first but let's not release until we do a full test with the updated frontend bindings. I will follow up on that front.

None of the code below should be active since it's flagged behind MFA_WEB_AUTHN_*_ENABLED

@J0 J0 merged commit 8cc2f0e into master Oct 11, 2024
2 checks passed
@J0 J0 deleted the j0/add_webauthn branch October 11, 2024 14:04
cstockton pushed a commit that referenced this pull request Oct 15, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.163.0](v2.162.2...v2.163.0)
(2024-10-15)


### Features

* add mail header support via `GOTRUE_SMTP_HEADERS` with `$messageType`
([#1804](#1804))
([99d6a13](99d6a13))
* add MFA for WebAuthn
([#1775](#1775))
([8cc2f0e](8cc2f0e))
* configurable email and sms rate limiting
([#1800](#1800))
([5e94047](5e94047))
* mailer logging ([#1805](#1805))
([9354b83](9354b83))
* preserve rate limiters in memory across configuration reloads
([#1792](#1792))
([0a3968b](0a3968b))


### Bug Fixes

* add twilio verify support on mfa
([#1714](#1714))
([aeb5d8f](aeb5d8f))
* email header setting no longer misleading
([#1802](#1802))
([3af03be](3af03be))
* enforce authorized address checks on send email only
([#1806](#1806))
([c0c5b23](c0c5b23))
* fix `getExcludedColumns` slice allocation
([#1788](#1788))
([7f006b6](7f006b6))
* Fix reqPath for bypass check for verify EP
([#1789](#1789))
([646dc66](646dc66))
* inline mailme package for easy development
([#1803](#1803))
([fa6f729](fa6f729))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants