title: IdentityServer4 vs AspNet.Security.OpenIdConnect.Server vs OpenIddict
body: <p>In an attempt to understand what I may use for OpenId Connect Server implementation, I have looked into what each of them is:</p>
  
  <ul>
  <li><p><a href="https://github.com/IdentityServer/IdentityServer4" rel="noreferrer">IdentityServer4</a>:</p>
  
  <blockquote>
    <p>an OpenID Connect and OAuth 2.0 framework for ASP.NET Core 2.</p>
  </blockquote></li>
  <li><p><a href="https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server" rel="noreferrer">AspNet.Security.OpenIdConnect.Server</a>: </p>
  
  <blockquote>
    <p>is an advanced OAuth2/OpenID Connect server framework for both ASP.NET Core 1.x/2.x and OWIN/Katana 3.x/4.x, designed to offer a low-level, protocol-first approach.</p>
  </blockquote></li>
  <li><p><a href="https://github.com/openiddict/openiddict-core" rel="noreferrer">OpenIddict</a>: </p>
  
  <blockquote>
    <p>OpenIddict aims at providing a simple and easy-to-use solution to implement an OpenID Connect server in any ASP.NET Core 1.x or 2.x application.</p>
    
    <p>OpenIddict is based on <code>AspNet.Security.OpenIdConnect.Server</code> to control the OpenID Connect authentication flow and can be used with any membership stack, including ASP.NET Core Identity.</p>
  </blockquote></li>
  <li><p>Also have checked that all of them use well the <a href="https://github.com/aspnet/Identity" rel="noreferrer">ASP.NET Core Identity</a> as a membership system.</p></li>
  </ul>
  
  <p>And so my current understanding is that <code>IdentityServer4</code> and <code>OpenIdConnect.Server</code> are two alternative frameworks that solve the same problem. The main difference is the list of supported ASP.NET Core versions.</p>
  
  <p>Regarding <code>Openiddict</code> - it is a kind of extension to simplify server creation based on <code>AspNet.Security.OpenIdConnect.Server</code>.</p>
  
  <p>Have I missed something, or this is how things in general are?</p>