v1.9 — Now with built-in Login UI & Consent Screens

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.

Terminal
$ |
.NET 10 RS256 JWT OIDC Compliant PKCE Multi-Tenant Free & Open

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.

The Old Way
  • 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
The AuthnzNet Way
  • 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.

1

Install

dotnet tool install -g
Noundry.AuthnzNet.CLI

One global tool. Nothing else to install.

2

Quickstart

ndaz quickstart
--name "MyApp"

Creates tenant, admin user, and OAuth client.

3

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.

Program.cs C#
// 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");
});
Program.cs C# · Noundry.Authnz
// 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" />
auth.config.ts TypeScript
// 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",
    }
  ]
})
Standard OIDC Endpoints Any Language
# 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.

Local & Test
options.Authority =
  "https://localhost:5000";

SQLite database, local RS256 keys, zero setup. Perfect for dev, CI, and staging.

Available now
Production
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!