Identity Provider
One ID Nepal
A National Identity Provider for Nepal
A centralized identity platform that lets any Nepali service offer "Sign in with One ID" the way it would offer Google or Facebook — with the citizen deciding what each app is allowed to read.
- Filed under
- Identity Provider
- Role
- Backend developer, team Brogrammers
- Status
- Completed
- Stack
- 11 technologies
The brief
One ID Nepal treats government identity the way the web treats social login. Instead of every portal building its own signup, storing its own copy of a citizenship number and losing it in its own breach, an application redirects to One ID, the citizen authenticates once, and the application receives only the claims it was granted — conceptually the Nagarik App extended into an identity provider other services can build on.
The build is three Spring Boot services behind a gateway: an authorization server implementing OpenID Connect on top of Spring Authorization Server, with a login and a consent screen where the citizen sees exactly which records an app is asking for; a developer portal where a third party registers an application and receives client credentials and redirect URIs; and a resource server holding the identity records themselves — person, national ID, citizenship, passport and driving licence — each behind its own OAuth scope.
Because it speaks standard OIDC, an integrating application needs no custom SDK: any existing OAuth client library works, the ID token is a normal JWT, and scopes are the only vocabulary a developer has to learn. Built as a hackathon project by team Brogrammers.
The findings
- 01
OpenID Connect authorization server (authorization code + PKCE)
- 02
Consent screen — the citizen approves each scope an app requests
- 03
Developer portal for registering client applications and redirect URIs
- 04
Scope-gated identity records: national ID, citizenship, passport, licence
- 05
JWT ID tokens with a custom claim set, verifiable by any OIDC client
- 06
API gateway fronting the auth and resource servers
- 07
Per-service Dockerfiles and a Compose stack for the whole platform