6 ms·
Auth for B2B SaaS: it's not like auth for consumer software
- nijave 1y agoSeems pretty good although it'd be good to callout OpenIDC as a predecessor to SAML. OpenIDC is pretty widely supported with the added benefit of not having to deal with certificate expiry.
- SahAssar 1y ago> it'd be good to callout OpenIDC as a predecessor to SAML SAML is older than OpenID Connect by ~13 years.
- nijave 1y agoWhoops meant successor :facepalm:
- jpc0 1y agoOIDC does not in any way offer the same functionality as SCIM and SAML. SAML is approximately OIDC + SCIM + Legacy Cruft
- OkayPhysicist 1y agoWhat is the extra stuff that is provided compared to OIDC? I was implementing some of this stuff recently, and for my use case (who is this user? Do they have permission to use this application? Which parts of the application are they allowed to use?) OIDC seemed to cover everything, so I'm pretty curious if I missed some functionality that SAML provides.
- jpc0 1y agoCreating the user in your application before first logon. Removing the user from your application immediately and not when their session eventually expires. Doing those things in batch. Querying that data at will to produce reports. Updating a users group membership when needed and immediately and not when you decide to do so. And then you only need an opaque userid from me and not a fat OIDC token that knows everything about my internal structure.
- maxwellg 1y agoThese are all features of SCIM, not of SAML. SAML only communicates user metadata on login. SCIM can be used with both SAML and OIDC.
- jpc0 1y agoYou may be correct there. I seem to remember being able to handle that over SAML but could be an extension… Regardless OIDC is authentication not authorisation. OIDC asserts who you are not what you are allowed to do, where SAML asserts what as well as who. I mean you could hack assertions into scopes somehow and return it in the OIDC token but that’s not really standardised and everyone will just decide what they are going to add whenever they want which is at best no better than SAML using JS instead of XML.
- T-Winsnes 1y agoSAML allows you to send additional attributes with the identity payload, like group memberships. This is not inherently authorisation, but can be used to automatically map users to teams/groups/roles in your application. SAML is a very complicated standard, and very painful to implement. OIDC is much simpler, but lacks some of the capabilities. Both can automatically create users on login, that is application implementation detail. Both also need SCIM or something similar to offboard users
- deathanatos 1y ago> SAML allows you to send additional attributes with the identity payload, like group memberships. This is how OIDC does it, too; group membership is a claim.
- lll-o-lll 1y agoThe authorization model is bespoke to your ecosystem. Whether you do that with claims, scopes or assertions is irrelevant. None of these are hacks, but they can’t be simply standardized either. Provisioning/Deprovisioning is a separate concern; SCIM is one way (but just in time provisioning can also be achieved with both solutions). There’s no reason to choose SAML other than for legacy integration.
- deathanatos 1y agoYou're putting words in their mouth by adding in SCIM.
- jpc0 1y ago> SAML is approximately OIDC + SCIM + Legacy Cruft I believe I added sufficient context for why I added SCIM into the mix.
- nylonstrung 1y agoHow does this compare to zitadel
- noleary 1y ago(I am a cofounder of Tesseral) Honestly, I'm not intimately familiar with Zitadel's solution. At a quick glance, it seems quite powerful! But it does seem like our product is more opinionated -- and is more narrowly focused on serving B2B applications. I suspect that if you have the appetite and experience to build something unusual or otherwise complex, Zitadel will be a great fit. Perhaps they are like Keycloak in this respect. On the other hand, we try very hard to steer developers into a 'pit of success' by abstracting away a lot of details that most people don't need to worry about. But I'll admit that comparison may be inaccurate; I probably will have to look in more detail. (The comparison will certainly seem wrong months / years into the future as our companies evolve!).
- joseonjok 1y agoYou are building an auth and you didn't even bother doing a in depth look at what Zitadel does ???? This doesn't communicate any serious commitment or product depth. Zitadel already does B2B very well and it is not only mature but very flexible to use across much of the enterprise space.
- ffo 1y agoThanks for highlighting Zitadel! We agree—Zitadel is a strong platform. Our main challenge as an infrastructure product is balancing flexibility with ease of use. While we offer a lot of adaptability for different use cases, getting started can be daunting. We're actively working to make our onboarding process smoother so users can get up and running more quickly. For example we just started working on a lot of improvements on our SDKs as well as a template login app in nextjs that people can fork.
- ffo 1y agoWelcome to the (B2B) auth space—it's encouraging to see more teams working on these challenges. From our experience at Zitadel, we’ve found that mid-market and enterprise customers often also look for industry standards like SAML and OpenID Connect to integrate their services, so we’ve made those a core part of our offering—including providing fully compliant SAML and OpenID Connect endpoints. It looks like Tesseral is taking a more focused approach with SDK and API integrations for web apps, which makes a lot of sense for many teams starting out. We also believe that, over time, the distinction between B2C and B2B use cases will blur, and both will be consolidated into a potent, unified identity infrastructure platform. That’s the direction we’re building toward with Zitadel. Wishing you all the best as Tesseral grows. If you ever want to swap stories about auth, don't hesitate to reach out!
- funerr 1y agoHow does this compare to better-auth?
- noleary 1y ago(I'm a cofounder of Tesseral) We're huge fans of Better Auth -- it's a really great offering. They might have their own take on how we differ, but here's my best attempt at a quick comparison. We take pretty different approaches to roughly the same family of problems. Better Auth is focused on being a great library for TypeScript. If you write Typescript and want to build your own auth, they're a great bet. We're more of an API-first service that's agnostic to the language or framework that you use. We have a pretty opinionated product that is meant to handle auth for you -- it's not really an auth library per se.
- jpc0 1y agoI’m hoping the asked might have already known but pricing?
- joseonjok 1y agoI'm not even sure better auth is worth comparing to, there are so many critical open issues that impact not only security but feature parity with much more established and mature open source solutions. Not to be harsh but the website not loading earlier clearly doesn't set a good first impression.
- koakuma-chan 1y agohttps://tesseral.com/ https://tesseral.com/ Application error: a client-side exception has occurred while loading tesseral.com (see the browser console for more information).
- rsstack 1y agoNext.js doing that is like ASP.NET in production "in debug mode" printing stack traces, or PHP applications printing their MySQL connection errors. So sad.
- koakuma-chan 1y agoThey gotta start catching error that webgl is disabled.
- mrweasel 1y agoOr you know, just remove the animation all together, it's not like it makes the product more compelling.
- jamil7 1y agoI've been seeing this all over the internet, even on news websites that have already loaded their content. So Next doesn't allow me to read text that's already loaded in my browser because of some random JS error I don't care about.
- noleary 1y agooops, thanks for flagging. we'll fix this! we only recently did a complete overhaul of our website and are still patching up some details
- skeptrune 1y agoI think making it easier to respond to the super annoying requests like "make everyone use a yubikey" is a real pain point I'd buy something to solve.
- weitendorf 1y agoI've been thinking a ton about this over the last year and I think this is actually overcomplicating things. Generally from what I can tell, most of what makes Auth so painful is overcomplicating things. My belief is that the only two things you need to know to understand Auth are Identity and your Authorization model. Everything else is just a consequence of those two things. Consumer and B2B auth are different mostly because they have different identity and authorization models, neither of which are really that complicated to identify: 1. Consumers theoretically control their own identity but in practice almost all delegate it to gmail, facebook, microsoft, etc. Businesses have actual control over their employee's identities because they own domains and emails get routed to wherever they point their domain at. 2. Consumer authorization models by default give the user access to all of their data and none of anybody else's data, unless explicitly configured otherwise. Business authorization models work exactly the same way for admins (meaning, control of the business' source of identity gives them access to ~all of the business' data). It's kind of insane to give everybody access to everybody's data so businesses create ontologies of roles/groups/scopes so that each employee only gets just as much admin powers as they require. Why does it work that way? Well, when you control your own identity like consumers and admins, you want to just get things done without permission and auth getting in the way. When you control other people's identity you aren't personally subject to the difficulties that arise from locking things down, but you are responsible for their identity and what that identity can do, so you do what you can to limit access. It all kinda reduces down to the problem that the Internet didn't come with a good system for managing identity, so we all use accounts based on email, which is based on domains, which route traffic using DNS, which basically sends all the account recovery/verification/communication record for every employee of a company to one spot. There is an inherent escalation of privilege vulnerability there, and there's no good fix, so we resign ourselves to a security model that says 1. centralize all information in one place 2. do whatever possible to hide, compartmentalize, and limit access to that information. It feels insane because it is insane. Being responsible for only your own identity, actions, access, and data: makes sense. Being responsible for everybody else's actions, access, and data (because your job is managing the thing that centralized it all in one place): nightmare fuel.
- magicalhippo 1y ago
- vivzkestrel 1y agohow does it compare to supertokens
- Analemma_ 1y agoI know it is bad form to level accusations at other commenters, but I have to ask: have the LLMs infested this thread? What is with all the content-free "how does it compare to [X]" comments in here?
- Polizeiposaune 1y agoI would expect LLMs to generate a wall of text rather than ask simple questions.
- warkdarrior 1y agoI bet someone is using an LLM to generate questions and trigger discussion between human accounts. The resulting thread will be later used for LLM training.
- joseonjok 1y agoThere are clearly people using LLMs to generate comments but what's worse is people now just accusing people of being agents or bots in an effort to downplay and ignore their points. What's clear is that its impacting HN very negatively in the past 3 months or so. What irks me is there are clearly long formatted responses that are clearly using LLM but authentic user comments are being written off as LLM/agent/bot in order to get others to stop engaging with them.
- rorylaitila 1y agoI've standardized on a couple defaults that save me a lot of pain down the road. First is I always tenant by an "Organization" as the article suggests, even when the initial organization is a user of one. This allows for creating teams or organization sharing. Which for anything other than "will always be a single user app" every app eventually wants multi-user organizations. Two, I appear as RBAC but implement ABAC under the hood. Technically the App is ABAC, but to the initial users, all they see are Roles. They cannot configure their resources. Later on, I can build interfaces for ABAC to manage their own Resources and Roles. Bonus third, all Resources resolve to URL routes GET or POST. The application firewall prevents calls to URLs that they do not have resource permission. The server strips links and buttons from the HTML that they do not have permission to (or decorates them with a style). Thus there is no "if has resource show" code all polluting my UI.
- joseonjok 1y agoI'm puzzled as to why this area is constantly seeing reinventing the wheels? I can name a few very mature (20 years in teh making) open source projects that pretty much lets you self host everything you might possibly need to handle all sorts of authentication schemes It seems like if its not written in Javascript people have aversion to it and this "keep everything typescript" really makes no sense to me especially when you deal with the missio n critical nature of backends.
- pakl 1y agoIn most B2B cases you really don’t want to self host authentication. Really. There are plenty of identity providers out there who will worry about hashing passwords, resetting them, 2FA, etc. Most client businesses already have identities via one of those for all their employees (read: users of your APIs or apps). Unfortunately nearly all of the open source solutions out there do exactly what you said, they start with (required) self-hosting authentication. Not helpful. What’s more relevant to businesses is authorization using existing IdPs (shameless plug: https://github.com/DMGT-TECH/the-usher-server https://github.com/DMGT-TECH/the-usher-server)
- ffo 1y agoI believe it’s important to offer people a choice. Some prefer self-hosting, while others opt for SaaS—it really depends on their specific needs. If you require data residency and complete control, self-hosting is the way to go. On the other hand, if you want a hands-off operational experience, SaaS makes more sense.