OAuth 2.0 + OIDC Server
In Three Commands
The developer‑first IdentityServer alternative. Install a dotnet tool, run quickstart, and you have a complete OAuth server with RS256 signing, PKCE, login UI, and OIDC discovery.
Setting Up OAuth Shouldn't Take Days
IdentityServer was the gold standard. Then it went commercial. Now you're stuck choosing between expensive licenses, complex configs, or rolling your own.
- Hours configuring IdentityServer with dozens of packages
- $1,500+/year license for production use
- Build your own login & consent pages from scratch
- Painful breaking changes between major versions
- Manual key rotation and certificate management
- One dotnet tool install — everything included
- Free forever — no license fees, no usage limits
- Login & consent UI built in — works out of the box
- Stable, focused API — one tool, one package
- RS256 keys auto-generated and managed for you
Three Commands. That's It.
From zero to a running OAuth server with login pages, OIDC discovery, and JWKS — in under 30 seconds.
Install
dotnet tool install -g
Noundry.AuthnzNet.CLI
One global tool. Nothing else to install.
Quickstart
ndaz quickstart
--name "MyApp"
Creates tenant, admin user, and OAuth client.
Serve
ndaz serve
# That's it. You're done.
Full OAuth server at localhost:5000.
Everything You Need. Nothing You Don't.
Production-grade OAuth & OIDC compliance without the bloat.
RS256 JWT Signing
RSA-2048 asymmetric signing with automatic key generation. Published via JWKS for standard token validation.
PKCE Support
Proof Key for Code Exchange built in. S256 challenge method for secure public client flows.
Multi-Tenant
Isolated tenants with separate users, clients, and credentials. Test multi-tenant scenarios locally.
CLI-First Workflow
Manage tenants, users, and clients from the command line. Script your auth setup for CI/CD pipelines.
Login & Consent UI
Built-in login and consent pages for the authorization code flow. No HTML to write.
OIDC Discovery
Standard .well-known/openid-configuration and JWKS endpoints. Works with every OIDC client library.
Works With Everything
Standard OIDC means standard integration. If your framework speaks OAuth, it works with AuthnzNet.
// Standard OpenID Connect — nothing custom needed builder.Services.AddAuthentication(options => { options.DefaultScheme = "Cookies"; options.DefaultChallengeScheme = "oidc"; }) .AddCookie("Cookies") .AddOpenIdConnect("oidc", options => { options.Authority = "https://localhost:5000"; options.ClientId = "my-app"; options.ClientSecret = "my-secret"; options.ResponseType = "code"; options.Scope.Add("openid"); options.Scope.Add("profile"); });
// Even simpler with the Noundry.Authnz library builder.AddNoundryOAuth(options => { options.ConfigureOAuthProvider( OAuthProvider.AuthnzNet, clientId: "my-app", clientSecret: "my-secret" ); }); // In your Razor page: <noundry-oauth-login provider="authnznet" />
// Works with any OIDC-compatible library export default NextAuth({ providers: [ { id: "authnznet", name: "AuthnzNet", type: "oidc", issuer: "https://localhost:5000", clientId: "my-app", clientSecret: "my-secret", } ] })
# Point any OIDC client at these endpoints Discovery https://localhost:5000/.well-known/openid-configuration Authorize https://localhost:5000/oauth/authorize Token https://localhost:5000/oauth/token UserInfo https://localhost:5000/oauth/userinfo JWKS https://localhost:5000/.well-known/jwks.json # All 4 grant types supported: Authorization Code (+ PKCE) Client Credentials Resource Owner Password Refresh Token
See How It Compares
AuthnzNet vs the alternatives. No spin, just facts.
|
AuthnzNet
|
IdentityServer | Auth0 / Entra | |
|---|---|---|---|
| Setup time | 30 seconds | Hours | Minutes |
| Cost | Free | $1,500+/yr | $23+/mo |
| Self-hosted | |||
| Login UI included | |||
| PKCE | |||
| OIDC Discovery | |||
| CLI management | |||
| Zero-config start | |||
| Production deploy |
Test Locally. Deploy with Confidence.
Build and test your OAuth flows locally with AuthnzNet. When you're ready for production, swap in your production IdP with a single line change.
options.Authority =
"https://localhost:5000";
SQLite database, local RS256 keys, zero setup. Perfect for dev, CI, and staging.
options.Authority =
"https://your-idp.example.com";
Swap to Auth0, Entra ID, Keycloak, or any OIDC provider when you go live.
Same OIDC protocol. Same token format. Same client code. Just change the Authority URL.
Stop Wrestling with OAuth.
Start Building.
Install the CLI and have a running OAuth server in under 30 seconds. Free forever.
$ dotnet tool install -g Noundry.AuthnzNet.CLI
Copied to clipboard!