Version 6.x has been out of support since May 14, 2024, and this corresponding section of the documentation is no longer maintained. We strongly recommend you upgrade to the latest supported version of 7.x and read the latest version of this documentation.
Used to store backchannel login requests (for CIBA).
/// <summary>
/// Interface for the backchannel authentication request store
/// </summary>
public interface IBackChannelAuthenticationRequestStore
{
/// <summary>
/// Creates the request.
/// </summary>
Task<string> CreateRequestAsync(BackChannelAuthenticationRequest request);
/// <summary>
/// Gets the requests.
/// </summary>
Task<IEnumerable<BackChannelAuthenticationRequest>> GetLoginsForUserAsync(string subjectId, string clientId = null);
/// <summary>
/// Gets the request.
/// </summary>
Task<BackChannelAuthenticationRequest> GetByAuthenticationRequestIdAsync(string requestId);
/// <summary>
/// Gets the request.
/// </summary>
Task<BackChannelAuthenticationRequest> GetByInternalIdAsync(string id);
/// <summary>
/// Removes the request.
/// </summary>
Task RemoveByInternalIdAsync(string id);
/// <summary>
/// Updates the request.
/// </summary>
Task UpdateByInternalIdAsync(string id, BackChannelAuthenticationRequest request);
}
/// <summary>
/// Models a backchannel authentication request.
/// </summary>
public class BackChannelAuthenticationRequest
{
/// <summary>
/// The identifier for this request in the store.
/// </summary>
public string InternalId { get; set; }
/// <summary>
/// Gets or sets the creation time.
/// </summary>
public DateTime CreationTime { get; set; }
/// <summary>
/// Gets or sets the life time in seconds.
/// </summary>
public int Lifetime { get; set; }
/// <summary>
/// Gets or sets the ID of the client.
/// </summary>
public string ClientId { get; set; }
/// <summary>
/// Gets or sets the subject.
/// </summary>
public ClaimsPrincipal Subject { get; set; }
/// <summary>
/// Gets or sets the requested scopes.
/// </summary>
public IEnumerable<string> RequestedScopes { get; set; }
/// <summary>
/// Gets or sets the requested resource indicators.
/// </summary>
public IEnumerable<string> RequestedResourceIndicators { get; set; }
/// <summary>
/// Gets or sets the authentication context reference classes.
/// </summary>
public ICollection<string> AuthenticationContextReferenceClasses { get; set; }
/// <summary>
/// Gets or sets the tenant.
/// </summary>
public string Tenant { get; set; }
/// <summary>
/// Gets or sets the idp.
/// </summary>
public string IdP { get; set; }
/// <summary>
/// Gets or sets the binding message.
/// </summary>
public string BindingMessage { get; set; }
/// <summary>
/// Gets or sets a value indicating whether this instance has been completed.
/// </summary>
public bool IsComplete { get; set; }
/// <summary>
/// Gets or sets the authorized scopes.
/// </summary>
public IEnumerable<string> AuthorizedScopes { get; set; }
/// <summary>
/// Gets or sets the session identifier from which the user approved the request.
/// </summary>
public string SessionId { get; set; }
/// <summary>
/// Gets the description the user assigned to the client being authorized.
/// </summary>
public string Description { get; set; }
}