Skip to content

LogoutTokenTypeStep Class

Accepts a Logout Token that carries no typ, and refuses one typed as something else.

C#
public sealed class LogoutTokenTypeStep : Abblix.SecurityEvents.Validation.ISecurityCriticalValidator, Abblix.SecurityEvents.Validation.ISecurityEventTokenValidator

Inheritance System.Object → LogoutTokenTypeStep

Implements ISecurityCriticalValidator, ISecurityEventTokenValidator

Remarks

The step it replaces pins the SET's own type, and dropping that pin without putting one back would leave the profile with no answer to cross-JWT confusion at the header at all. What it may not do is demand the logout type. OpenID Connect Back-Channel Logout 1.0 Section 4.1 offers explicit typing and rules out requiring it in the same breath: "Including an explicit type in issued Logout Tokens is a best practice. Note however, that requiring explicitly typed Logout Tokens will break most existing deployments, as existing OPs and RPs are already commonly using untyped Logout Tokens." A receiver that required it would refuse conformant providers, so the rule here is one-sided: an absent type is accepted, a foreign one is not.

Security-critical, because it stands where the profile's confusion wall at the header stands. The wall it can build is lower than the SET's by the specification's own instruction, and the claims the profile demands below - a logout event, no nonce, a subject or a session - are what carry the rest of the weight.

Methods

LogoutTokenTypeStep.ValidateAsync(SecurityEventTokenValidationContext, CancellationToken) Method

Checks the token in flight.

C#
public System.Threading.Tasks.ValueTask<Abblix.SecurityEvents.Validation.SecurityEventTokenValidationError?> ValidateAsync(Abblix.SecurityEvents.Validation.SecurityEventTokenValidationContext context, System.Threading.CancellationToken cancellationToken);

Parameters

context SecurityEventTokenValidationContext

The state accumulated by earlier steps.

cancellationToken System.Threading.CancellationToken

Cancels I/O the step performs, such as key retrieval.

Implements ValidateAsync(SecurityEventTokenValidationContext, CancellationToken)

Returns

System.Threading.Tasks.ValueTask<SecurityEventTokenValidationError>
Null to pass the token on; an error to stop the pipeline with that verdict.