Table of Contents

Class ValidatedAuthorizeRequest

Namespace
Fdyay.IdentityServer.Validation
Assembly
Fdyay.IdentityServer.Core.dll

A validated authorize request.

public sealed class ValidatedAuthorizeRequest : IValidatedRequest
Inheritance
ValidatedAuthorizeRequest
Implements
Inherited Members
Extension Methods

Remarks

An IValidatedRequest since 0.155.0, as Duende's is: the validator writes Options, and the authorize endpoint IssuerName and SessionId, which only it can read.

Properties

AuthenticationContextReferenceClasses

The request's acr_values, each once, hints and all. Duende's.

public List<string> AuthenticationContextReferenceClasses { get; set; }

Property Value

List<string>

Remarks

An idp: hint naming a provider outside the client's IdentityProviderRestrictions is taken out by the validator. Change it through ValidatedAuthorizeRequestExtensions, which keeps Raw in step.

AuthorizeRequestType

Where the request came from. Duende's.

public AuthorizeRequestType AuthorizeRequestType { get; set; }

Property Value

AuthorizeRequestType

Client

The client named by client_id, found enabled and registered for OpenID Connect.

public Client Client { get; set; }

Property Value

Client

CodeChallenge

The PKCE code_challenge (RFC 7636 §4.2) the code is bound to; null when the client sent none.

public string? CodeChallenge { get; set; }

Property Value

string

CodeChallengeMethod

The PKCE code_challenge_method, S256 or plain; plain when a challenge came without one, as RFC 7636 §4.3 has it. Null when there is no challenge.

public string? CodeChallengeMethod { get; set; }

Property Value

string

DPoPKeyThumbprint

The DPoP key the client asked to have the code bound to (RFC 9449 §10).

public string? DPoPKeyThumbprint { get; set; }

Property Value

string

Description

The name the user gave this grant on the consent page, when they were asked. Duende's.

public string? Description { get; set; }

Property Value

string

DisplayMode

The request's display, when it is one of OpenID Connect's four. Duende's.

public string? DisplayMode { get; set; }

Property Value

string

Remarks

page, popup, touch or wap; any other value is ignored, as Duende ignores it.

IsOpenIdRequest

Whether the requested scopes include openid, making this an OpenID Connect authentication request.

public bool IsOpenIdRequest { get; set; }

Property Value

bool

IssuerName

The issuer the request was served as. Duende's.

public string IssuerName { get; set; }

Property Value

string

Remarks

Written by the authorize endpoint once the validator has answered, so a custom authorize request validator does not see it: Duende's validator reads the issuer itself, and this server's has no HTTP request to read it from.

LoginHint

The request's login_hint, as the client sent it. Duende's.

public string? LoginHint { get; set; }

Property Value

string

MaxAge

The max_age the client sent, in seconds, or null when it sent none or it was already acted on. Duende's.

public int? MaxAge { get; set; }

Property Value

int?

Nonce

The request's nonce, carried into the identity token; null when it sent none.

public string? Nonce { get; set; }

Property Value

string

Options

The options the request was validated under. Duende's.

public IdentityServerOptions Options { get; set; }

Property Value

IdentityServerOptions

OriginalPromptModes

The prompt values the client sent. Duende's.

public IEnumerable<string> OriginalPromptModes { get; set; }

Property Value

IEnumerable<string>

ProcessedPromptModes

The prompt values already acted on, carried back as suppressed_prompt. Duende's.

public IEnumerable<string> ProcessedPromptModes { get; set; }

Property Value

IEnumerable<string>

PromptModes

The prompt values still to be acted on: those the client sent, less those already acted on. Duende's.

public IEnumerable<string> PromptModes { get; set; }

Property Value

IEnumerable<string>

Remarks

What the interaction generator reads, rather than the request's parameters, so a custom authorize request validator that changes it is obeyed. Until 0.142.0 the endpoint read prompt from the parameters, and a validator could change nothing about it.

PushedAuthorizationReferenceValue

The reference value of the pushed request this one redeems, or null. Duende's.

public string? PushedAuthorizationReferenceValue { get; set; }

Property Value

string

Remarks

What follows urn:ietf:params:oauth:request_uri: in the request_uri. Written by the authorize endpoint once the validator has answered, as RequestObject is. It is a bearer credential until the code is issued.

Raw

Every parameter of the request — the request object's, when it came as one.

public IReadOnlyDictionary<string, string> Raw { get; set; }

Property Value

IReadOnlyDictionary<string, string>

Remarks

Duende's ValidatedRequest.Raw, as a map of single strings as this server reads a request. What a custom validator reads a parameter of its own from, since nothing else on the request carries one.

RedirectUri

The request's redirect_uri, accepted by the redirect URI validator: where the response is sent.

public string RedirectUri { get; set; }

Property Value

string

RequestObject

The request object the request came in, as the JWT the client sent, or null. Duende's.

public string? RequestObject { get; set; }

Property Value

string

Remarks

Written by the authorize endpoint once the validator has answered, as IssuerName is: here the endpoint resolves the object before the validator is asked. Null for an object fetched by reference, whose parameters are stored without it once fetched.

RequestObjectValues

The claims of the request object the request came in, or none. Duende's.

public IEnumerable<Claim> RequestObjectValues { get; set; }

Property Value

IEnumerable<Claim>

Remarks

The signed object's payload, less the claims that belong to the JWT rather than the request, as Duende hands it on — so a host can tell a signed value from one that came in the query string: Raw holds them merged. Empty for a request without one, and for a request object fetched by reference, whose parameters are stored without it once fetched.

RequestedResourceIndicators

The APIs named by resource (RFC 8707), already checked against the requested scopes.

public ICollection<string> RequestedResourceIndicators { get; set; }

Property Value

ICollection<string>

Remarks

Duende's name and shape: a request may name several, and the code remembers them all.

RequestedScopes

The scope values the request's scope parameter named, each once.

public ICollection<string> RequestedScopes { get; }

Property Value

ICollection<string>

ResponseMode

How the response goes back to the client: query, form_post or fragment. Duende's.

public string? ResponseMode { get; set; }

Property Value

string

Remarks

Back in 0.130.0. It was deleted in 0.26.0 as a name with only one value — fragment and form_post were taken for the implicit and hybrid flows' alone, and they are not.

ResponseType

The request's response_type, which is always code: the only one this server supports.

public string ResponseType { get; set; }

Property Value

string

SessionId

The signed-in user's session, when there is one. Duende's.

public string? SessionId { get; set; }

Property Value

string

Remarks

Written by the authorize endpoint, as IssuerName is; the code issued carries it.

State

The request's state, echoed back to the client in the response; null when it sent none.

public string? State { get; set; }

Property Value

string

Subject

The signed-in user, when there is one; null when the user has yet to sign in.

public ClaimsPrincipal? Subject { get; set; }

Property Value

ClaimsPrincipal

UiLocales

The request's ui_locales, as the client sent it. Duende's.

public string? UiLocales { get; set; }

Property Value

string

Remarks

What the interaction pages are told the user's language is, through IUiLocalesService.

ValidatedResources

The identity resources, API resources and API scopes the requested scopes resolved to.

public ResourceValidationResult ValidatedResources { get; set; }

Property Value

ResourceValidationResult