I thought identity would be the easy, boring part.
Iâm building ProteinLens: a consumer-ish app today, with a clear path to âteams laterâ (B2B, SSO, enterprise domains). So I did what a reasonable Azure-native builder would do:
âLetâs implement Microsoft Entra External ID. Itâs basically B2C 2.0, right? Social login now, SSO later. Done.â
Reader, it was not done.
What followed was authentication chaos: portals inside portals, concepts that sound identical but arenât, and a sign-in experience that looks like I just teleported my users into someone elseâs product.
This post is for anyone who wants the simplest thing:
âŚand is considering Entra External ID because âfuture enterpriseâ.
My mental model was:
In my head, it was the responsible choice.
In reality, it felt like adopting an entire identity platform when I just needed a door lock.
The moment you hit sign-in, you get a full redirect into a Microsoft-styled flow.

Even with branding, itâs still visibly ânot my productâ. The fonts, spacing, page layout, and interaction patterns donât match. It breaks trust in a consumer app.
Yes, Microsoft Entra External ID supports âbranding themesâ for the hosted pages, but the customization has real limits (and itâs tenant-level theming, not a fully native embedded experience). (Microsoft Learn)

If youâre building something where conversion matters, this is not a small detail. Authentication is part of your product, not a compliance checkbox.
External ID has a lot of surface area:
None of that is âwrongâ if you need it.

But if youâre shipping an MVP, itâs the identity equivalent of deploying Kubernetes to serve a static page.
I lost hours to the kind of friction that doesnât show up in architecture diagrams:
It wasnât hard in a fun way. It was hard in a paper-cut way.
I also hit the uncomfortable reality: Azure AD B2C is effectively closed to new customers.
Microsoftâs own FAQ states:
So if youâre a new product today and you thought âmaybe Iâll just use classic B2C insteadâ⌠that door is basically closed.
That nudges you toward External IDâeven when External ID is not the UX you want.
I looked at Clerk.
Clerk is slick and productive, and for many teams itâs exactly right. But my issue wasnât âI want fewer lines of code.â
My issue was: I want a more seamless, product-native auth experience, and I want subscriptions + identity to feel cohesive.
Some auth tools feel like youâre renting someone elseâs UI. Some feel like identity lego bricks. I want something that feels like it belongs to ProteinLens.
Hereâs the brutally honest scope:
Everything else is optional until itâs not.
And when âitâs notâ (B2B/SSO later), I want to add that without rebuilding the world.
Iâm optimizing for shipping + UX + control, not âenterprise future-proofingâ on day one.
A pragmatic approach that fits this stage:
Concretely, that usually means one of these patterns:
This is the âI want controlâ path.
Not all âhosted authâ is equal. Some tools allow deep theming or embedded components that truly match your UI; others will always feel like a redirect.
If redirect UX bothers you today, pick a provider that doesnât force it.
This is the heresy take, but itâs often correct.
You donât need SAML because you might have enterprise customers later. You need SAML because someone is ready to pay you for it.
Entra External ID is powerful. I can see it being the right choice for:
But for a consumer SaaS MVP where trust + flow + conversion matter?
The combination of:
âŚmade it the wrong tool for my current stage.
So Iâm going back to basics:
Own the experience. Keep auth simple. Integrate Stripe cleanly. Add SSO when itâs paid for.