4 ms·
I understand the list of companies provided here are fairly large businesses, but the text in the post seems to send a different message. Maybe I am misinterpr
by gavinray 7y ago
I understand the list of companies provided here are fairly large businesses, but the text in the post seems to send a different message.
Maybe I am misinterpreting this, but I have had this conversation quite a few times in the past month alone with other engineers and execs, and I have to take an entirely different stance.
If you are trying to bootstrap a SaaS start-up (or even if you arent and just want to be frugal and/or keep technical complexity low) I do not think that outsourcing your authentication to a third-party provider, especially at cost, is necessarily the best choice.
A) In the developer community chats I am in, the auth provider that pops up the most in conversation is Auth0. Personally, I do not see how they stay in business because their pricing is (in my opinion) egregious. $228/mo for 10,000 monthly active users. However, they do have a free plan up to 7,000 monthly active users. The sheer volume of people who continually bring Auth0 up means that they either build products which never gain significant traction & have never had to scale, or have money to blow. So there is the cost-factor argument.
B) While you can make the argument that the vast majority of people have accounts with SSO providers, I would play Devils Advocate and say that there also exist people who are uncomfortable either providing that identity regardless of the anonymity/security meaures in place, or because they do not want to associate an identity from a primary authentication provider with your site/service. So there is your please-the-people argument.
C) From a technical perspective it CAN be easier not to opt for SSO integration. What I mean by this is, for the past half-decade, the majority of the products I have built have used bcrypt-ed passwords. And that works just fine. For getting things off the ground you can go far with a solid password hash-and-compare implementation.
Something roughly like the following is free, super easy to implement, and covers a large percentage of usecases:
- Store password with an algorithm like bcrypt or Argon2 on sign-up, compare on login
- Opt-in 2FA by using OTP via SMS or email
- Issue a SecureRandom session token each time a user logs, and use it as the identifying mechanism in a JWT or similar
- Make your auth logic verify the JWT and look the user up by the session token
- You can emulate the blacklisting/all-token revoke functionality major auth providers have by clearing one/all session tokens in the DB
I am sure someone who knows much, much more than me about security show up in the comments below this and tell me I am idiot, but this is my two-cents at least ¯\_(ツ)_/¯
(Side note edit: I think that there is a burgeoning problem in the developer community where new engineers reach for the easiest thing and wind up with a stack full of nothing but X-as-a-service, which in this case includes authentication. I am not sure how many junior devs could implement basic password-hash JWT authentication from scratch. The fact so many of them are readily paying $2,500/yr per 10,000 users for JUST authentication is mildly terrifying)
- sokoloff 7y agoI’m not about to call you an idiot, but we’re (happy) users of Auth0 (with Duo MFA). After a short transition period, this provides a better user experience and greater security than our prior stance (a mix of direct ADFS and some other random in-app username/password systems). $228/mo doesn’t even register. We probably spend a lot more for coffee in the office. (We’re much higher volume user than that, but the initial price point is just not something that would be a barrier.)
- gavinray 7y agoAhh, probably cognitive bias and reading their target audience wrong then. Having been homeless and trying to support a partner this same last year, that price still really throws me for a loop (and tbh so does your office coffee budget a bit haha ).
- windowsworkstoo 7y agoThe other side of this is as an org, with say 5 - 100 employees, who are all on Okta for example - and want to be able to login to those systems listed using their single Okta creds - this isn't being an about implementing an auth system to authenticate a bunch of users, but being able to give your employees easy, auditable access to the 10 - 30 SaaS product they use daily, via SAML or OIDC
- gavinray 7y agoOhhh. I'm a bit slow; yeah for sure that makes a ton of sense then.