Early Preview

This is currently very much a preview. Please feel free to try things out, but don't be upset if anything is not yet working. Feedback is welcome over on our GitHub Dicussions page.

Duende.IdentityServer

OpenID Connect and OAuth 2.0 Framework for ASP.NET Core

Author Duende Software
Version 7.4.5
Tags OAuth 2.0 OpenID Connect Security Identity IdentityServer ASP.NET Core

Public Types

Duende

class License
Models the license for IdentityServer.

Duende.​IdentityServer

interface IClock
Abstraction for the date/time.
Models the license for IdentityServer.
Class for useful helpers for interacting with IdentityServer
Model properties of an IdentityServer user
Useful helpers for interacting with IdentityServer.
class Telemetry
Telemetry helpers
class Tracing
Constants for tracing

Duende.​IdentityServer.​Configuration

Configures the login and logout views and behavior.
Caching options.
class CibaOptions
Configures client initiated backchannel authentication
class CorsOptions
Options for CORS
class CryptoHelper
Crypto helper
class CspOptions
Options for Content Security Policy
Configures device flow
Options that control the way that diagnostic data is logged.
Options class to configure discovery endpoint
class DPoPOptions
Options for DPoP
Configures the dynamic external provider feature.
Configures which endpoints are enabled or disabled.
Configures events
IdentityServer helper class for DI configuration
The IdentityServerOptions class is the top level container for all configuration settings of IdentityServer.
Options to configure behavior of KeyManager.
Options for configuring logging behavior
Options for Mutual TLS features
enum NameType
Describes the string so we know what to search for in certificate store
Cookie configuration for the user session plumbing
Provides configuration options for enabling and managing preview features in IdentityServer.
The Pushed Authorization Options.
Configures the behavior for server-side sessions.
Class to configure signing algorithm.
Options for aspects of the user interface.
The ValidationOptions contains settings that affect some of the default validation behavior.

Duende.​IdentityServer.​Endpoints.​Results

Writes http responses for <see cref="T:Duende.IdentityServer.Endpoints.Results.AuthorizeResult" /> s.
Result for an interactive page
Models the result from the authorize endpoint
Models the result of backchannel authentication
The result of a bad request
The resukt of the check session endpoint
Result for consent page
Result for create account page
Result for a custom redirect
The result of device authorization
Result for a discovery document
class EndpointResult<​T>
Provides the base implementation of <see cref="T:Duende.IdentityServer.Hosting.IEndpointResult" /> that invokes the corresponding <see cref="T:Duende.IdentityServer.Hosting.IHttpResponseWriter`1" /> to write the result as an http response.
Models the result of end session callback
Result for endsession
Result for introspection
Result for the jwks document
Result for login page
Models result of a protected resource
Represents an error result from the pushed authorization endpoint that can be written to the http response.
Represents a successful result from the pushed authorization endpoint that can be written to the http response.
Result for a raw HTTP status code
Models a token error result
class TokenResult
Models a token result
Result for revocation error
The result of userinfo

Duende.​IdentityServer.​Events

Event for failed API authentication
Event for successful API authentication
Event for failed backchannel authentication result
Event for successful backchannel authentication result
Event for failed client authentication
Event for successful client authentication
Event for denied consent.
Event for granted consent.
The default event service
Event for device authorization failure
Event for device authorization failure
class Event
Models base class for events raised from IdentityServer.
Categories for events
class EventIds
enum EventTypes
Indicates if the event is a success or fail event.
Event for revoked grants.
Event for unhandled exceptions
Event for unhandled exceptions
Event for failed token introspection
Event for successful token introspection
Event for failed token issuance
Event for successful token issuance
Event for successful token revocation
Event for unhandled exceptions
Event for failed user authentication
Event for successful user authentication
Event for successful user logout

Duende.​IdentityServer.​Extensions

Extensions for AuthenticationProperties
Extension methods for AuthenticationTicket
Extensions for Key Management
Extension methods for <see cref="T:System.Security.Principal.IPrincipal" /> and <see cref="T:System.Security.Principal.IIdentity" /> .
Extension methods for IServerUrls
Extensions for Token
Extensions methods for X509Certificate2

