2FAuth/changelog.md
2024-05-29 11:41:47 +02:00

28 KiB

Change log

[5.2.0] - 2024-05-29

2FAuth v5.2 offers a new notification feature. Each user can now decide whether they want to receive an email after a successful login from a new device, or after a failed login.

For now, both notifications are disabled by default. Why this choice when this feature increases security? Because if the email configuration of your 2FAuth instance is not set up correctly, such login attempts will take a while (until all email sending attempts have failed).

If you never set up email sending on your instance, do it. It is the only way to recover your account, whether you use a password or a passkey to authenticate. To help you in this task, all required environment variables are described here. Since v5.1, administrators also have access to a test email button to validate the email configuration from the UI.

Notifications will be enabled by default in a future version.

Last but not least :

⚠️ This version drops PHP 8.1 support ⚠️

Added

  • When installed, 2FAuth now offers shortcuts to common actions.
  • User authentication logs (See user management pages in the admin area).
  • Two user preferences to control the notifications sent when authentication events occur.
  • A user preference to set the timezone applied to dates and times displayed in the app.

New env vars

  • APP_TIMEZONE: The timezone applied to dates and times recorded to database (doc).
  • AUTHENTICATION_LOG_RETENTION: The authentication log retention time, in days (doc).
  • PROXY_HEADER_FOR_IP: Name of the HTTP header sent by a reverse proxy to pass the original visitor IP address. (doc).

