Cotter.app, a passwordless authentication system that works by sending a magic link to the user’s provided email. Once the user has clicked the link, they are authenticated and will receive an OAuth token that can authenticate with back-end services.
The benefits of this approach are pretty clear when you consider how quickly you can get up and running. With just a few lines of JavaScript dropped into your application, you can get functional OAuth authentication. Although setup and integration is quite simple, it comes at the cost of extensibility. While there is still some level of customization afforded to you when you use something like Cotter, it isn’t quite on the level of more advanced fully-featured systems. For many teams, this might not be an issue. It may be the case that the customization options available to you are all you need, in which case a drop-in script can be an excellent choice.
For more complex and mature implementations, it is hard to beat the customisations afforded by using a full-fledged Authentication-as-a-Service provider, like FusionAuth. Systems like FusionAuth offer a wide array of features that some implementations cannot do without, including:
Each of these may or may not be important to you and your business.
When deciding what type of authentication system you will implement, you need to consider several factors. Naturally, each approach has its own pros and cons, and based on this, one may be more aligned with the goals for your product or application than another.
Due to their lightweight nature, drop-in scripts are often a good choice for side-projects or rapid prototype/proof of concept applications. Because there is minimal effort in implementing one of these solutions, it can be swift to get started with and is likely going to be faster, more secure, and boast more features than if you took the time to roll your own solution.
On the other hand, a fully-fledged system requires more consideration and planning before implementation but is really the only sensible way to go if you need the power of a real auth provider. This kind of authentication service often comes with more advanced user management functionality and SSO capabilities, among other features. Again, this might not be something you need on a smaller project, but as products grow and mature, it is not uncommon for more complex user management and integrations to become a focus. These advanced features come at a cost, however.
Often, AaaS providers will cost more than simpler alternatives, and because of this, it is important to think about your requirements and your budget. It’s possible that many of the advanced features on offer aren’t actually something you need, in which case it could be more cost-effective to go for a simpler solution while still being able to reap the key benefits of using a third-party auth provider.
Depending on the space your product is in, you might be subject to various compliance standards. This is another instance where running a full-on auth system can come to your aid. Solutions like FusionAuth come with the ability to configure things like password strength rules, which can help with security requirements. If you think about the dev effort needed to implement something like configurable password rules in a hypothetical DIY solution, it is not insignificant. Being able to offload these requirements to your auth provider means your dev team is free to work on features that bring value directly to your customers.
Many organizations also make use of SSO to allow one set of credentials to allow the user to authenticate with many services. Some authentication providers - typically the more heavily featured ones - will provide support for common SSO standards like SAML and OIDC. This can be an important factor in determining which authentication provider is right for you, because if it is something you need, it can be tricky if you need to bolt it on after the fact.
The effort to manually implement SAML (and OIDC, to a lesser extent) are quite high, so if these standards are something that you need, it is worth taking a serious look at which auth providers include them in their offering, such as FusionAuth.
Which category of solution you should implement will have a lot to do with your specific requirements and what you expect out of an auth provider. That said, if you are expecting that you will need some of the more advanced functionality down the line, it is hard to go wrong with the full-featured approach.
Even if you start with a more straightforward system, like a DIY approach or a drop-in script, there is no reason why you cannot migrate to a more advanced system later. Migrating between auth systems naturally brings its own challenges, but there are steps you can take to avoid vendor lock-in to make the transition smoother when the time comes.
Returning to the example of Cotter and FusionAuth, if you were graduating from one to the other, you would be able to export your users from Cotter in CSV format and then import them into FusionAuth. As with any migration, there is the potential for unexpected setbacks depending on your configuration, but generally speaking, it should be pretty manageable.
For early-stage projects, proofs-of-concept, prototypes, and side projects, drop-in scripts are a very appealing option. They give you a way to get started quickly with a secure, reliable foundation. They take minimal effort to implement, and offer a respectable spread of features at a generally reasonable price.
For more mature products and complex scenarios, it’s hard to argue with the stability and flexibility offered by full-featured AaaS providers. They might take a little bit more effort to integrate, but will ultimately give you a greater runway for future expansion and configuration.
It is essential to consider which approach best suits your current requirements and your future trajectory, anticipated requirements, and budget.