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

Add 2FA authentication via scheb/2fa #6589

Merged
merged 41 commits into from
Jun 24, 2022

Conversation

alexander-schranz
Copy link
Member

@alexander-schranz alexander-schranz commented May 3, 2022

Q A
Bug fix? no
New feature? yes
BC breaks? no
Deprecations? no
Fixed tickets fixes #3482
Related issues/PRs -
License MIT
Documentation PR sulu/sulu-docs#720

What's in this PR?

Add 2fa authentication via scheb/2fa.

Why?

Supporting two factor authentication.

Example Usage

composer require scheb/2fa-bundle
composer require scheb/2fa-email
# additional recommended
composer require scheb/2fa-trusted-devices
composer require scheb/2fa-backup-codes
# alternative
composer require scheb/2fa-google-authenticator
composer require scheb/2fa-totp

To Do

  • Create a documentation PR
  • Add breaking changes to UPGRADE.md
  • User Entity
    • 2FA Type Method
    • 2FA Options
  • Api Implementation https://symfony.com/bundles/SchebTwoFactorBundle/current/api.html
  • Open Questions
    • check 2FA and multiple Firewalls
    • 2FA enabled only on website
    • 2FA enabled only on admin
    • Backup Codes should never be outputted by the API
      • As discussed all twoFactorOptions should be encrypted / decrypt need to be lazy as it should not effect performance as user is loaded every request. canceled
  • Frontend Implementation
    • Profile
      • Type Selection
      • QR Code (totp, google authenticator)
    • Login
      • Email
      • Totp
      • Google Authenticator
      • Backup Codes
      • Trusted Devices
      • Error Handling
  • Translation "Back to Login" / "Zurück zum Login" (auch für Passwort vergessen)
  • Translation "Verifizieren"
  • Smaller Checkbox text

@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 4 times, most recently from 90d71f2 to 686a506 Compare May 3, 2022 22:46
@alexander-schranz alexander-schranz changed the title WIP: Add 2fa authentication via scheb/2fa WIP: Add 2FA authentication via scheb/2fa May 3, 2022
@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 2 times, most recently from 1d6d47a to f806f37 Compare May 3, 2022 23:03
@matthieu2607
Copy link

@alexander-schranz, nice feature ;)

@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 3 times, most recently from c18c28a to 167019b Compare May 4, 2022 23:38
@alexander-schranz
Copy link
Member Author

@matthieu2607 Thx it does look good that we will get this into Sulu 2.5. Already preparing the frontend for 2fa codes:

Bildschirmfoto 2022-05-05 um 01 29 19

Emails already send with the code, but need to implement the success handlers and check endpoints. Maybe will get a running prototype next week.

@alexander-schranz alexander-schranz added the Feature New functionality not yet included in Sulu label May 4, 2022
@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 9 times, most recently from 377a50f to 065309b Compare May 6, 2022 13:26
@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 3 times, most recently from f117286 to 972f3ab Compare June 15, 2022 11:31
@alexander-schranz alexander-schranz force-pushed the feature/scheb-2fa branch 2 times, most recently from f808f4a to 35177ba Compare June 22, 2022 15:49
@wachterjohannes wachterjohannes merged commit c1f804e into sulu:2.5 Jun 24, 2022
@alexander-schranz alexander-schranz deleted the feature/scheb-2fa branch June 24, 2022 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New functionality not yet included in Sulu
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for 2FA-Auth
3 participants