IssuerUriSet the issuer name that will appear in the discovery document and the issued JWT tokens. It is recommended to not set this property, which infers the issuer name from the host name that is used by the clients.
LowerCaseIssuerUriSet to
falseto preserve the original casing of the IssuerUri. Defaults totrue.
AccessTokenJwtTypeSpecifies the value used for the JWT typ header for access tokens (defaults to
at+jwt).
EmitScopesAsSpaceDelimitedStringInJwtSpecifies whether scopes in JWTs are emitted as array or string
EmitStaticAudienceClaimEmits an
audclaim with the format issuer/resources. Defaults to false.
StrictJarValidationWhen enabled, applies strict JWT-secured authorization request validation, including typ and content-type checks, according to IETF spec. Defaults to
false.
EnableAuthorizeResponseIssuerParamWhen enabled, the authorize response will include the issuer
issparameter, and advertises support in the discovery document. Defaults tofalse.
SupportedRequestObjectSigningAlgorithmsSpecifies the signing algorithms that are permitted for JWT request objects. Defaults to empty, will be
RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512in the next major version. When set to a non-empty list, the specified algorithms will be accepted for JWT request objects and published in the discovery document.
Endpoints¶
Allows enabling/disabling individual endpoints, e.g. token, authorize, userinfo etc.
By default all endpoints are enabled, but you can lock down your server by disabling endpoint that you don’t need.
EnableJwtRequestUriJWT request_uri processing is enabled on the authorize endpoint. Defaults to
false.
EnablePushedAuthorizationRequestEndpointEnables the pushed authorization request endpoint. Defaults to
true. See Pushed Authorization Requests.
Discovery¶
Allows enabling/disabling various sections of the discovery document, e.g. endpoints, scopes, claims, grant types etc.
The CustomEntries dictionary allows adding custom elements to the discovery document.
ExpandRelativePathsInCustomEntriesSpecifies whether relative paths in the
CustomEntriesdictionary should be expanded to absolute URLs based on the issuer URI. Defaults totrue.
ResponseCacheIntervalSpecifies the interval of the
maxagecache control directive for the discovery document.0will set no-cache headers.nullwill not set a cache control header. Defaults tonull
Authentication¶
CookieAuthenticationSchemeSets the cookie authentication scheme configured by the host used for interactive users. If not set, the scheme will be inferred from the host’s default authentication scheme. This setting is typically used when AddPolicyScheme is used in the host as the default scheme.
CookieLifetimeThe authentication cookie lifetime (only effective if the IdentityServer-provided cookie handler is used).
CookieSlidingExpirationSpecifies if the cookie should be sliding or not (only effective if the IdentityServer-provided cookie handler is used).
CookieSameSiteModeSpecifies the SameSite mode for the internal cookies.
RequireAuthenticatedUserForSignOutMessageIndicates if user must be authenticated to accept parameters to end session endpoint. Defaults to false.
CheckSessionCookieNameThe name of the cookie used for the check session endpoint.
CheckSessionCookieDomainThe domain of the cookie used for the check session endpoint.
CheckSessionCookieSameSiteModeThe SameSite mode of the cookie used for the check session endpoint.
RequireCspFrameSrcForSignoutIf set, will require frame-src CSP headers being emitting on the end session callback endpoint which renders iframes to clients for front-channel signout notification. Defaults to true.
CoordinateClientLifetimesWithUserSessionIf set, refresh token lifetimes will be tied to the users’ session. This setting can be overridden at the client level. Defaults to
false.
Events¶
Allows configuring if and which events should be submitted to a registered event sink. See here for more information on events.
InputLengthRestrictions¶
Allows setting length restrictions on various protocol parameters like client id, scope, redirect URI etc.
UserInteraction¶
LoginUrl,LogoutUrl,CreateAccountUrl,ConsentUrl,ErrorUrl,DeviceVerificationUrlSets the URLs for the login, logout, create account, consent, error and device verification pages.
LoginReturnUrlParameterSets the name of the return URL parameter passed to the login page. Defaults to returnUrl.
LogoutIdParameterSets the name of the logout message id parameter passed to the logout page. Defaults to logoutId.
CreateAccountReturnUrlParameterSets the name of the return URL parameter passed to the create account page. Defaults to returnUrl.
ConsentReturnUrlParameterSets the name of the return URL parameter passed to the consent page. Defaults to returnUrl.
ErrorIdParameterSets the name of the error message id parameter passed to the error page. Defaults to errorId.
CustomRedirectReturnUrlParameterSets the name of the return URL parameter passed to a custom redirect from the authorization endpoint. Defaults to returnUrl.
DeviceVerificationUserCodeParameterSets the name of the user code parameter passed to the device verification page. Defaults to userCode.
CookieMessageThresholdCertain interactions between IdentityServer and some UI pages require a cookie to pass state and context (any of the pages above that have a configurable “message id” parameter). Since browsers have limits on the number of cookies and their size, this setting is used to prevent too many cookies being created. The value sets the maximum number of message cookies of any type that will be created. The oldest message cookies will be purged once the limit has been reached. This effectively indicates how many tabs can be opened by a user when using IdentityServer.
SupportedPromptModesSets the prompt modes that are supported by IdentityServer. Defaults to login, consent, select_account and none. When CreateAccountUrl is set, then create is also added to the supported prompt modes. Prompts that are not in this list will cause authorization requests to fail with an invalid_request error.
Caching¶
These settings only apply if the respective caching has been enabled in the services configuration in startup.
ClientStoreExpirationCache duration of client configuration loaded from the client store. Default is 15 minutes.
ResourceStoreExpirationCache duration of identity and API resource configuration loaded from the resource store. Default is 15 minutes.
CorsExpirationCache duration the Caching CORS policy service. Default is 15 minutes.
CORS¶
IdentityServer supports CORS for some of its endpoints. The underlying CORS implementation is provided from ASP.NET Core, and as such it is automatically registered in the dependency injection system.
CorsPolicyNameName of the CORS policy that will be evaluated for CORS requests into IdentityServer (defaults to
"Open.IdentityServer"). The policy provider that handles this is implemented in terms of theICorsPolicyServiceregistered in the dependency injection system. If you wish to customize the set of CORS origins allowed to connect, then it is recommended that you provide a custom implementation ofICorsPolicyService.
CorsPathsThe endpoints within IdentityServer where CORS is supported. Defaults to the discovery, user info, token, and revocation endpoints.
PreflightCacheDurationNullable<TimeSpan> indicating the value to be used in the preflight Access-Control-Max-Age response header. Defaults to null indicating no caching header is set on the response.
CSP (Content Security Policy)¶
IdentityServer emits CSP headers for some responses, where appropriate.
LevelThe level of CSP to use. CSP Level 2 is used by default, but if older browsers must be supported then this be changed to
CspLevel.Oneto accommodate them.
AddDeprecatedHeaderIndicates if the older
X-Content-Security-PolicyCSP header should also be emitted (in addition to the standards-based header value). Defaults to true.
Device Flow¶
DefaultUserCodeTypeThe user code type to use, unless set at the client level. Defaults to Numeric, a 9-digit code.
IntervalDefines the minimum allowed polling interval on the token endpoint. Defaults to 5.
Mutual TLS¶
EnabledSpecifies if MTLS support should be enabled. Defaults to
false.
ClientCertificateAuthenticationSchemeSpecifies the name of the authentication handler for X.509 client certificates. Defaults to
"Certificate".
DomainNameSpecifies either the name of the sub-domain or full domain for running the MTLS endpoints (will use path-based endpoints if not set). Use a simple string (e.g. “mtls”) to set a sub-domain, use a full domain name (e.g. “identityserver-mtls.io”) to set a full domain name. When a full domain name is used, you also need to set the
IssuerNameto a fixed value.
AlwaysEmitConfirmationClaimSpecifies whether a cnf claim gets emitted for access tokens if a client certificate was present. Normally the cnf claims only gets emitted if the client used the client certificate for authentication, setting this to true, will set the claim regardless of the authentication method. (defaults to false).
Server-Side Sessions¶
ExpiredSessionsTriggerBackchannelLogoutSpecifies if session expiry should trigger back channel logout, this will override any other settings that may cause back channel logout such as AuthenticationOptions.CoordinateClientLifetimesWithUserSession or Client.CoordinateLifetimeWithUserSession.
RemoveExpiredSessionsSpecifies if expired sessions should be cleaned up automatically by Open.IdentityServer. The default value is true.
RemoveExpiredSessionsFrequencySpecifies the frequency with which expired sessions are looked for and removed. The default value is a TimeSpan of 10 minutes.
FuzzExpiredSessionsFrequencySpecifies if the start time of the hosted service should be randomised. This avoids the scenario where multiple running instances of identityserver run cleanup jobs simultaneously. The default value is true.
RemoveExpiredSessionsBatchSizeSpecifies how many expired sessions should be removed in a single pass. The default value is 100.
Validation Options¶
InvalidRedirectUriPrefixesURI scheme prefixes rejected in authorization
redirect_urivalues. Defaults tojavascript:,file:,data:,mailto:,ftp:,blob:,about:,ssh:,tel:,view-source:,ws:, andwss:.
Logging Options¶
TokenRequestSensitiveValuesFilterNames of token-endpoint request parameters whose values must be redacted when the request is written to the log. Defaults to
client_secret,password,client_assertion,refresh_tokenanddevice_code.
AuthorizeRequestSensitiveValuesFilterNames of authorize-endpoint request parameters whose values must be redacted when the request is written to the log. Defaults to
id_token_hint.