Duende.​IdentityServer.​Hosting

class Endpoint
IdentityServer middleware
interface IEndpointHandler
Endpoint handler
interface IEndpointResult
An <see cref="T:Duende.IdentityServer.Hosting.IEndpointResult" /> is the object model that describes the results that will returned by one of the protocol endpoints provided by IdentityServer, and can be executed to produce an HTTP response.
interface IEndpointRouter
The endpoint router is responsible for mapping incoming http requests onto <see cref="T:Duende.IdentityServer.Hosting.IEndpointHandler" /> s, for the protocol endpoints that IdentityServer supports.
interface IHttpResponseWriter<​T>
Contract for a service that writes appropriate http responses for <see cref="T:Duende.IdentityServer.Hosting.IEndpointResult" /> objects.
Middleware for re-writing the MTLS enabled endpoints to the standard protocol endpoints

Duende.​IdentityServer.​Hosting.​DynamicProviders

Caching decorator for IIdentityProviderStore
class ConfigureAuthenticationContext<​TAuthenticationOptions, TIdentityProvider>
Context for configuring an authentication handler from a dynamic identity provider.
class ConfigureAuthenticationOptions<​TAuthenticationOptions, TIdentityProvider>
Helper class for configuring authentication options from a dynamic identity provider
Models a dynamic authentication scheme and it's corresponding IdentityProvider data.
Cache for DynamicAuthenticationScheme.
Decorator for IIdentityProviderStore that will purge the IOptionsMonitor so that the options are not cached.
Validating decorator for IIdentityProviderStore

Duende.​IdentityServer.​Hosting.​LocalApiAuthentication

Context class for local API claims transformation
Events for local API authentication
Authentication handler for validating access token from the local IdentityServer
Options for local API authentication
Models the type of tokens accepted for local API authentication

Duende.​IdentityServer.​Infrastructure

State formatter using IDistributedCache

Duende.​IdentityServer.​Internal

Default implementation.
interface IConcurrencyLock<​T>
Interface to model locking.
class NopConcurrencyLock<​T>
Nop implementation.

Duende.​IdentityServer.​Licensing

Usage summary for the current IdentityServer instance intended for auditing purposes.

Duende.​IdentityServer.​Licensing.​V2.​Diagnostics

Duende.​IdentityServer.​Models

Enum to model interaction authorization errors.
Represents contextual information about a authorization request.
Models the information to initiate a user login request due to a CIBA request.
Extension methods for client.
Models the parameters to identify a request for consent.
Models the user's response to the consent screen.
Represents contextual information about a device flow authorization request.
Request object for device flow interaction
class ErrorMessage
Models the data for the error page.
class Grant
Models a grant the user has given.
class GrantTypes
Extension methods for hashing strings
Convenience class that defines standard identity resources.
Context describing the is-active check
class JsonWebKey
Models the validated singout context.
Provides the context necessary to construct a logout notification.
Models the reason the user's session was ended.
Models the request from a client to sign the user out.
class Message<​TModel>
Base class for data that needs to be written out as cookies.
class ParsedSecret
Represents a secret extracted from the HttpContext
Class describing the profile data request
Extensions for ProfileDataRequestContext
Models the data to create a refresh token from a validated request.
Models the data to update a refresh token.
Extensions for Resource
Information about a security key
Models the data to create a token from a validated request.
Token request errors
class UserSession
Results from querying user sessions from session management service.

Duende.​IdentityServer.​ResponseHandling

