Skip to content

Commit

Permalink
Merge pull request #1610 from DuendeSoftware/joe/readmes
Browse files Browse the repository at this point in the history
  • Loading branch information
josephdecock authored Sep 29, 2024
2 parents 6d1a9a5 + 8cde2cd commit ee72df1
Show file tree
Hide file tree
Showing 15 changed files with 287 additions and 29 deletions.
42 changes: 35 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,39 @@
# Duende IdentityServer
The most flexible and standards-compliant OpenID Connect and OAuth 2.x framework for ASP.NET Core
_The most flexible and standards-compliant OpenID Connect and OAuth 2.x framework for ASP.NET Core._

[Web site](https://duendesoftware.com/products/identityserver) and [documentation](https://docs.duendesoftware.com)
Welcome to the official GitHub repository for [Duende](https://duendesoftware.com) IdentityServer!

## How to build
## Overview

* Install Git
* Clone this repo
* [Install](https://www.microsoft.com/net/download/core#/current) the [required](https://github.com/DuendeSoftware/IdentityServer/blob/main/global.json) .NET Core SDK
* Run `build.ps1` or `build.sh` in the root of the cloned repo
Duende IdentityServer is a highly extensible, standards-compliant framework for implementing the OpenID Connect and OAuth 2.x protocols in ASP.NET Core. It offers deep flexibility for handling authentication, authorization, and token issuance and can be adapted to fit complex custom security scenarios.

### Extensibility Points

- **Customizable User Experience**: Go beyond simple branding to fully customizable user interfaces.
- **Core Engine Customization**: The engine itself is modular and built from services that can be extended or overridden.

### Advanced Security Scenarios

Duende IdentityServer supports a wide range of security scenarios for modern applications:

- **Federation**: Easily integrate with external identity providers or other authentication services using [ederation](https://docs.duendesoftware.com/identityserver/v7/ui/federation/).
- **Token Exchange**: Enable secure token exchange between clients and services with [Token Exchange](https://docs.duendesoftware.com/identityserver/v7/tokens/extension_grants/token_exchange/).
- **Audience Constrained Tokens**: Restrict tokens to specific audiences, increasing security in multi-service architectures. Learn more about [audience-constrained tokens](https://docs.duendesoftware.com/identityserver/v7/fundamentals/resources/isolation/).
- **Sender Constrained Tokens**: Implement Proof of Possession (PoP) tokens with [DPoP or mTLS](https://docs.duendesoftware.com/identityserver/v7/tokens/pop/), which bind tokens to the client, adding another layer of protection.
- **Pushed Authorization Requests (PAR)**: Support [Pushed Authorization Requests](https://docs.duendesoftware.com/identityserver/v7/tokens/par/) to enhance the security of the authorization flow.

## Getting Started
If you're ready to dive into development, check out our [Quickstart Tutorial Series](https://docs.duendesoftware.com/identityserver/v7/quickstarts/) for step-by-step guidance.

For more in-depth documentation, visit [our documentation portal](https://docs.duendesoftware.com).

## Licensing
Duende IdentityServer is source-available, but requires a paid [license](https://duendesoftware.com/products/identityserver) for production use.

- **Development and Testing**: You are free to use and explore the code for development, testing, or personal projects without a license.
- **Production**: A license is required for production environments.
- **Free Community Edition**: A free Community Edition license is available for qualifying companies and non-profit organizations. Learn more [here](https://duendesoftware.com/products/communityedition).

## Reporting Issues and Getting Support
- For bug reports or feature requests, open an issue on GitHub: [Submit an Issue](https://github.com/DuendeSoftware/Support/issues/new/choose).
- For security-related concerns, please contact us privately at: **[email protected]**.
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
<PropertyGroup>
<PackageId>Duende.IdentityServer.AspNetIdentity</PackageId>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>

<Description>ASP.NET Core Identity Integration for Duende IdentityServer</Description>
<AssemblyName>Duende.IdentityServer.AspNetIdentity</AssemblyName>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="README.md" Pack="true" PackagePath=""/>
</ItemGroup>

<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Expand Down
29 changes: 29 additions & 0 deletions src/AspNetIdentity/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Duende.IdentityServer.AspNetIdentity

## Overview
Duende.IdentityServer.AspNetIdentity integrates ASP.NET Core Identity with Duende IdentityServer. It enables you to use ASP.NET Core Identity as the store for users within an IdentityServer implementation.

## About IdentityServer
[IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer) is a highly extensible, standards-compliant framework for implementing the OpenID Connect and OAuth 2.x protocols in ASP.NET Core.

## Getting Started
Check out our [Quickstart Tutorial Series](https://docs.duendesoftware.com/identityserver/v7/quickstarts/) for step-by-step guidance. In particular, [QuickStart 5](https://docs.duendesoftware.com/identityserver/v7/quickstarts/5_aspnetid/) shows how to use ASP.NET Core Identity with IdentityServer using this package.

## Licensing
Duende IdentityServer is source-available, but requires a paid [license](https://duendesoftware.com/products/identityserver) for production use.

- **Development and Testing**: You are free to use and explore the code for development, testing, or personal projects without a license.
- **Production**: A license is required for production environments.
- **Free Community Edition**: A free Community Edition license is available for qualifying companies and non-profit organizations. Learn more [here](https://duendesoftware.com/products/communityedition).

## Reporting Issues and Getting Support
- For bug reports or feature requests, open an issue on GitHub: [Submit an Issue](https://github.com/DuendeSoftware/Support/issues/new/choose).
- For security-related concerns, please contact us privately at: **[email protected]**.

## Related Packages
- [Duende.IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer): OAuth and OpenID Connect framework with in-memory or customizable persistence.
- [Duende.IdentityServer.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): OAuth and OpenId Connect framework with Entity Framework based persistence.
- [Duende.IdentityServer.Configuration](https://www.nuget.org/packages/Duende.IdentityServer.Configuration): Configuration API for IdentityServer with in-memory or customizable persistence.
- [Duende.IdentityServer.Configuration.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.Configuration.EntityFramework): Configuration API for IdentityServer with Entity Framework based persistence.
- [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage): Support package containing models and interfaces for the persistence layer of IdentityServer.
- [Duende.IdentityServer.EntityFramework.Storage](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): Support package containing an implementation of the persistence layer of IdentityServer implemented with Entity Framework.
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>

</ItemGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Configuration\Duende.IdentityServer.Configuration.csproj" />
<ProjectReference Include="..\Storage\Duende.IdentityServer.Storage.csproj" />
<ProjectReference Include="..\EntityFramework.Storage\Duende.IdentityServer.EntityFramework.Storage.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Configuration\Duende.IdentityServer.Configuration.csproj" />
<ProjectReference Include="..\Storage\Duende.IdentityServer.Storage.csproj" />
<ProjectReference Include="..\EntityFramework.Storage\Duende.IdentityServer.EntityFramework.Storage.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
</ItemGroup>
</Project>
28 changes: 28 additions & 0 deletions src/Configuration.EntityFramework/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Duende.IdentityServer.Configuration.EntityFramework

## Overview
Duende.IdentityServer.Configuration.EntityFramework provides an implementation of the IdentityServer Configuration API's data stores using Entity Framework.

The IdentityServer Configuration API is a collection of endpoints that allow for management and configuration of an IdentityServer implementation using the Dynamic Client Registration [protocol](https://datatracker.ietf.org/doc/html/rfc7591). The Configuration API can be hosted either separately or within an IdentityServer implementation.

## Getting Started
A guide to installing and hosting the Configuration API is available [here](https://docs.duendesoftware.com/identityserver/v7/configuration/dcr/installation/). More [documentation](https://docs.duendesoftware.com/identityserver/v7/configuration/) and an [API reference](https://docs.duendesoftware.com/identityserver/v7/configuration/dcr/reference/) are also available.

## Licensing
Duende IdentityServer is source-available, but requires a paid [license](https://duendesoftware.com/products/identityserver) for production use.

- **Development and Testing**: You are free to use and explore the code for development, testing, or personal projects without a license.
- **Production**: A license is required for production environments.
- **Free Community Edition**: A free Community Edition license is available for qualifying companies and non-profit organizations. Learn more [here](https://duendesoftware.com/products/communityedition).

## Reporting Issues and Getting Support
- For bug reports or feature requests, open an issue on GitHub: [Submit an Issue](https://github.com/DuendeSoftware/Support/issues/new/choose).
- For security-related concerns, please contact us privately at: **[email protected]**.

## Related Packages
- [Duende.IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer): OAuth and OpenID Connect framework with in-memory or customizable persistence.
- [Duende.IdentityServer.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): OAuth and OpenId Connect framework with Entity Framework based persistence.
- [Duende.IdentityServer.AspNetIdentity](https://www.nuget.org/packages/Duende.IdentityServer.AspNetIdentity): Integration between ASP.NET Core Identity and IdentityServer.
- [Duende.IdentityServer.Configuration](https://www.nuget.org/packages/Duende.IdentityServer.Configuration): Configuration API for IdentityServer with in-memory or customizable persistence.
- [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage): Support package containing models and interfaces for the persistence layer of IdentityServer.
- [Duende.IdentityServer.EntityFramework.Storage](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): Support package containing an implementation of the persistence layer of IdentityServer implemented with Entity Framework.
5 changes: 5 additions & 0 deletions src/Configuration/Duende.IdentityServer.Configuration.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,13 @@
<Description>Configuration system for Duende IdentityServer</Description>
<AssemblyName>Duende.IdentityServer.Configuration</AssemblyName>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="README.md" Pack="true" PackagePath=""/>
</ItemGroup>

<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Expand Down
28 changes: 28 additions & 0 deletions src/Configuration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Duende.IdentityServer.Configuration

## Overview
Duende.IdentityServer.Configuration provides a collection of endpoints that allow for management and configuration of an IdentityServer implementation using the Dynamic Client Registration [protocol](https://datatracker.ietf.org/doc/html/rfc7591). The Configuration API can be hosted either separately or within an IdentityServer implementation.

This package includes abstractions for interacting with the IdentityServer configuration data store. You can either implement the store yourself or use [Duende.IdentityServer.Configuration.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.Configuration.EntityFramework) for our default store implementation built with Entity Framework.

## Getting Started
A guide to installing and hosting the Configuration API is available [here](https://docs.duendesoftware.com/identityserver/v7/configuration/dcr/installation/). More [documentation](https://docs.duendesoftware.com/identityserver/v7/configuration/) and an [API reference](https://docs.duendesoftware.com/identityserver/v7/configuration/dcr/reference/) are also available.

## Licensing
Duende IdentityServer is source-available, but requires a paid [license](https://duendesoftware.com/products/identityserver) for production use.

- **Development and Testing**: You are free to use and explore the code for development, testing, or personal projects without a license.
- **Production**: A license is required for production environments.
- **Free Community Edition**: A free Community Edition license is available for qualifying companies and non-profit organizations. Learn more [here](https://duendesoftware.com/products/communityedition).

## Reporting Issues and Getting Support
- For bug reports or feature requests, open an issue on GitHub: [Submit an Issue](https://github.com/DuendeSoftware/Support/issues/new/choose).
- For security-related concerns, please contact us privately at: **[email protected]**.

## Related Packages
- [Duende.IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer): OAuth and OpenID Connect framework with in-memory or customizable persistence.
- [Duende.IdentityServer.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): OAuth and OpenId Connect framework with Entity Framework based persistence.
- [Duende.IdentityServer.AspNetIdentity](https://www.nuget.org/packages/Duende.IdentityServer.AspNetIdentity): Integration between ASP.NET Core Identity and IdentityServer.
- [Duende.IdentityServer.Configuration.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.Configuration.EntityFramework): Configuration API for IdentityServer with Entity Framework based persistence.
- [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage): Support package containing models and interfaces for the persistence layer of IdentityServer.
- [Duende.IdentityServer.EntityFramework.Storage](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): Support package containing an implementation of the persistence layer of IdentityServer implemented with Entity Framework.
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<PackageId>Duende.IdentityServer.EntityFramework.Storage</PackageId>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>

<Description>EntityFramework persistence layer for Duende IdentityServer</Description>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="README.md" Pack="true" PackagePath=""/>
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" />
</ItemGroup>
Expand Down
29 changes: 29 additions & 0 deletions src/EntityFramework.Storage/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Duende.IdentityServer.EntityFramework.Storage

## Overview
Duende.IdentityServer.EntityFramework.Storage is an Entity Framework based implementation of the data stores in Duende IdentityServer. Most IdentityServer implementations won't take this package as a direct dependency and will instead use Duende.IdentityServer.EntityFramework. This package is used when you only need the store implementation, without the rest of IdentityServer.

## About IdentityServer
[IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer) is a highly extensible, standards-compliant framework for implementing the OpenID Connect and OAuth 2.x protocols in ASP.NET Core.

## Getting Started
Check out our [Quickstart Tutorial Series](https://docs.duendesoftware.com/identityserver/v7/quickstarts/) for step-by-step guidance. In particular, [QuickStart 4](https://docs.duendesoftware.com/identityserver/v7/quickstarts/4_ef/) shows how to use the persistence stores from this package.

## Licensing
Duende IdentityServer is source-available, but requires a paid [license](https://duendesoftware.com/products/identityserver) for production use.

- **Development and Testing**: You are free to use and explore the code for development, testing, or personal projects without a license.
- **Production**: A license is required for production environments.
- **Free Community Edition**: A free Community Edition license is available for qualifying companies and non-profit organizations. Learn more [here](https://duendesoftware.com/products/communityedition).

## Reporting Issues and Getting Support
- For bug reports or feature requests, open an issue on GitHub: [Submit an Issue](https://github.com/DuendeSoftware/Support/issues/new/choose).
- For security-related concerns, please contact us privately at: **[email protected]**.

## Related Packages
- [Duende.IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer): OAuth and OpenID Connect framework with in-memory or customizable persistence.
- [Duende.IdentityServer.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.EntityFramework.Storage): OAuth and OpenId Connect framework with Entity Framework based persistence.
- [Duende.IdentityServer.AspNetIdentity](https://www.nuget.org/packages/Duende.IdentityServer.AspNetIdentity): Integration between ASP.NET Core Identity and IdentityServer.
- [Duende.IdentityServer.Configuration](https://www.nuget.org/packages/Duende.IdentityServer.Configuration): Configuration API for IdentityServer with in-memory or customizable persistence.
- [Duende.IdentityServer.Configuration.EntityFramework](https://www.nuget.org/packages/Duende.IdentityServer.Configuration.EntityFramework): Configuration API for IdentityServer with Entity Framework based persistence.
- [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage): Support package containing models and interfaces for the persistence layer of IdentityServer.
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
<PropertyGroup>
<PackageId>Duende.IdentityServer.EntityFramework</PackageId>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>

<Description>EntityFramework persistence layer for Duende IdentityServer</Description>
<AssemblyName>Duende.IdentityServer.EntityFramework</AssemblyName>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageReadmeFile>README.md</PackageReadmeFile>
</PropertyGroup>

<ItemGroup>
<None Include="README.md" Pack="true" PackagePath=""/>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\EntityFramework.Storage\Duende.IdentityServer.EntityFramework.Storage.csproj" />
<ProjectReference Include="..\IdentityServer\Duende.IdentityServer.csproj" />
Expand Down
Loading

0 comments on commit ee72df1

Please sign in to comment.