Table of Contents

Class TokenIntrospectionFailureEvent

Namespace
Fdyay.IdentityServer.Events
Assembly
Fdyay.IdentityServer.Core.dll

An API asked about a token and was told the token is nothing it can use.

public class TokenIntrospectionFailureEvent : Event
Inheritance
TokenIntrospectionFailureEvent
Inherited Members

Remarks

Two very different requests answer active: false and this is what tells them apart. One is routine — a token that expired, or was revoked, or was never issued here. The other is an API asking about a token that was issued for a different API, which 0.31.0 began refusing and which, until this event, left no trace of any kind: RFC 7662 has the endpoint report on the token rather than on the caller, so the refusal is a flat 200 that looks exactly like the routine case.

The token is never carried. It is a live credential, and an event describing a refused request is precisely the one a host forwards somewhere with a wider audience than its own logs. Token is its TokenFingerprint.

Constructors

TokenIntrospectionFailureEvent(string, string)

An introspection answered active: false.

public TokenIntrospectionFailureEvent(string apiName, string message)

Parameters

apiName string

The API that asked.

message string

Why the token was not usable by it.

Properties

ApiName

The API that asked.

public string ApiName { get; }

Property Value

string

ApiScopes

The asking API's scopes, where the refusal was that the token carries none of them. Duende's.

public IEnumerable<string>? ApiScopes { get; set; }

Property Value

IEnumerable<string>

Token

The token's TokenFingerprint, where one was presented; set it to the token and it keeps only that.

public string? Token { get; set; }

Property Value

string

Remarks

Duende's member, which carries the token's last four characters.

TokenScopes

The scopes the token carries, where the refusal was that none is the API's. Duende's.

public IEnumerable<string>? TokenScopes { get; set; }

Property Value

IEnumerable<string>