UmbracoTwoFactorAuthentication
Add SMS codes via Twilio to Umbraco back office logins
Free package for Umbraco 8 that adds a second login step for back office users, with a one-time code sent by SMS through Twilio.
Install-Package UmbracoTwoFactorAuthenticationThe problem it solves
A password alone is a weak guard for a CMS back office, where one stolen login can change or delete a whole site. Umbraco 8 had no ready SMS option for a second factor. This package adds a code sent to the user's phone before the back office opens.
Typical uses
- Protect editor and admin logins on an Umbraco 8 site
- Meet a client security rule that asks for two-factor login
- Add a second factor for agencies that share back office access with many editors
At a glance
- NuGet package
- UmbracoTwoFactorAuthentication
- Latest version
- v1.0.0 · 1 releases
- Umbraco
- Umbraco 8
- .NET
- net462
- First released
- Sep 2021
- Last updated
- Sep 2021
- Downloads
- 715
- License
- MIT
- Requirements
- Umbraco 8 on .NET Framework 4.6.2 or laterA Twilio account with a service SIDAccess to web.config
- Works with
- Twilio SMS
What UmbracoTwoFactorAuthentication does
After the password step, users enter a verification code sent to their phone through Twilio.
A Two Factor Authentication dashboard in the Content and Settings sections lets each user turn 2FA on, confirm a phone number with a test code, or remove it.
Users who already set up 2FA see their registered number in a protected form on the dashboard.
Twilio account SID, auth token and service SID go in web.config. The install transform adds placeholder keys and switches the OWIN startup for you.
Use the bundled TwoFactorBackOfficeOwinStartup, or plug the package's user manager into your own startup class.
From install to first use
Install-Package UmbracoTwoFactorAuthentication- Install the package
Add UmbracoTwoFactorAuthentication from NuGet to your Umbraco 8 project.
- Add Twilio keys
Replace the placeholder values for Twilio.AccountSID, Twilio.AuthToken and Twilio.ServiceSid in web.config.
- Check the OWIN startup
The install sets owin:appStartup to TwoFactorBackOfficeOwinStartup. If you use your own startup class, register TwoFactorBackOfficeUserManager there instead.
- Users turn it on
Each user opens the Two Factor Authentication dashboard, enters a phone number, receives a code and confirms it.
UmbracoTwoFactorAuthentication questions
Need a custom feature or help installing? OSKI built this package and can help.
Contact usWhich Umbraco version does it support?+
Umbraco 8, which runs on .NET Framework. It uses the OWIN startup and back office user manager from that version, so it does not work on Umbraco 9 or later.
What do I need from Twilio?+
An account SID, an auth token and a service SID. Twilio charges for the messages it sends.
Is it free?+
Yes. The package is free and MIT licensed.
Do all users have to use 2FA?+
Each user enables it from the dashboard with their own phone number and can remove it there too.
I already have a custom OWIN startup. Can I still use it?+
Yes. Override ConfigureUmbracoAuthentication, register TwoFactorBackOfficeUserManager and add the two-factor sign-in cookie, as shown in the package readme.
Other products

MediaRemove
Free Umbraco package that scans your content for media references, lists the files nothing points to, and deletes them in bulk with an exclusion list as a safety net.
Free · details →
umContactManager
Free Umbraco 17–18 package that adds a Contacts section for form leads, email threads, spam control, notifications and optional AI replies and lead research.
Free · details →
OskiStarterKit
Free Umbraco starter kit with prebuilt page types, Block Grid layouts, multi-level menus, SEO fields, SMTP settings and custom error pages.
Free · details →Need UmbracoTwoFactorAuthentication customized or a package built for your Umbraco site?
A spec, a Figma file or three paragraphs is enough to start.
- First reply · from an engineer, not a sales rep
- 30-min call · with Roman, our CTO, to clarify scope
- After the call · a written proposal with plan, team and price