Default logic for determining if user must login or consent when making requests to the authorization endpoint.
The authorize response generator
Models a backchannel authentication response
The backchannel authentication response generator
The device authorization response generator
Default implementation of the discovery endpoint response generator
Interface for determining if user must login or consent when making requests to the authorization endpoint.
Interface for the authorize response generator
Interface the backchannel authentication response generator
Interface for the device authorization response generator
Interface for discovery endpoint response generator
Interface for introspection response generator
Indicates interaction outcome for user on authorization endpoint.
Models the types of interaction results from the IAuthorizeInteractionResponseGenerator
The introspection response generator
Service that generates response models for the pushed authorization endpoint. This service encapsulates the behavior that is needed to create a response model from a validated request.
Interface the token response generator
Interface for the userinfo response generator
Interface for the userinfo response generator
Represents failure from the pushed authorization endpoint.
Base class for responses from the pushed authorization endpoint.
Represents success from the pushed authorization endpoint.
Models a token error response
Models a token response
The default token response generator
Models a token revocation response
Default revocation response generator
The userinfo response generator

Duende.​IdentityServer.​Services

Information necessary to make a back-channel logout request to a client.
Models the data needed for a user to complete a backchannel authentication request.
Default implementation of IBackchannelAuthenticationInteractionService.
Models making HTTP requests for back-channel logout notification.
Default back-channel logout notification implementation.
class DefaultCache<​T>
IMemoryCache-based implementation of the cache
Default claims provider implementation
Default consent service
Default CORS policy service.
Default implementation of the event service. Write events raised to the log.
Default handle generation service
Abstracts issuer name access
Default JwtRequest client
The default key material service
Default persisted grant service
Default profile service implementation. This implementation sources all claims from the current subject (e.g. the cookie).
Default refresh token service
Default implementation of the replay cache using IDistributedCache
Implements IServerUrls
Default session coordination service
Default session management service
Default token creation service
Default token service
Default user code service implementation.
Cookie-based session implementation
A pushed authorization request that is not serialized.
Implementation of IBackchannelAuthenticationThrottlingService that uses the IDistributedCache.
The default device flow throttling service using IDistributedCache.
Provide services be used by the user interface to communicate with IdentityServer for backchannel authentication requests.
The backchannel authentication throttling service.
Interface for sending a user a login request from a backchannel authentication request.
Models making HTTP requests for back-channel logout notification.
The service responsible for performing back-channel logout notification.
interface ICache<​T>
Abstract interface to model data caching
interface IClaimsService
The claims service is responsible for determining which claims to include in tokens
interface IConsentService
Service to retrieve and update consent.
Wrapper service for IDeviceFlowStore.
Provide services be used by the user interface to communicate with IdentityServer.
The device flow throttling service.
interface IEventService
Interface for the event service
interface IEventSink
Models persistence of events
Interface for the handle generation service
Provide services be used by the user interface to communicate with IdentityServer.
interface IIssuerNameService
Abstract access to the current issuer name
Models making HTTP requests for JWTs from the authorize endpoint.
Interface for the key material service
Provides features for OIDC signout notifications.
An ICorsPolicyService for use with clients configured with AddInMemoryClients. This service will allow any origin included in any client's AllowedCorsOrigins.
Implements persisted grant logic
interface IProfileService
This interface allows IdentityServer to connect to your user and profile store.
Contract for a service that can serialize and deserialize pushed authorization requests.
Contract for a service that performs high-level operations on pushed authorization requests.
Implements refresh token creation and validation
interface IReplayCache
Interface for replay cache implementations
interface IReturnUrlParser
Interface for the return URL parser
interface IServerUrls
Configures the per-request URLs and paths into the current server
Service responsible for logic around coordinating client and server session lifetimes.
Session management service
Logic for creating security tokens
interface ITokenService
Logic for creating security tokens
interface IUiLocalesService
interface IUserCodeGenerator
Implements device flow user code generation
interface IUserCodeService
Implements user code generation
interface IUserSession
Models a user's authentication session
Default implementation of logout notification service.
Nop implementation of IUserLoginService.
User code generator using 9 digit number
Default implementation of <see cref="T:Duende.IdentityServer.Services.IPushedAuthorizationSerializer" /> .
Models the information to remove a user's session data.
Parses a return URL using all registered URL parsers
Models request to validation a session from a client.
Represent the type of session validation request

Duende.​IdentityServer.​Services.​Default

Default wrapper service for IDeviceFlowStore, handling key hashing

Duende.​IdentityServer.​Services.​KeyManagement

