OpenIddict aims at providing a versatile solution to implement OpenID Connect client, server and token validation support in .NET applications.
Tip
While the client, server and token validation features can be used in any ASP.NET 4.6.2+ or ASP.NET Core 2.3+ web application, the client feature can also be used in Android, iOS, Linux, Mac Catalyst, macOS and Windows applications to integrate with OpenIddict-based identity providers or any other OAuth 2.0/OpenID Connect-compliant implementation.
OpenIddict fully supports the code/implicit/hybrid flows, the client credentials/resource owner password grants, the device authorization flow and the token exchange grant.
OpenIddict natively supports Entity Framework Core, Entity Framework 6 and MongoDB out-of-the-box and custom stores can be implemented to support other providers.
To implement a custom OpenID Connect server using OpenIddict, read Getting started.
Samples demonstrating how to use OpenIddict with the different OAuth 2.0/OpenID Connect flows can be found in the dedicated repository.
Developers looking for a simple and turnkey solution are strongly encouraged to evaluate Volo.OpenIddict.Pro, which is based on OpenIddict, supports all the common OAuth 2.0/OpenID Connect flows and offers a powerful applications/scopes management GUI.
Tip
Looking to integrate with a SAML2P Identity Provider (IDP) or Service Provider (SP)? Rock Solid Knowledge, a sponsor of OpenIddict, is developing a range of identity components to enhance your OpenIddict solution. The first of these is their popular SAML2P component.
Unlike many other identity providers, OpenIddict is not a turnkey solution but a framework that requires writing custom code to be operational (typically, at least an authorization controller), making it a poor candidate for the certification program.
While a reference implementation could be submitted as-is, this wouldn't guarantee that implementations deployed by OpenIddict users would be standard-compliant.
Instead, developers are encouraged to execute the conformance tests against their own deployment once they've implemented their own logic.
Tip
The samples repository contains a dedicated sample specially designed to be used with the OpenID Connect Provider Certification tool and demonstrate that OpenIddict can be easily used in a certified implementation. To allow executing the certification tests as fast as possible, that sample doesn't include any membership or consent feature (two hardcoded identities are proposed for tests that require switching between identities).
Looking for additional resources to help you get started with OpenIddict? Don't miss these interesting blog posts:
- OpenIddict 7.0 is out by Kévin Chalet
- OpenIddict on AWS Serverless: adding interactive login by Anton Ganhammar
- OpenIddict on AWS Serverless: flexible OAuth 2.0/OIDC provider by Anton Ganhammar
- Transparent authentication gateway by Alex Klaus
- Introducing system integration support for the OpenIddict client by Kévin Chalet
- Getting started with the OpenIddict web providers by Kévin Chalet
- Introducing the OpenIddict-powered providers by Kévin Chalet
- Introducing the OpenIddict client by Kévin Chalet
- Secure a Blazor WASM ASP.NET Core hosted app using BFF and OpenIddict by Damien Bowden
- Setting up an Authorization Server with OpenIddict by Robin van der Knaap
- Adding OpenIddict 3.0 to an OWIN application by Kévin Chalet
- Creating an OpenID Connect server proxy with OpenIddict 3.0's degraded mode by Kévin Chalet
OpenIddict-based projects maintained by third parties:
- ABP Framework OpenIddict module: full-stack Web application framework for .NET
- OpenIddict.AmazonDynamoDB by ganhammar: Amazon DynamoDB stores for OpenIddict
- OpenIddict UI by Thomas Duft: headless UI for managing client applications and scopes
- OrchardCore OpenID module: turnkey OpenID Connect server and token validation solution, built with multitenancy in mind
- P41.OpenIddict.CouchDB by Panos Athanasiou: CouchDB stores for OpenIddict
- pixel-identity by Nishant Singh: Ready to host OpenID Connect service using OpenIddict and ASP.NET Identity with a Blazor-based UI for managing users, roles, applications and scopes with support for multiple databases.
- SharpGrip.OpenIddict.Api by SharpGrip: SharpGrip OpenIddict API is an extension of the OpenIddict library exposing the OpenIddict entities through a RESTful API.
Security issues and bugs should be reported privately by email to security@openiddict.com. You should receive a response within 24 hours. If you do not, please follow up by email to ensure that your original message was received.
For more information about the available support options, read Support policy.
If you want to try out the latest features and bug fixes, there is a MyGet feed with nightly builds of OpenIddict.
To reference the OpenIddict MyGet feed, create a NuGet.config file (at the root of your solution):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="openiddict" value="https://www.myget.org/F/openiddict/api/v3/index.json" />
</packageSources>
</configuration>OpenIddict is actively maintained by Kévin Chalet. Contributions are welcome and may be submitted through pull requests.
Special thanks to our sponsors for their incredible support:
































This project is licensed under the Apache License. This means that you can use, modify and distribute it freely. See http://www.apache.org/licenses/LICENSE-2.0.html for more details.