Changed

  • MAIL_DRIVER env var renamed to MAIL_MAILER.
    This is not a breaking change as the former name is still supported. This is just to stick to Laravel defaults.
  • NGINX server now also listens to ipv6 in Docker image (#336).

Fixed

  • issue #192 DB_DATABASE path not respected by entrypoint script
  • issue #244 gauth qr code can't be imported
  • issue #255 Only one Webauthn Device functioning
  • issue #295 Add support for PHP 8.3
  • issue #331 Last admin can demote to user, leaving the instance administratorless

API [1.4.0]

  • /api/v1/users/{id}/authentications GET path added (doc).

[5.1.1] - 2024-03-21

Fixed

  • issue #326 Admin panel not working when using security device
  • issue #327 "Keep SSO registration enabled" is not saved

[5.1.0] - 2024-03-08

Hey Administrators, this release is for you, a brand new Admin Panel has arrived.

With this dedicated space, you will be able to manage admin settings previously located in the User Options view (like encryption, version check, registration). Some new settings are available to better control registration (email restrictions and self-ruling SSO) and two new features are coming: Email Configuration Testing and Cache Clearing.

But the real newness is the user management. All registered accounts are now searchable, the administrator role can be granted to any user, user access (password, personal token, security key/passphrase) can be revoked and you may also delete existing users or even create new ones.

Note that the 2FAuth API has been updated with the new paths related to user management.

Added

  • A user preference to clear search results after copying a code (#300).
  • A user preference to return to default group after copying a code (#300).
  • The ability to submit a migration text directly in the Import view besides TXT files & QR codes loading (#288).
  • An administrator setting to restrict registration to a limited range of email addresses (#250).
  • An administrator setting to keep user registration via SSO enabled (#317).
  • A test email feature to ensure email sending works as expected (#307).
  • A Clear cache feature to... clear the cache, but from the browser (#316).
  • Hindi translation, thanks to @saxenas

Changed

  • User preferences & Environment variables have been moved from the About view to the new Administration panel (#303).
  • Spaces are now removed from the Secret when filling out the Advanced form (#311).

Fixed

  • issue #303 "Already authenticated" error message
  • issue #305 403 Forbidden {message: "unauthorized"}
  • issue #315 "Check now" button is untranslatable
  • issue #320 app/Policies/OwnershipTrait contains a bug, i think

API [1.3.0]

  • /api/v1/users paths added to manage registered users
  • oauth_provider property to the response body of /api/v1/user GET path

[5.0.4] - 2024-02-23

Added

Fixed

  • issue #284 Blank screen with version 5.0.3
  • issue #296 WARN Command cancelled (env=production breaks docker entrypoint)
  • issue #298 WebAuthn account recovery and password recovery doesn't work. Email template broken
  • issue #299 OID redirect behind reverse proxy

[5.0.3] - 2024-01-19

⚠️ For everyone experiencing a blank screen after updating to v5.*, please set the ASSET_URL env variable to the same value as APP_URL.

Added

  • The ASSET_URL now appears in the .env.example variables next to APP_URL

Fixed

[5.0.2] - 2023-12-29

Fixed

  • issue #265 Version 5.0.1 doesn't display colored countdown segments

[5.0.1] - 2023-12-29

Fixed

[5.0.0] - 2023-12-15

2FAuth v5, the not-so-major release

Why? Because most of the changes are internal and come from the Vue 3 migration. I choose the long way, the one where all components had to be rewritten to adopt the new Vue Composition API and where the whole architecture has been rethought. Thus, despite all that work, almost nothing has changed on the surface.

But it was a necessary step, especially because Vue 2 will reach End Of Life on the end of 2023. Now 2FAuth is also better prepared for futur enhancements.

Ok, so is there anything new?
Yes, SSO.

Not so bad, right ?

The feature, bootstrapped by @indyKoning with an OpenID provider, has been completed and now provides a Github provider as well. I plan to add more providers, tell me in the discussion which ones you would like to see. If you need help, the docs site has been updated to guide you through the setup process.

v5 also comes with the following.

Added

  • Single Sign-On (SSO) is now available as an authentication method, with OpenID & Github. Contributed by @indyKoning (PR #243)
  • The ability to reveal passwords obscured with dots. See the Options tab in Settings (#208).
  • An env var to set a proxy for outgoing requests (#252).

Changed

  • Automatic signed out user now lands on the Login view instead of the Autolock view (#138)
  • User preferences that depend on another now appear indented
  • Letters with diacritic marks are allowed in Group name (#241)
  • Request body threshold increased to 10Mo in the Docker image to allow importing large file (#239)

Removed

Fixed

API [1.2.0]

  • /api/v1/user GET path added
  • ids and withOtp query parameters added to the /api/v1/twofaccounts GET path

Full Changelog: v4.2.4...v5.0.0

[4.2.4] - 2023-11-21

Changed

  • PR #242 The Docker image now embed the PostgreSQL PHP extensions, thanks to @stavros-k

Fixed

[4.2.3] - 2023-09-26

Fixed

  • issue #232 Vendor.js throws error making frontend unusable
  • issue #233 The Close button of the 404 error page loops the page on itself

[4.2.2] - 2023-09-17

Fixed

  • issue #232 Vendor.js throws error making frontend unusable

[4.2.1] - 2023-09-14

Fixed

[4.2.0] - 2023-09-13

Added

  • An Only for the brave feature: ctrl + click a TOTP account from the main view automatically generates a password and copies it to the clipboard without displaying it at all. Will the password be valid at the time you paste it? Nobody knows 💀
  • The MAIL_VERIFY_SSL_PEER environment variable to disable SSL peers verification (#219).
  • Russian translation, but partial. Want to help complete this translation? ➡️ 2FAuth project on Crowdin.

Changed

  • Navigation with the Back and Close buttons is now fully consistent with their labeling, even when browsing back through successive views using those buttons.
  • The length of the email submitted during registration is now limited to 191 characters (#214).
  • Upgrade to Laravel 10

Fixed

  • issue #213 checkForUpdate value is missing in the About view
  • Inconsistent page titles

Full Changelog: v4.1.0...v4.2.0

[4.1.0] - 2023-07-07

This new version introduces a very common feature in the 2FA app world, the automatic generation and display of passwords.

Since the very beginning, 2FAuth offers an Open, Click & Get one password behavior, this is one of the main reasons why I created it. But this can be very troublesome or frustrating for users migrating from other 2FA apps as almost all of them work with an Open & Get passwords behavior, which is much more straightforward.

So this is now only a user choice as 2FAuth offers both behaviors via a user preference. Obvisouly, the Open, Click & Get one password behavior remains the default one.

Added

  • A user preference to generate and show 2FA passwords on the main view without user interaction (#153)
  • An administrator setting to disable user registration (#170)
  • A 2fauth:install Artisan command to ease both initial and upgrade installation.
  • A spinner, during 2FA password loading - By @josh-gaby.
  • Russian translation, but partial. Want to help complete this translation? ➡️ 2FAuth project on Crowdin.

Changed

  • Aegis migrations with empty name properties are no longer rejected. The issuer property is then used as a fallback value.
  • The Docker image now embed the MySQL/MariaDB PHP extension, so it may be ready to work with.

Fixed

[4.0.3] - 2023-06-30

Security release

  • Fix possible SQL injection in validation rule (thx @YouGina)
  • Fix various possible XSS injections (thx @quirinziessler)

[4.0.2] - 2023-04-19

Fixed

  • issue #176 Lost keys when upgrading to 4.x whilst using proxy header authentication

[4.0.1] - 2023-04-16

Fixed

[4.0.0] - 2023-04-14

Time for multi-user has arrived, here comes v4.0!

This is a first step mainly dedicated to internal changes, so the feature has been integrated gently. For now, almost nothing has changed around user management, except that registrations are opened to new users and some options are only available to the administrator.

This version also comes with nice additions. A light theme, an export feature or the support of custom base url just to name a few.

⚠️ This release drops PHP 8.0 support ⚠️

Added

  • An Export feature (accessible via the Manage view) that lets you download your 2FA data in a JSON migration file
  • The Import feature accepts the 2FAuth JSON file generated by the Export feature
  • Support of custom base URL. You can now install 2FAuth in a domain sub-directory, e.g https://mydomain/2fauth/ (see Docs)
  • ctrl+F keyboard shortcut to focus on Search on the main view
  • A light theme
  • IP addresses of failed login attempts are now logged

Changed

⚠️ 2FAuth uses a new component to operate the WebAuthn authentication that cannot use existing registrations of your security devices. As a consequence, all your security devices will be revoked and the "Use Webauthn only" option will be disabled during the upgrade to avoid any issue and/or lockout. You will have to sign in using your email and password to re-register you security devices.

  • The Manage view layout has been rearranged: The search bar remains and the action buttons now stand in the page footer
  • Password formatting is now a user option available with 3 formats: Grouping digits by pair, by trio or by half
  • Failed login throttling and API calls throttling can be configured in the .env file
  • Logs give more information
  • Upgrade to Laravel 9.0

Removed

  • The ability to set a Secret in a plain text format (in the advanced form). This was confusing and without any benefit.

Fixed

[3.4.2] - 2023-01-25

Fixed

  • issue #160 Steam otpauth URI from Aegis are rejected by the Import feature

[3.4.1] - 2022-11-25

Fixed

  • issue #140 Bad regex for Period field (advanced form)
  • issue #141 Digits field is missing in advanced form

[3.4.0] - 2022-10-20

This release is a big step towards more accessibility. Keyboard navigation is now fully supported, with clean and consistent focus, and several UI components have received relevant ARIA properties to support assistive technologies.

It also provides a rewritten Import feature that supports new export formats (Aegis and 2FAS Authenticators) and more to come.

⚠️ This release should be the last that supports PHP 8.0

Added

  • An option to check for new release on Github (#127)
  • An option to automatically copy One-Time Passwords when they are displayed (#125)
  • Aegis and 2FAS export formats are now supported by the Import feature (#128)
  • (Partial) Spanish and Chinese (simplified) localizations

Changed

  • Password fields can reveal the password and inform about the password strength (#124)

Fixed

  • issue #126 HOTP counters are not updated after OTP generation
  • Autolock setup ignored when session lifetime was shorter, causing CSRF token mismatch errors

[3.3.3] - 2022-08-16

Fixed

  • issue #110 Can't sign in with login/password after the removal of the last webauthn device
  • issue #111 Inappropriate notification about existing user during registration
  • issue #113 Password reset does not work
  • issue #115 WEBAUTHN_NAME .env variable set as null generates server error

[3.3.1-3.3.2] - 2022-08-02

Fixed

[3.3] - 2022-08-01

⚠️ This release drops PHP 7.4 support ⚠️

The docker image has been upgraded as well.

Added

Changed

  • The footer is now visible everywhere to ease access to the About page

Fixed

  • issue #89 Deploy to Heroku fails without composer.lock
  • issue #102 OTP generation from the Create/Edit form with invalid data should display errors
  • issue #103 Google Authenticator import error: "Label contains a colon"
  • issue #109 Account creation/import fails when encryption is On

Removed

  • PHP 7.4 support

[3.2] - 2022-07-18

Added

  • Support of Google Authenticator migration data: QR codes generated by the G-Auth export feature can be flashed/uploaded to import their data into 2FAuth. (Import doc, #74)
  • Partial support of STEAM TOTP. See the Steam Guard doc for detailed informations about this support (#30)

Changed

  • Pages now have a unique title
  • Signing in while already authenticated no longer display the "Already authenticated" error message (#88)
  • The Auto lock feature now forwards to a dedicated page to ensure proper logout and prevent CSRF token mismatch error (see issue #73) that still occurred in certain situation

Fixed

  • issue #90 Empty page after deletion of all accounts
  • issue #97 Secret's format selector should not clear the locked field in edit form

[3.1.1] - 2022-05-31

Fixed

[3.1.0] - 2022-05-20

Added

  • PROXY_LOGOUT_URL environment variable to specify a custom logout url when using an auth proxy
  • Locked/Unlocked state for the Secret field in the 2FA account Edit form to prevent undesirable edit.

Fixed

  • Fix OAuth setting view returning an error when auth is handled by a proxy
  • issue #57 Can't save icons or upload QR codes - Docker installation
  • issue #81 Unable to create configured logger. Using emergency logger
  • issue #82 Autolock feature should be disabled while auth is handled by a proxy
  • issue #84 Reverse-proxy-guard authenticates request without valid headers configuration

[3.0.2] - 2022-05-14

Added

  • Mail settings section in the docker readme by @aronmal

Fixed

  • issue #72 2FA secret passed as plain text rejected by form validation
  • issue #73 CSRF token mismatch
  • issue #78 Add tags other then latest when pushing images to dockerhub

[3.0.1] - 2022-05-11

Fixed

  • issue #68 2fauth not run after update
  • issue #71 Cannot view old TOTP entries on latest Docker Image
  • Missing login information on the demo website

[3.0.0] - 2022-05-09

Finally, here is version 3.0!

This is a milestone in the 2FAuth development that greatly enhances 2FAuth under the hoods and comes with a brand new documentation.

New

  • 2FAuth now exposes a REST API following the OpenAPI 3.1 specification that allows connexion with third parties (see the API doc)
  • Support of the Web Authentication standard, aka WebAuthn, to login using a security device like a Yubikey or FaceID
  • Support of authentication proxy to bypass the 2FAuth auth login
  • Heroku setup to deploy 2FAuth using the Deploy to Heroku button

Also added

  • Ability to delete the user account and reset 2FAuth
  • The content of any non-2FA QR code can be copied or followed (in case of an HTTP link)
  • PHP 8.0 support

Changed

  • 2Fauth now uses the browser language preference by default.
  • The current group is now clickable in the group selector
  • Upgrade to Laravel 8

Fixed

  • issue #45 Account or Service field containing colon breaks the Test feature in the advanced form
  • issue #47 Account creation fails when otpauth service parameter is missing
  • issue #50 Email password reset does not work
  • issue #51 Cannot delete a group with accounts (MySQL only)
  • issue #52 null "Default group" setting after group delete
  • issue #57 Can't save icons or upload QR codes - Docker installation

Removed

  • PHP 7.3 support

[2.1.0] - 2021-03-04

Added

[2.0.2] - 2020-12-04

Fixed

  • issue #20 Issues using 'Protect sensible data'

[2.0.1] - 2020-12-03

Fixed

  • issue #18 Install using MySQL causes exception
  • issue #17 Capitalization of email address during login should not matter
  • issue #15 Applied group filter is not removed if the group is deleted
  • issue #14 Cache is not refreshed automatically after group changes
  • Missing footer links at first start
  • Missing redirection after registration

[2.0.0] - 2020-11-29

2FAuth goes to v2.0!

This release comes with multiple improvements and a lot of changes under the hood. Don't forget to backup your database before you upgrade. Have fun :)

Added

  • Add Groups to enhance accounts management
  • New advanced form to define fully customized accounts without QR code
  • New user option to skip the submitting page
  • New DB protection option to encrypt sensitive 2FA data
  • QR code generation of recorded accounts
  • Support of the OTP image parameter when a QR code is imported

Changed

  • Performance improvement thanks to data caching
  • Show Register/Login forms and their links only when relevant
  • Let the user choose between all available submitting methods (livescan, qrcode upload, advanced form)
  • Translations are now managed on Crowdin.com/2fauth. You master some foreign languages? Why not help translate 2FAuth, your help would be welcome.

Fixed

  • issue #13 Long Service name push content out of viewport
  • issue #11 Token generation do not loop if TOTP period is different from 30s
  • issue #9 Upload QR code in standard form return a 422 missing uri field

[1.3.1] - 2020-10-12

Changed

  • Upgrade to Laravel 7.0
  • Drop PHP 7.2 support
  • Enable the Request reset password form in Demo mode but inactivated

Fixed

  • Fix missing notifications in Auth views

[1.3.0] - 2020-10-09

Added

  • Application lock on security code copy or after a fixed period of inactivity
  • Notify user that https is required in order to use camera streaming to flash QR code
  • Notify user that the security code has been copied to clipboard when user click it
  • Show selected accounts count in Manage view
  • New option to show/hide icons in accounts list

Changed

  • More mobile friendly Close button for modal
  • More advanced notification component
  • Fixed header to keep Search field and Delete button always visible
  • Switches replaced by checkboxes in Settings

Fixed

  • Hide context around iPhone X+ notch
  • Unwanted access to restricted pages as guest

[1.2.0] - 2020-09-18

Added

  • QR Code scan using live stream when a camera is detected. Previous QR Code scanner remains available as fallback method or can be forced in Settings.
  • New alternative layouts: List or Grid
  • Accounts can be reordered

Changed

  • Notification banner (when saving settings) now has a fixed position

[1.1.0] - 2020-03-23

Added

  • Demonstration mode with restricted features and ability to reset content with an artisan command
  • Option to close token popup when the code is pasted (by clicking/taping on it)

Changed

  • Options default values can now be set in config/app
  • Generated assets are now part of the repo to ease deployement

Fixed

  • Option labels attached to wrong checkboxes