Implementation of IValidationKeysStore and ISigningCredentialStore based on KeyManager.
Client configuration validator that ensures access token lifetimes are compatible with the key management options.
Implementation of IKeyProtector based on ASP.NET Core's data protection feature.
Container class for ECDsaSecurityKey.
Implementation of ISigningKeyStore based on file system.
Store abstraction for automatic key management.
interface IKeyManager
Interface to model loading the keys.
Interface to model protecting/unprotecting RsaKeyContainer.
Interface to model caching keys loaded from key store.
class KeyContainer
Container class for key.
class KeyManager
Implementation of IKeyManager that creates, stores, and rotates signing keys.
Container class for RsaSecurityKey.
Container class for X509 keys.

Duende.​IdentityServer.​Stores

class CachingClientStore<​T>
Cache decorator for IClientStore
Caching decorator for ICorsPolicyService
class CachingResourceStore<​T>
Caching decorator for IResourceStore
Default authorization code store.
Default authorization code store.
class DefaultGrantStore<​T>
Base class for persisting grants using the IPersistedGrantStore.
Default reference token store.
Default refresh token store.
Default user consent store.
Interface for authorization request messages that are sent from the authorization endpoint to the login and consent UI.
Extension for IClientStore
Interface for consent messages that are sent from the consent UI to the authorization endpoint.
interface IMessageStore<​TModel>
Interface for a message store
In-memory client store
In-memory device flow store
In-memory persisted grant store
In-memory implementation of the pushed authorization request store
In-memory resource store
In-memory user session store
Default signing credentials store
The default validation key store
Extensions for IResourceStore
Custom type for ITicketStore
Interface for a signing credential store
Interface for the validation key store
class ProtectedDataMessageStore<​TModel>
IMessageStore implementation that uses data protection to protect message.
IServerSideSessionService backed by server side session store
class ValidatingClientStore<​T>
Client store decorator for running runtime configuration validation checks

Duende.​IdentityServer.​Stores.​Default

Implementation of IAuthorizationParametersMessageStore that uses the IDistributedCache.

Duende.​IdentityServer.​Test

class TestUser
In-memory user object for testing. Not intended for modeling users in production.
Profile service for test users
Resource owner password validator for test users
Store for test users

Duende.​IdentityServer.​Validation

