Customer Identity · public betaBuild your first Test integration.Create a Test project
NamoID
All posts
NamoID Blog

NamoID vs Keycloak for Indian Startups

NamoID vs Keycloak for an Indian startup: both are OIDC and SAML servers, so the real comparison is who runs it, the upgrade treadmill, and India rails.

Keycloak is the closest architectural match to NamoID in this category: a genuine authorization server speaking OpenID Connect, OAuth 2.0 and SAML 2.0. So protocol capability is not what separates them. What separates them is who carries the operational burden, and whether the platform speaks India.

With Keycloak you run a JVM identity service, its database, its high-availability story, its backups, its monitoring and its upgrades — permanently, because only the latest release is maintained. With NamoID that is someone else's pager, primary identity workloads run in AWS Mumbai, billing is in rupees, and India's verification rails ship with the product.

NamoID vs Keycloak at a glance

DecisionNamoIDKeycloak
ProtocolsOAuth 2.1-aligned OIDC, SAML for enterprise sign-inOIDC, OAuth 2.0, SAML 2.0
Who operates itNamoIDYou
Licence costRupee plans from the India price bookFree, open source
Real costSubscriptionInfrastructure, on-call, upgrades, expertise
Upgrade obligationNone on youOnly the latest release is maintained
Minimum footprintNone~1 GB heap plus Postgres; ~2 GB RAM floor, 4 GB comfortable
India infrastructureAWS MumbaiWherever you deploy it
India KYC railsDigiLocker, Aadhaar offline e-KYC, cKYC, TruecallerNone
India OTP railsDLT-registered SMS, WhatsApp OTPNone
DPDP evidenceAppend-only audit, consent records, export, retentionBuild it yourself
Enterprise SSOPlatform capability, enabled per instanceSupported, you configure and operate it

The upgrade treadmill is the hidden commitment

Keycloak 26.7.0 shipped on 9 July 2026, and the project actively maintains only its latest version. There is no long-term-support branch in the community distribution. For a startup that means a permanent, non-negotiable upgrade cadence on the service that sits in front of every login in your product.

Two things follow. First, an auth outage is a full outage — nobody can sign in — so upgrades need a rehearsal environment, a rollback plan and a maintenance window. Second, falling behind is not a neutral choice: unpatched identity infrastructure is precisely where you least want known vulnerabilities. Since version 25 the distribution has been Quarkus-based rather than WildFly, which is a genuine improvement, and also an example of the kind of migration you inherit.

If you want a supported lifecycle instead, that means the Red Hat build of Keycloak, which brings its own support, entitlement and procurement considerations — a different conversation from "free and open source."

"Free" is a licence, not a cost

Keycloak charges nothing to download. Running it in production for real users costs:

  • Infrastructure. Budget roughly 1 GB of heap for Keycloak plus memory for PostgreSQL — about 2 GB of free RAM to start and 4 GB to be comfortable, per instance, before you add a second for availability.
  • On-call. Someone owns the pager for the service every login depends on.
  • Expertise. Realms, clients, mappers, authentication flows and the admin model are learnable but not obvious, and the knowledge tends to live in one engineer's head.
  • Upgrades, backups, restore rehearsals and monitoring, indefinitely.

The build-versus-buy analysis works through this and deliberately refuses to give a single figure, because an identity service never reaches "done", only "running". The honest framing is that Keycloak converts a subscription line item into an engineering commitment. Whether that trade is good depends on whether you have identity and platform engineers you are happy to spend on it — and whether identity operations is where you want your differentiation.

Keycloak is the right shape for a team that has that capacity and wants full control of the deployment. NamoID is the right shape for a team that would rather spend those engineer-weeks on the product only they can build.

What Keycloak does not know about India

This is the gap that no amount of operational skill closes, because it is product surface rather than configuration:

Each is a custom extension or a separate service you build and maintain beside Keycloak. Self-hosting also means residency is your responsibility rather than a vendor guarantee — which cuts both ways: deploy in Mumbai and you control it completely, but you also own the documentation, the subprocessor list and the evidence a customer's security review asks for. See data localization in India for what the rule actually requires.

What you are not building on day one

With NamoID, organizations, memberships, invitations and SAML enterprise sign-in are platform capabilities rather than a configuration project, and the India rails above are product surface rather than extensions you write.

Stated plainly: customer organizations and enterprise SSO are implemented in the platform and enabled per instance rather than self-serve at signup, and Razorpay-backed customer billing is in final rollout. The day-one benefit is that when your first enterprise customer asks for SAML, or you are ready to charge, you switch on something that exists. Confirm current availability for your instance before planning a launch around it.

The controls a security reviewer will ask about

Enforced in the platform and observable in behaviour:

  • PKCE on every authorization flow, including first-party clients; no implicit flow.
  • Refresh-token rotation with replay detection — a refresh token used twice revokes the entire chain and emits a security event.
  • Append-only audit events on state changes.
  • Aadhaar masked at rest — last four digits, a name hash and a signature-verification result only.
  • Provider tokens encrypted at rest with AES-256-GCM, never written to logs.
  • Rate limits on authentication and OTP endpoints, a billing control as much as a security one.
  • Tenant-scoped queries so one workspace cannot read another's data.

Self-hosting means each of these is a control you configure and verify yourself. Managed means it is a control you can ask to see demonstrated. Ask for the refresh-replay behaviour and the resulting audit record either way.

Authorization is still yours

Both products issue tokens; neither infers your business policy. Your API validates issuer, audience, expiry and scopes, then applies its own rules. A token carrying invoices:read may permit the operation while your application must still confirm the invoice belongs to the caller's organization. See multi-tenant authentication for SaaS.

Decide with a working proof

Because both speak OIDC, you can build the same proof against each and compare honestly: sign in, validate a token in your backend, protect two roles, revoke a session, inspect the audit event. Then add the two questions that decide it — who upgrades this service for the next three years, and what happens the day you need DigiLocker or Aadhaar verification.

Working examples for Next.js, Express, FastAPI, Go and Java are in namoidhq/namoid-examples. The Indian startup auth decision guide covers the wider shortlist, and hosted versus embedded authentication covers the integration-model question.

Start free, or bring your stack to the NamoID Slack community.

NamoID is not affiliated with or endorsed by Keycloak or Red Hat. Keycloak versions, resource guidance and features were sampled in September 2026 from published sources and change frequently — verify current details in Keycloak's own documentation before deciding. This article is product guidance, not legal advice or a promise of compliance.