Skip to content

Commit 3c5bd7e

Browse files
committed
Additional reference docs updates after cross-checking against product
1 parent 838144e commit 3c5bd7e

10 files changed

Lines changed: 130 additions & 10 deletions

File tree

astro/src/content/docs/identityserver/reference/v7/models/client.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,12 +202,11 @@ public static IEnumerable<Client> Get()
202202

203203
* **`ClientClaimsPrefix`**
204204

205-
If set, the prefix client claim types will be prefixed with. Defaults to `client`_. The intent is to make sure they
205+
If set, the prefix client claim types will be prefixed with. Defaults to `client_`. The intent is to make sure they
206206
don't accidentally collide with user claims.
207207

208208
* **`PairWiseSubjectSalt`**
209209
Salt value used in pair-wise subjectId generation for users of this client.
210-
Currently not implemented.
211210

212211
## Refresh Token
213212

astro/src/content/docs/identityserver/reference/v7/options.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,7 @@ var builder = services.AddIdentityServer(options =>
634634

635635
Specifies either the name of the subdomain or full domain for running the MTLS endpoints. MTLS will use path-based endpoints if not set (the default).
636636
Use a simple string (e.g. "mtls") to set a subdomain, use a full domain name (e.g. "identityserver-mtls.io") to set a full domain name.
637-
When a full domain name is used, you also need to set the `IssuerName` to a fixed value.
637+
When a full domain name is used, you also need to set the `IssuerUri` to a fixed value.
638638

639639
- **`AlwaysEmitConfirmationClaim`**
640640

@@ -704,7 +704,7 @@ Settings for [server-side sessions](/identityserver/ui/server-side-sessions/inde
704704
- **`ExpiredSessionsTriggerBackchannelLogout`**
705705

706706
If enabled, when server-side sessions are removed due to expiration, back-channel logout notifications will be sent.
707-
This will, in effect, tie a user's session lifetime at a client to their session lifetime at IdentityServer. Defaults to true.
707+
This will, in effect, tie a user's session lifetime at a client to their session lifetime at IdentityServer. Defaults to false.
708708

709709
- **`FuzzExpiredSessionRemovalStart`**
710710

astro/src/content/docs/identityserver/reference/v8/di.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,28 @@ Several convenience methods are provided for registering custom stores:
4444

4545
Registers a custom `IIdentityProviderStore` implementation.
4646

47+
- **`AddPersistedGrantStore<T>`**
48+
49+
Registers a custom `IPersistedGrantStore` implementation for persisting grants such as authorization codes, refresh
50+
tokens, reference tokens, and user consent records. Replace the default in-memory store with a durable implementation
51+
for production use.
52+
53+
- **`AddDeviceFlowStore<T>`**
54+
55+
Registers a custom `IDeviceFlowStore` implementation for persisting device flow authorization codes and user codes
56+
during the OAuth 2.0 Device Authorization Grant flow.
57+
58+
- **`AddSigningKeyStore<T>`**
59+
60+
Registers a custom `ISigningKeyStore` implementation for persisting automatically managed signing keys. Replace the
61+
default file-system store with a durable implementation (e.g. database or key vault) for production deployments with
62+
multiple server instances.
63+
64+
- **`AddPushedAuthorizationRequestStore<T>`**
65+
66+
Registers a custom `IPushedAuthorizationRequestStore` implementation for persisting Pushed Authorization Requests
67+
(PAR). Replace the default in-memory store with a durable implementation for production use.
68+
4769
The [in-memory configuration stores](/identityserver/data/configuration.md#in-memory-stores) can be registered in DI
4870
with the following extension methods.
4971

@@ -166,6 +188,16 @@ The following are convenient to add additional features to your IdentityServer.
166188
Adds an `ISecretValidator` implementation for validating client or API resource credentials against a credential
167189
store.
168190

191+
- **`AddResourceValidator`**
192+
193+
Adds an `IResourceValidator` implementation for validating whether the requested scopes and resources are valid for a
194+
given client.
195+
196+
- **`AddScopeParser`**
197+
198+
Adds an `IScopeParser` implementation for parsing the raw scope string from authorization and token requests into
199+
individual parsed scope values.
200+
169201
- **`AddResourceOwnerValidator`**
170202

171203
Adds an `IResourceOwnerPasswordValidator` implementation for validating user credentials for the resource owner
@@ -215,13 +247,34 @@ The following are convenient to add additional features to your IdentityServer.
215247

216248
Adds an IdentityProvider configuration validator.
217249

250+
- **`AddClientConfigurationValidator`**
251+
252+
Adds an `IClientConfigurationValidator` implementation that validates client configuration when clients are loaded
253+
from the store, allowing enforcement of organization-specific client configuration rules.
254+
255+
- **`AddCustomBackchannelAuthenticationRequestValidator`**
256+
257+
Adds an `ICustomBackchannelAuthenticationValidator` implementation for adding additional validation logic to CIBA
258+
(Client-Initiated Backchannel Authentication) requests.
259+
260+
- **`AddBackChannelLogoutService`**
261+
262+
Adds an `IBackChannelLogoutService` implementation that handles sending back-channel logout notifications to clients
263+
when a user's session ends.
264+
265+
- **`AddUserSession`**
266+
267+
Adds an `IUserSession` implementation that manages the user's authentication session, including reading and writing
268+
the session cookie and tracking session identifiers. The service is registered as scoped.
269+
218270
- **`AddBackchannelAuthenticationUserValidator`**
219271

220272
Adds the backchannel login user validator.
221273

222274
- **`AddBackchannelAuthenticationUserNotificationService`**
223275

224-
Adds the backchannel login user validator.
276+
Adds an `IBackchannelAuthenticationUserNotificationService` implementation responsible for notifying the end user of a
277+
pending CIBA authentication request (e.g. by sending a push notification or SMS).
225278

226279
## SAML 2.0 :badge[v8.0]
227280

astro/src/content/docs/identityserver/reference/v8/models/api-resource.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ This class models an API.
5353

5454
List of associated user claim types that should be included in the access token.
5555

56+
* **`ShowInDiscoveryDocument`**
57+
58+
Specifies whether this resource is shown in the discovery document. Defaults to `true`.
59+
60+
* **`Properties`**
61+
62+
Dictionary to hold any custom resource-specific values as needed.
63+
5664
* **`Scopes`**
5765

5866
List of API scope names. You need to create those using [ApiScope](/identityserver/reference/v8/models/api-scope.md).

astro/src/content/docs/identityserver/reference/v8/models/api-scope.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,23 @@ This class models an OAuth scope.
3636

3737
List of associated user claim types that should be included in the access token.
3838

39+
* **`Required`**
40+
41+
Specifies whether the user can de-select the scope on the consent screen. Defaults to `false`.
42+
43+
* **`Emphasize`**
44+
45+
Specifies whether the consent screen will emphasize this scope. Use this setting for sensitive or important scopes.
46+
Defaults to `false`.
47+
48+
* **`ShowInDiscoveryDocument`**
49+
50+
Specifies whether this scope is shown in the discovery document. Defaults to `true`.
51+
52+
* **`Properties`**
53+
54+
Dictionary to hold any custom scope-specific values as needed.
55+
3956
## Defining API Scope In appsettings.json
4057

4158
The `AddInMemoryApiResource` extension method also supports adding clients from the ASP.NET Core configuration file:

astro/src/content/docs/identityserver/reference/v8/models/client.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ public static IEnumerable<Client> Get()
6666

6767
Unique ID of the client
6868

69+
* **`ProtocolType`**
70+
71+
Specifies the protocol type of the client. Defaults to `oidc` (OpenID Connect).
72+
6973
* **`ClientSecrets`**
7074

7175
List of client secrets - credentials to access the token endpoint.
@@ -204,12 +208,12 @@ public static IEnumerable<Client> Get()
204208

205209
* **`ClientClaimsPrefix`**
206210

207-
If set, the prefix client claim types will be prefixed with. Defaults to `client`_. The intent is to make sure they
211+
If set, the prefix client claim types will be prefixed with. Defaults to `client_`. The intent is to make sure they
208212
don't accidentally collide with user claims.
209213

210214
* **`PairWiseSubjectSalt`**
215+
211216
Salt value used in pair-wise subjectId generation for users of this client.
212-
Currently not implemented.
213217

214218
## Refresh Token
215219

@@ -273,6 +277,10 @@ Consent screen specific settings.
273277

274278
Client display name (used for logging and consent screen).
275279

280+
* **`Description`**
281+
282+
Description of the client.
283+
276284
* **`ClientUri`**
277285

278286
URI to further information about client.

astro/src/content/docs/identityserver/reference/v8/models/identity-resource.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,7 @@ public static readonly IEnumerable<IdentityResource> IdentityResources =
6464
* **`UserClaims`**
6565

6666
List of associated user claim types that should be included in the identity token.
67+
68+
* **`Properties`**
69+
70+
Dictionary to hold any custom resource-specific values as needed.

astro/src/content/docs/identityserver/reference/v8/models/idp.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ Its properties map to the Open ID Connect options class from ASP.NET Core, and t
5353

5454
* **`Scope`**
5555

56-
Space separated list of scope values.
56+
Space separated list of scope values. Defaults to `openid`.
5757

5858
* **`GetClaimsFromUserInfoEndpoint`**
5959

astro/src/content/docs/identityserver/reference/v8/options.md

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,18 @@ Top-level settings. Available directly on the `IdentityServerOptions` object.
7474
- **`ValidateTenantOnAuthorization`**
7575
Specifies if a user's `tenant` claim is compared to the tenant `acr_values` parameter value to determine if the login page is displayed. Defaults to `false`.
7676

77+
- **`JwtValidationClockSkew`**
78+
79+
The allowed clock skew applied when validating JWT lifetimes throughout IdentityServer. Defaults to 5 minutes. This setting applies to JWT access tokens validated at the UserInfo, introspection, and local API endpoints; `private_key_jwt` client authentication assertions; JAR request objects; and custom uses of `TokenValidator`. It does not apply to DPoP proof tokens, which use `DPoP.ServerClockSkew`.
80+
81+
- **`SupportedRequestObjectSigningAlgorithms`**
82+
83+
The allowed signature algorithms for JWT-secured authorization requests (JAR). The `alg` header of JAR request objects is validated against this collection, and the `request_object_signing_alg_values_supported` discovery property is populated with these values. Defaults to `[RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512]`. If set to an empty collection, all algorithms are allowed but `request_object_signing_alg_values_supported` will not be set.
84+
85+
- **`SupportedClientAssertionSigningAlgorithms`**
86+
87+
The allowed signature algorithms for client authentication using client assertions (`private_key_jwt`). The `alg` header of client assertions is validated against this collection, and the `token_endpoint_auth_signing_alg_values_supported` discovery property is populated with these values. Defaults to `[RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512]`. If set to an empty collection, all algorithms are allowed but `token_endpoint_auth_signing_alg_values_supported` will not be set.
88+
7789
## Key management
7890

7991
Automatic key management settings. Available on the `KeyManagement` property of the `IdentityServerOptions` object.
@@ -204,6 +216,10 @@ Endpoint settings, including flags to disable individual endpoints and support f
204216

205217
Enables the pushed authorization endpoint. Defaults to true.
206218

219+
- **`EnableOAuth2MetadataEndpoint`**
220+
221+
Enables the OAuth 2.0 authorization server metadata endpoint (`/.well-known/oauth-authorization-server`). Defaults to true.
222+
207223
- **`EnableJwtRequestUri`**
208224
Enables the `request_uri` parameter for JWT-Secured Authorization Requests. This allows the JWT to be passed by reference. Disabled by default, due to the security implications of enabling the request_uri parameter (see [RFC 9101 section 10.4](https://datatracker.ietf.org/doc/rfc9101/)).
209225
@@ -638,7 +654,7 @@ var builder = services.AddIdentityServer(options =>
638654

639655
Specifies either the name of the subdomain or full domain for running the MTLS endpoints. MTLS will use path-based endpoints if not set (the default).
640656
Use a simple string (e.g. "mtls") to set a subdomain, use a full domain name (e.g. "identityserver-mtls.io") to set a full domain name.
641-
When a full domain name is used, you also need to set the `IssuerName` to a fixed value.
657+
When a full domain name is used, you also need to set the `IssuerUri` to a fixed value.
642658

643659
- **`AlwaysEmitConfirmationClaim`**
644660

@@ -708,7 +724,7 @@ Settings for [server-side sessions](/identityserver/ui/server-side-sessions/inde
708724
- **`ExpiredSessionsTriggerBackchannelLogout`**
709725

710726
If enabled, when server-side sessions are removed due to expiration, back-channel logout notifications will be sent.
711-
This will, in effect, tie a user's session lifetime at a client to their session lifetime at IdentityServer. Defaults to true.
727+
This will, in effect, tie a user's session lifetime at a client to their session lifetime at IdentityServer. Defaults to false.
712728

713729
- **`FuzzExpiredSessionRemovalStart`**
714730

@@ -739,6 +755,10 @@ Demonstration of Proof-of-Possession settings. Available on the `DPoP` property
739755
- **`ServerClockSkew`**
740756
Clock skew used in validating DPoP proof token expiration using a server-generated nonce value. Defaults to `0`.
741757

758+
- **`SupportedDPoPSigningAlgorithms`**
759+
760+
The allowed signature algorithms for DPoP proof tokens. The `alg` headers of proofs are validated against this collection, and the `dpop_signing_alg_values_supported` discovery property is populated with these values. Defaults to `[RS256, RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES512]`. If set to an empty collection, all algorithms (including symmetric algorithms) are allowed and `dpop_signing_alg_values_supported` will not be set. Explicitly listing the expected values is recommended.
761+
742762
## Pushed Authorization Requests
743763

744764
[Pushed Authorization Requests (PAR)](/identityserver/tokens/par.md) settings. Added in `v7.0`. Available on the `PushedAuthorization` property of the `IdentityServerOptions` object.
@@ -751,6 +771,10 @@ Demonstration of Proof-of-Possession settings. Available on the `DPoP` property
751771

752772
Controls the lifetime of pushed authorization requests. The pushed authorization request's lifetime begins when the request to the PAR endpoint is received, and is validated until the authorize endpoint returns a response to the client application. Note that user interaction, such as entering credentials or granting consent, may need to occur before the authorize endpoint can do so. Setting the lifetime too low will likely cause login failures for interactive users, if pushed authorization requests expire before those users complete authentication. Some security profiles, such as the FAPI 2.0 Security Profile recommend an expiration within 10 minutes to prevent attackers from pre-generating requests. To balance these constraints, this lifetime defaults to 10 minutes.
753773

774+
- **`AllowUnregisteredPushedRedirectUris`**
775+
776+
Controls whether clients may use redirect URIs in pushed authorization requests that were not previously registered. Defaults to `false`. Enable with caution; allowing unregistered redirect URIs reduces the protection that pre-registration provides against open redirect attacks.
777+
754778
## Diagnostics
755779

756780
[Diagnostic data](/identityserver/diagnostics/data.mdx) settings. Added in `v7.3`. Available on the `Diagnostics` property of the `IdentityServerOptions` object.

astro/src/content/docs/identityserver/reference/v8/services/interaction-service.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ MVC controllers for the user interface of IdentityServer.
2222

2323
All async methods accept a `CancellationToken ct` parameter.
2424

25+
* **`GetAuthenticationContextAsync(string? returnUrl, CancellationToken ct)`**
26+
27+
Returns the protocol-agnostic authentication context for the current request. Returns an `AuthorizationRequest` for
28+
OIDC flows or a `SamlAuthenticationRequest` for SAML flows, both behind the common `IAuthenticationContext` interface.
29+
Use pattern matching to access protocol-specific details. Returns `null` if the URL does not correspond to a valid
30+
pending authorization request.
31+
2532
* **`GetAuthorizationContextAsync(string? returnUrl, CancellationToken ct)`**
2633

2734
Returns the `AuthorizationRequest` based on the `returnUrl` passed to the login or consent pages.

0 commit comments

Comments
 (0)