Validation result for API validation
Validates API secrets using the registered secret validators and parsers
Indicates the context in which authorization validation is occurring (is this the authorize endpoint with or without PAR or the PAR endpoint itself?)
Validation result for authorize requests
Context for backchannel authentication request id validation.
Validation result for backchannel authentication requests
Represents the result of a backchannel authentication request.
Context information for validating a user during backchannel authentication request.
Parses a Basic Authentication header
Models usage of a bearer token
Context for client configuration validation.
Validation result for client validation
Validates a client secret using the registered secret validators and parsers
Context for custom authorize request validation.
The validation context for a custom CIBA validator.
Context class for custom token request validation
Default client configuration validator
Default implementation of the CIBA validator extensibility point. This validator deliberately does nothing.
Default custom token validator
Default implementation of IDPoPProofValidator
Default identity provider configuration validator
Default implementation of IResourceValidator.
Default implementation of IScopeParser.
Validation result for device authorization requests
Validation result for device code validation request.
Models the context for validaing DPoP proof tokens.
Models the result of DPoP proof validation.
Validation result for end session callback requests.
Validates requests to the end session endpoint.
Validation result for end session requests
Class describing the extension grant validation context
Validates an extension grant request using the registered validators
Models the result of custom grant validation.
Validates a shared secret stored in SHA256 or SHA512
Validator for handling API client authentication.
Authorize endpoint request validator.
The backchannel authentication request id validator
Interface for the backchannel authentication request validator
Interface for the backchannel authentication user validation
Validator for handling client authentication
Validator for handling client authentication
Allows inserting custom validation logic into authorize and token requests
Extensibility point for CIBA authentication request validation.
Allows inserting custom validation logic into token requests
Allows inserting custom token validation logic
Context for identity provider configuration validation.
Context for identity provider configuration validation.
Device authorization endpoint request validator.
The device code validator
Validator for handling DPoP proofs.
Validates end session requests.
Handles validation of token requests using custom grant types
Validator for handling identity provider configuration
Interface for the introspection request validator
Interface for request object validator
Context for validating an introspection request.
Failure reasons for introspection request
Validation result for introspection request
Validation service for pushed authorization requests. Note that, in addition to validation performed specially for pushed authorization requests, the pushed parameters should be validated in the same way as an authorization request sent to the authorization endpoint. Typical implementations of this service will delegate to the <see cref="T:Duende.IdentityServer.Validation.IAuthorizeRequestValidator" /> for this purpose.
Models the logic when validating redirect and post logout redirect URIs.
Handles validation of resource owner password credentials
interface IResourceValidator
Validates requested resources (scopes and resource indicators)
interface IScopeParser
Allows parsing raw scopes values into structured scope values.
interface ISecretParser
A service for parsing secrets found on the request
interface ISecretsListParser
Parser for finding the best secret in an Enumerable List
Validator for an Enumerable List of Secrets
interface ISecretValidator
Service for validating a received secret against a stored secret
Interface for the token request validator
Interface for the token revocation request validator
interface ITokenValidator
Interface for the token validator
Validator for userinfo requests
Parses a POST body for a JWT bearer client assertion
Context for validating a JWT sent as a request parameter.
Models the result of JWT request validation.
Validates JWT authorization request objects
Parses secret according to MTLS spec
Nop implementation of IBackchannelAuthenticationUserValidator.
No-op client configuration validator (for backwards-compatibility).
Default resource owner password validator (no implementation == not supported)
Represents the result of scope parsing.
Models an error parsing a scope.
Models a parsed scope value.
Validates a secret stored in plain text
Parses a POST body for secrets
Validates a secret based on RS256 signed JWT token
Models the thumbprint of a proof key
Context needed to validate a pushed authorization request.
Represents the results of validating a pushed authorization request.
Models the context for validating a client's redirect URI
Class describing the resource owner password validation context
Class describing the resource validation context
Models the request to validate scopes and resource indicators for a client.
Result of validation of requested scopes and resource indicators.
Compares resource_type strings, where the order of space-delimited values is insignificant.
class SecretParser
Uses the registered secret parsers to parse a secret on the current request
Validation result for secrets
Validates secrets using the registered validators
Default implementation of redirect URI validator. Validates the URIs against the client's configured URIs.
Implementation of strict redirect URI validator that allows a random port if 127.0.0.1 is used.
Class describing the token endpoint request validation context
Validation result for token requests
Models the validation result of access tokens and id tokens.
Models the validation result of access tokens and id tokens.
Validation result for userinfo requests
Models a validated request to the authorize endpoint.
Models a validated request to the backchannel authentication endpoint.
Models a validated request to the device authorization endpoint.
Represents a validated end session (logout) request
A validated pushed authorization request
Base class for a validated authorize or token request
Models a validated request to the token endpoint.
Minimal validation result class (base-class for more complex validation results)
Validator for an X.509 certificate based client secret using the common name
Validator for an X.509 certificate based client secret using the thumbprint

Microsoft.​AspNetCore.​Builder

Pipeline extension methods for adding IdentityServer
Options for the IdentityServer middleware

Microsoft.​AspNetCore.​Http

Extension methods for signin/out using the IdentityServer authentication scheme.

Microsoft.​Extensions.​DependencyInjection

Add extension methods for configuring generic dynamic providers.
Extension methods for the IdentityServer builder
Builder extension methods for registering additional services
Builder extension methods for registering core services
Builder extension methods for registering crypto services
Builder extension methods for registering in-memory services
Add extension methods for configuring OIDC dynamic providers.
DI extension methods for adding IdentityServer
IdentityServer builder Interface
Extensions for registering the local access token authentication handler
Helper to cleanup expired server side sessions.
Extension methods for adding session management
Implementation of IBackchannelAuthenticationUserValidator using the test user store.