Flexible OpenID Connect and OAuth 2.0 server-side implementation for modern ASP.NET projects
110
stars
725
commits
C#
primary language
Sep 10, 2026
updated
⭐ Star us on GitHub: your support motivates us a lot! 🙏😊
Add a certified OpenID Connect provider to your own ASP.NET Core app, one you embed and own end to end rather than a separate server to run and operate.
📑 For the full picture, see the technical overview.
Abblix OIDC Server turns your ASP.NET Core application into a fully certified OpenID Connect provider. Rather than deploying and operating a separate identity server, you embed the protocol directly into your app, so your users, your data, and your UI stay inside your product.
Under the hood, the library leans on modular and hexagonal architecture and the standard .NET DI container, which keeps it testable and easy to extend. It ships two ASP.NET Core integration adapters that expose the same OpenID Connect endpoints (one for MVC controllers and routing, one for Minimal API endpoint routing), so you adopt whichever hosting model your application already uses, without taking a dependency on the other.
Install the adapter for your hosting model and register the server in Program.cs:
dotnet add package Abblix.OIDC.Server.MVC
using Abblix.Jwt;
using Abblix.Oidc.Server.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Turn your ASP.NET Core app into an OpenID Connect provider
builder.Services.AddOidcServices(options =>
{
options.LoginUri = new Uri("/Auth/Login", UriKind.Relative);
options.SigningKeys = new[] { JsonWebKeyFactory.CreateRsa(PublicKeyUsages.Signature) };
});
That registers the full set of certified OpenID Connect endpoints. Point LoginUri at your login page and plug in your user store. The Getting Started Guide walks through a complete, runnable solution.
🚀 Features
🚀 Features
🔒 Security hardening
✏️ Improvements
See 📋Release Notes for full details of 2.4, and 2.3 for the release before it.
Most deployments need only the first two; the rest apply if you use the named feature.
IAuthorizationErrorFormatter is removed, and success and error responses now flow through a single IAuthorizationResponseFormatter, and AuthorizationError is a subtype of the response model. Re-point any decorator or implementation to IAuthorizationResponseFormatter and branch on response is AuthorizationError (the { RedirectUri: null } variant is the one to render on your own error page).EnableImplicitFlow() on the OIDC builder. Authorization Code Flow is the default; no action otherwise.OidcOptions.RequireInitialAccessToken = false to keep open registration.backchannel_logout_uri with a non-https scheme, internal hostname, or private/loopback address is rejected with invalid_client_metadata under the secure default. Register public https endpoints, or relax SecureHttpFetchOptions for trusted internal deployments: set BlockPrivateNetworks to false and state AllowedSchemes in full, https included - the list replaces the default rather than extending it.We are certified in all profiles. During the certification process, we skipped ZERO tests and received NO warnings. All 634 tests . For more details, click the links (Certified OpenID Providers & Profiles, Certified OpenID Providers for Logout Profiles).
For convenience, the certification information is provided in the tables below:
| OIDC Profile | Response Types (links to official OpenID Foundation test results) | Tests |
|---|---|---|
| Basic OP | code | 36 |
| Implicit OP | id_token | 58 |
| Hybrid OP | code id_token | 102 |
| Config OP | config | 1 |
| Dynamic OP | code | code id_token | code id_token token | code token | id_token | id_token token | 127 |
| Form Post OP | basic | implicit | hybrid | 196 |
| 3rd Party-Init OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Total | 532 |
| OIDC Profile | Response Types (links to official OpenID Foundation test results) | Tests |
|---|---|---|
| RP-Initiated OP | code | code id_token | code id_token token | code token | id_token | id_token token | 66 |
| Session OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Front-Channel OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Back-Channel OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Total | 102 |
Add the adapter that matches your ASP.NET Core hosting model from NuGet.
For MVC controllers and routing:
dotnet add package Abblix.OIDC.Server.MVC
For Minimal API endpoint routing:
dotnet add package Abblix.OIDC.Server.MinimalApi
Both adapters expose the same OpenID Connect endpoints and pull in the core Abblix.OIDC.Server package as a dependency, so pick the one that matches how your application maps requests. For hosts that wire the protocol layer directly, install Abblix.OIDC.Server instead.
To build the packages, follow these steps:
# Open a terminal (Command Prompt or PowerShell for Windows, Terminal for macOS or Linux)
# Ensure Git is installed
# Visit https://git-scm.com to download and install console Git if not already installed
# Clone the repository
git clone https://github.com/Abblix/Oidc.Server.git
# Navigate to the project directory
cd Oidc.Server
# Check if .NET SDK is installed
dotnet --version # Check the installed version of .NET SDK
# Visit the official Microsoft website to install or update it if necessary
# Restore dependencies
dotnet restore
# Compile the project
dotnet build
Explore the Getting Started Guide. In this guide, you will create a working solution step by step, building an OpenID Connect Provider using ASP.NET MVC and the Abblix OIDC Server solution.
The Documentation site covers configuration, deployment, the API reference and the OpenID Connect standard itself.
Prefer not to run the provider yourself? Abblix Account is a ready-to-use service hosted in the cloud, built on this library. You get passkeys, MFA, social login, and security event notifications: everything your users need, integrated into your website in minutes.
👉 See it live: Quorvel Coffee is a demo application using Abblix Account for user authentication. It shows how sign-in flows, session management, and user self-service, all delivered by Abblix Account, fit into a client website.
The protocol surface is complete and certified, but the library is not finished. What you run into in your own application is what we cannot see from here.
[!IMPORTANT] Whether you have feedback on features, have encountered any bugs, or have suggestions for enhancements, we're eager to hear from you. A report that names the flow and the client you were using is what turns a guess into a fix.
Please feel free to contribute by submitting an issue or joining the discussions.
For how we handle contributions, and why the library is developed in-house, see our Contributing Guidelines.
This product is distributed under a source-available proprietary license. See 📋License Agreement for details.
It is free of charge for companies under $1M in annual revenue and under $1M raised in outside funding, for non-profits, educational institutions, personal projects and non-commercial open source, and for development, test and staging environments at any size. Every protocol is included at every tier, with no limit on client applications or users, and one production issuer per free deployment. See the pricing page.
For more details about our products, services, or any general information regarding the Abblix OIDC Server, feel free to reach out to us. Below are the best ways to contact our team:
Subscribe to our LinkedIn and Twitter:
716 commits
9 commits
C#
100.0%
Flexible OpenID Connect and OAuth 2.0 server-side implementation for modern ASP.NET projects
110
stars
725
commits
C#
primary language
Sep 10, 2026
updated
⭐ Star us on GitHub: your support motivates us a lot! 🙏😊
Add a certified OpenID Connect provider to your own ASP.NET Core app, one you embed and own end to end rather than a separate server to run and operate.
📑 For the full picture, see the technical overview.
Abblix OIDC Server turns your ASP.NET Core application into a fully certified OpenID Connect provider. Rather than deploying and operating a separate identity server, you embed the protocol directly into your app, so your users, your data, and your UI stay inside your product.
Under the hood, the library leans on modular and hexagonal architecture and the standard .NET DI container, which keeps it testable and easy to extend. It ships two ASP.NET Core integration adapters that expose the same OpenID Connect endpoints (one for MVC controllers and routing, one for Minimal API endpoint routing), so you adopt whichever hosting model your application already uses, without taking a dependency on the other.
Install the adapter for your hosting model and register the server in Program.cs:
dotnet add package Abblix.OIDC.Server.MVC
using Abblix.Jwt;
using Abblix.Oidc.Server.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
// Turn your ASP.NET Core app into an OpenID Connect provider
builder.Services.AddOidcServices(options =>
{
options.LoginUri = new Uri("/Auth/Login", UriKind.Relative);
options.SigningKeys = new[] { JsonWebKeyFactory.CreateRsa(PublicKeyUsages.Signature) };
});
That registers the full set of certified OpenID Connect endpoints. Point LoginUri at your login page and plug in your user store. The Getting Started Guide walks through a complete, runnable solution.
🚀 Features
🚀 Features
🔒 Security hardening
✏️ Improvements
See 📋Release Notes for full details of 2.4, and 2.3 for the release before it.
Most deployments need only the first two; the rest apply if you use the named feature.
IAuthorizationErrorFormatter is removed, and success and error responses now flow through a single IAuthorizationResponseFormatter, and AuthorizationError is a subtype of the response model. Re-point any decorator or implementation to IAuthorizationResponseFormatter and branch on response is AuthorizationError (the { RedirectUri: null } variant is the one to render on your own error page).EnableImplicitFlow() on the OIDC builder. Authorization Code Flow is the default; no action otherwise.OidcOptions.RequireInitialAccessToken = false to keep open registration.backchannel_logout_uri with a non-https scheme, internal hostname, or private/loopback address is rejected with invalid_client_metadata under the secure default. Register public https endpoints, or relax SecureHttpFetchOptions for trusted internal deployments: set BlockPrivateNetworks to false and state AllowedSchemes in full, https included - the list replaces the default rather than extending it.We are certified in all profiles. During the certification process, we skipped ZERO tests and received NO warnings. All 634 tests . For more details, click the links (Certified OpenID Providers & Profiles, Certified OpenID Providers for Logout Profiles).
For convenience, the certification information is provided in the tables below:
| OIDC Profile | Response Types (links to official OpenID Foundation test results) | Tests |
|---|---|---|
| Basic OP | code | 36 |
| Implicit OP | id_token | 58 |
| Hybrid OP | code id_token | 102 |
| Config OP | config | 1 |
| Dynamic OP | code | code id_token | code id_token token | code token | id_token | id_token token | 127 |
| Form Post OP | basic | implicit | hybrid | 196 |
| 3rd Party-Init OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Total | 532 |
| OIDC Profile | Response Types (links to official OpenID Foundation test results) | Tests |
|---|---|---|
| RP-Initiated OP | code | code id_token | code id_token token | code token | id_token | id_token token | 66 |
| Session OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Front-Channel OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Back-Channel OP | code | code id_token | code id_token token | code token | id_token | id_token token | 12 |
| Total | 102 |
Add the adapter that matches your ASP.NET Core hosting model from NuGet.
For MVC controllers and routing:
dotnet add package Abblix.OIDC.Server.MVC
For Minimal API endpoint routing:
dotnet add package Abblix.OIDC.Server.MinimalApi
Both adapters expose the same OpenID Connect endpoints and pull in the core Abblix.OIDC.Server package as a dependency, so pick the one that matches how your application maps requests. For hosts that wire the protocol layer directly, install Abblix.OIDC.Server instead.
To build the packages, follow these steps:
# Open a terminal (Command Prompt or PowerShell for Windows, Terminal for macOS or Linux)
# Ensure Git is installed
# Visit https://git-scm.com to download and install console Git if not already installed
# Clone the repository
git clone https://github.com/Abblix/Oidc.Server.git
# Navigate to the project directory
cd Oidc.Server
# Check if .NET SDK is installed
dotnet --version # Check the installed version of .NET SDK
# Visit the official Microsoft website to install or update it if necessary
# Restore dependencies
dotnet restore
# Compile the project
dotnet build
Explore the Getting Started Guide. In this guide, you will create a working solution step by step, building an OpenID Connect Provider using ASP.NET MVC and the Abblix OIDC Server solution.
The Documentation site covers configuration, deployment, the API reference and the OpenID Connect standard itself.
Prefer not to run the provider yourself? Abblix Account is a ready-to-use service hosted in the cloud, built on this library. You get passkeys, MFA, social login, and security event notifications: everything your users need, integrated into your website in minutes.
👉 See it live: Quorvel Coffee is a demo application using Abblix Account for user authentication. It shows how sign-in flows, session management, and user self-service, all delivered by Abblix Account, fit into a client website.
The protocol surface is complete and certified, but the library is not finished. What you run into in your own application is what we cannot see from here.
[!IMPORTANT] Whether you have feedback on features, have encountered any bugs, or have suggestions for enhancements, we're eager to hear from you. A report that names the flow and the client you were using is what turns a guess into a fix.
Please feel free to contribute by submitting an issue or joining the discussions.
For how we handle contributions, and why the library is developed in-house, see our Contributing Guidelines.
This product is distributed under a source-available proprietary license. See 📋License Agreement for details.
It is free of charge for companies under $1M in annual revenue and under $1M raised in outside funding, for non-profits, educational institutions, personal projects and non-commercial open source, and for development, test and staging environments at any size. Every protocol is included at every tier, with no limit on client applications or users, and one production issuer per free deployment. See the pricing page.
For more details about our products, services, or any general information regarding the Abblix OIDC Server, feel free to reach out to us. Below are the best ways to contact our team:
Subscribe to our LinkedIn and Twitter:
716 commits
9 commits
C#
100.0%