Skip to content

Commit 8b3c926

Browse files
authored
Added clearer description, remove outdated information, fixed links (#50702)
1 parent 8fb49e3 commit 8b3c926

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

docs/architecture/cloud-native/identity-server.md

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@ ms.date: 02/06/2025
88

99
[!INCLUDE [download-alert](includes/download-alert.md)]
1010

11-
IdentityServer is an authentication server that implements OpenID Connect (OIDC) and OAuth 2.0 standards for ASP.NET Core. It's designed to provide a common way to authenticate requests to all of your applications, whether they're web, native, mobile, or API endpoints. IdentityServer can be used to implement Single Sign-On (SSO) for multiple applications and application types. It can be used to authenticate actual users via sign-in forms and similar user interfaces as well as service-based authentication that typically involves token issuance, verification, and renewal without any user interface. IdentityServer is designed to be a customizable solution. Each instance is typically customized to suit an individual organization and/or set of applications' needs.
11+
Duende IdentityServer is a framework to build an OpenID Connect (OIDC) and OAuth 2.x standards-compliant authentication server using ASP.NET Core.
12+
13+
It is designed to provide a common way to authenticate requests to all of your applications, whether they're web, native, mobile, or API endpoints. IdentityServer can be used to implement Single Sign-On (SSO) for multiple applications and application types. It can be used to authenticate actual users via sign-in forms and similar user interfaces as well as service-based authentication that typically involves token issuance, verification, and renewal without any user interface. It can also act as a federation gateway to unify authentication providers.
14+
15+
IdentityServer is designed to be a customizable solution. Each instance is typically customized to suit an individual organization or the needs of a set of applications.
1216

1317
## Common web app scenarios
1418

@@ -24,9 +28,9 @@ Typically, applications need to support some or all of the following scenarios:
2428

2529
**Figure 8-1**. Application types and scenarios.
2630

27-
In each of these scenarios, the exposed functionality needs to be secured against unauthorized use. At a minimum, this typically requires authenticating the user or principal making a request for a resource. This authentication may use one of several common protocols such as SAML2p, WS-Fed, or OpenID Connect. Communicating with APIs typically uses the OAuth2 protocol and its support for security tokens. Separating these critical cross-cutting security concerns and their implementation details from the applications themselves ensures consistency and improves security and maintainability. Outsourcing these concerns to a dedicated product like IdentityServer helps the requirement for every application to solve these problems itself.
31+
In each of these scenarios, the exposed functionality needs to be secured against unauthorized use. At a minimum, this typically requires authenticating the user or principal making a request for a resource. This authentication may use one of several common protocols such as SAML2p, WS-Fed, or OpenID Connect. Communicating with APIs typically uses the OAuth 2 protocol and its support for security tokens. Separating these critical cross-cutting security concerns and their implementation details from the applications themselves ensures consistency and improves security and maintainability. Outsourcing these concerns to a dedicated product like IdentityServer helps the requirement for every application to solve these problems itself.
2832

29-
IdentityServer provides middleware that runs within an ASP.NET Core application and adds support for OpenID Connect and OAuth2 (see [supported specifications](https://docs.duendesoftware.com/identityserver/v7/overview/specs/)). Organizations would create their own ASP.NET Core app using IdentityServer middleware to act as the STS for all of their token-based security protocols. The IdentityServer middleware exposes endpoints to support standard functionality, including:
33+
IdentityServer provides middleware that runs within an ASP.NET Core application and adds support for OpenID Connect and OAuth 2.x (see [supported specifications](https://docs.duendesoftware.com/identityserver/v7/overview/specs/)). Using IdentityServer, organizations can create their own ASP.NET Core app using IdentityServer middleware to act as the authorization server for all of their token-based security protocols. The IdentityServer middleware exposes endpoints to support standard functionality, including:
3034

3135
- Authorize (authenticate the end user)
3236
- Token (request a token programmatically)
@@ -36,21 +40,22 @@ IdentityServer provides middleware that runs within an ASP.NET Core application
3640
- Introspection (token validation)
3741
- Revocation (token revocation)
3842
- End Session (trigger single sign-out across all apps)
43+
- Pushed Authorization Requests (for a more secure authentication process)
3944

4045
## Getting started
4146

42-
IdentityServer is available:
47+
IdentityServer is available:
4348

4449
* With a community license, which lets you use the [IdentityServer free for small companies and non-profits](https://duendesoftware.com/products/communityedition) (conditions apply)
4550
* Paid, which lets you use the IdentityServer [in a commercial scenario](https://duendesoftware.com/products/identityserver)
4651

4752
For more information about pricing, see the official product's [pricing page](https://duendesoftware.com/products/identityserver).
4853

49-
You can add it to your applications using its NuGet packages. The main package is [IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer/), which has been downloaded over four million times. The base package doesn't include any user interface code and only supports in-memory configuration. To use it with a database, you'll also want a data provider like [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage), which uses Entity Framework Core to store configuration and operational data for IdentityServer. For user interface, you can copy files from the [Quickstart UI repository](https://github.com/DuendeSoftware/IdentityServer.Quickstart.UI) into your ASP.NET Core MVC application to add support for sign in and sign out using IdentityServer middleware.
54+
You can add it to your applications using its NuGet packages. The main package is [IdentityServer](https://www.nuget.org/packages/Duende.IdentityServer/), which has been downloaded over four million times. The base package doesn't include any user interface code and only supports in-memory configuration. To use it with a database, you'll also want a data provider like [Duende.IdentityServer.Storage](https://www.nuget.org/packages/Duende.IdentityServer.Storage), which uses Entity Framework Core to store configuration and operational data for IdentityServer. For user interface, you can copy files from the [samples repository](https://github.com/DuendeSoftware/samples/tree/main/IdentityServer/v7/Quickstarts) into your ASP.NET Core MVC application to add support for sign in and sign out using IdentityServer middleware.
5055

5156
## Configuration
5257

53-
IdentityServer supports different kinds of protocols and social authentication providers that can be configured as part of each custom installation. This is typically done in the ASP.NET Core application's `Program` class (or in the `Startup` class in the `ConfigureServices` method). The configuration involves specifying the supported protocols and the paths to the servers and endpoints that will be used. Figure 8-2 shows an example configuration taken from the [IdentityServer Quickstart for ASP.NET Core applications](https://docs.duendesoftware.com/identityserver/v7/quickstarts/2_interactive/) project:
58+
IdentityServer supports different kinds of protocols and social authentication providers that can be configured as part of each custom installation. This is typically done in the ASP.NET Core application's `Program` class. The configuration involves specifying the supported protocols and the paths to the servers and endpoints that will be used. Figure 8-2 shows an example configuration taken from the [IdentityServer Quickstart for ASP.NET Core applications](https://docs.duendesoftware.com/identityserver/v7/quickstarts/2_interactive/) project:
5459

5560
```csharp
5661
// some details omitted
@@ -92,13 +97,13 @@ builder.Services.AddAuthentication(options =>
9297

9398
## JavaScript clients
9499

95-
Many cloud-native applications use server-side APIs and rich client single page applications (SPAs) on the front end. IdentityServer ships a [JavaScript client](https://docs.duendesoftware.com/identityserver/v7/quickstarts/js_clients/) (`oidc-client.js`) via NPM that can be added to SPAs to enable them to use IdentityServer for sign in, sign out, and token-based authentication of web APIs. In addition, you can use a [backend-for-frontend (BFF)](https://docs.duendesoftware.com/identityserver/v7/quickstarts/js_clients/js_with_backend/) that implements all of the security protocol interactions with the token server and the IETF's [OAuth 2.0 for Browser-Based Applications spec](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps).
100+
Many cloud-native applications use server-side APIs and rich client single page applications (SPAs) on the front end, for example, using React, Angular, or Blazor WebAssembly. The [backend-for-frontend (BFF)](https://docs.duendesoftware.com/identityserver/v7/quickstarts/js_clients/js_with_backend/) pattern is used for these types of clients, which makes it possible to keep tokens out of the browser's reach. This pattern follows IETF's [OAuth 2.0 for Browser-Based Applications spec](https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps).
96101

97102
## References
98103

99104
- [IdentityServer documentation](https://docs.duendesoftware.com/identityserver/v7/)
100-
- [Application types](/azure/active-directory/develop/app-types)
101-
- [JavaScript OIDC client](https://docs.duendesoftware.com/identityserver/v7/quickstarts/js_clients/)
105+
- [Application types](https://docs.duendesoftware.com/identityserver/fundamentals/clients/)
106+
- [Backend for Frontend](https://docs.duendesoftware.com/bff)
102107

103108
>[!div class="step-by-step"]
104109
>[Previous](azure-active-directory.md)

0 commit comments

Comments
 (0)