#### [Abblix\.SecurityEvents](https://www.abblix.com/en/docs/api/abblix-securityevents 'index')
### [Abblix\.SecurityEvents\.BackChannelLogout](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.BackChannelLogout 'Abblix\.SecurityEvents\.BackChannelLogout')

## ILogoutTokenValidator Interface

Validates the Logout Token a provider posts to this receiver to say a session has ended
\(OpenID Connect Back\-Channel Logout 1\.0 section 2\.6\)\.

```csharp
public interface ILogoutTokenValidator
```

Derived  
↳ [LogoutTokenValidator](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.BackChannelLogout.LogoutTokenValidator 'Abblix\.SecurityEvents\.BackChannelLogout\.LogoutTokenValidator')

### Remarks
The request carrying this token is unauthenticated and comes from a caller this receiver never spoke to
first, so the token is the only thing vouching for it\. Section 4: "The signed Logout Token is required in
the logout request to prevent denial of service attacks by enabling the RP to verify that the logout
request is coming from a legitimate party\." Every check below exists because anyone on the network can
make this call\.
### Methods

## ILogoutTokenValidator\.ValidateAsync\(string, CancellationToken\) Method {#Abblix.SecurityEvents.BackChannelLogout.ILogoutTokenValidator.ValidateAsync(string,System.Threading.CancellationToken)}

Validates [logoutToken](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.BackChannelLogout.ILogoutTokenValidator#Abblix.SecurityEvents.BackChannelLogout.ILogoutTokenValidator.ValidateAsync(string,System.Threading.CancellationToken).logoutToken 'Abblix\.SecurityEvents\.BackChannelLogout\.ILogoutTokenValidator\.ValidateAsync\(string, System\.Threading\.CancellationToken\)\.logoutToken') and returns which sessions it says to end\.

```csharp
System.Threading.Tasks.Task<Abblix.SecurityEvents.BackChannelLogout.LogoutNotification> ValidateAsync(string logoutToken, System.Threading.CancellationToken cancellationToken=default(System.Threading.CancellationToken));
```
#### Parameters

###### `logoutToken` [System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String') {#Abblix.SecurityEvents.BackChannelLogout.ILogoutTokenValidator.ValidateAsync(string,System.Threading.CancellationToken).logoutToken}

The encoded Logout Token from the `logout_token` parameter\.

###### `cancellationToken` [System\.Threading\.CancellationToken](https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtoken 'System\.Threading\.CancellationToken') {#Abblix.SecurityEvents.BackChannelLogout.ILogoutTokenValidator.ValidateAsync(string,System.Threading.CancellationToken).cancellationToken}

Cancels the key\-set and metadata reads this may need\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[LogoutNotification](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.BackChannelLogout.LogoutNotification 'Abblix\.SecurityEvents\.BackChannelLogout\.LogoutNotification')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
What the token says to act on\.

#### Exceptions

[LogoutTokenValidationException](https://www.abblix.com/en/docs/api/abblix-securityevents/Abblix.SecurityEvents.BackChannelLogout.LogoutTokenValidationException 'Abblix\.SecurityEvents\.BackChannelLogout\.LogoutTokenValidationException')  
The token failed a validation step\. Section 2\.6: "If any of the validation steps fails, reject the
Logout Token and return an HTTP 400 Bad Request error\."

### Remarks
Steps 8 to 11 of section 2\.6 are each introduced with "Optionally", and each needs something only the
host has: a record of tokens recently seen, or the ID Token of the session being ended\. They are left
to the host, which holds the sessions this notification is about, and which section 2\.7 makes
responsible for locating them anyway\.
