Show / Hide Table of Contents

Class OpenIDProvider

Provides OpenID Provider (OP) support for OpenID Connect (OIDC) authentication.

Inheritance
System.Object
OpenIDProvider
Implements
IOpenIDProvider
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: ComponentSpace.OpenID
Assembly: ComponentSpace.OpenID.dll
Syntax
public class OpenIDProvider : IOpenIDProvider

Constructors

OpenIDProvider(IServiceProvider, IConfigurationResolver, ICertificateLoader, ISessionStore, IAccessTokenCache, ILoggerFactory)

Initializes a new instance of the OpenIDProvider class.

Declaration
public OpenIDProvider(IServiceProvider serviceProvider, IConfigurationResolver configurationResolver, ICertificateLoader certificateLoader, ISessionStore sessionStore, IAccessTokenCache accessTokenCache, ILoggerFactory loggerFactory)
Parameters
Type Name Description
IServiceProvider serviceProvider

The service provider.

IConfigurationResolver configurationResolver

The configuration resolver.

ICertificateLoader certificateLoader

The certificate loader.

ISessionStore sessionStore

The session store.

IAccessTokenCache accessTokenCache

The access token cache.

Microsoft.Extensions.Logging.ILoggerFactory loggerFactory

The logger factory.

Properties

ConfigurationName

Gets or sets the OpenID configuration name.

For most applications, a single OpenID configuration is used and the OpenID configuration name is not required. For multi-tenanted applications and other special use cases with multiple OpenID configurations, the name specifies the configuration to use.

Declaration
public virtual string ConfigurationName { get; set; }
Property Value
Type Description
System.String

The configuration name.

Methods

ClearSessionAsync(String)

Clears the current session state for the specified client or all clients.

Declaration
public virtual async Task ClearSessionAsync(string clientID = null)
Parameters
Type Name Description
System.String clientID

The client ID.

Returns
Type Description
Task

A task that represents the operation.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

CreateJwtAccessTokenAsync(String, String, String, String, Nullable<IList<Claim>>, Nullable<DateTime>)

Creates a JWT access token.

Declaration
public virtual async Task<string> CreateJwtAccessTokenAsync(string clientID, string audience, string subject = null, string scope = null, IList<Claim>? claims = null, DateTime? utcJwtExpiresAt = null)
Parameters
Type Name Description
System.String clientID

The client ID.

System.String audience

The audience.

System.String subject

The subject.

System.String scope

The scope.

System.Nullable<IList<System.Security.Claims.Claim>> claims

The claims.

System.Nullable<DateTime> utcJwtExpiresAt

The UTC date/time when the JWT expires.

Returns
Type Description
Task<System.String>

A task that represents the operation and returns the JWT access token.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

GetKeysAsync()

Gets the OpenID provider's keys.

Declaration
public virtual async Task<IActionResult> GetKeysAsync()
Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

GetMetadataAsync()

Gets the OpenID provider's metadata.

Declaration
public virtual async Task<IActionResult> GetMetadataAsync()
Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

GetStatusAsync()

Gets the current OpenID session status.

Declaration
public virtual async Task<IDictionary<string, IOpenIDStatus>> GetStatusAsync()
Returns
Type Description
Task<IDictionary<System.String, IOpenIDStatus>>

A task that represents the operation and returns the OpenID session status.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

GetTokensAsync(GetRefreshTokenResultAsync, GetClientCredentialsResultAsync, GetUserCredentialsResultAsync)

Gets the tokens as part of the authorization code flow.

Declaration
public virtual async Task<IActionResult> GetTokensAsync(GetRefreshTokenResultAsync getRefreshTokenResult = null, GetClientCredentialsResultAsync getClientCredentialsResult = null, GetUserCredentialsResultAsync getUserCredentialsResult = null)
Parameters
Type Name Description
GetRefreshTokenResultAsync getRefreshTokenResult

The delegate that returns the refresh token result.

GetClientCredentialsResultAsync getClientCredentialsResult

The delegate that returns the client credentials result.

GetUserCredentialsResultAsync getUserCredentialsResult

The delegate that returns the user credentials result.

Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

GetUserInfoAsync()

Gets the user information.

Declaration
public virtual async Task<IActionResult> GetUserInfoAsync()
Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

IntrospectTokenAsync()

Introspects the token.

Declaration
public virtual async Task<IActionResult> IntrospectTokenAsync()
Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

ReceiveAuthnRequestAsync()

Receives the authentication request.

Declaration
public virtual async Task<AuthenticationRequest> ReceiveAuthnRequestAsync()
Returns
Type Description
Task<AuthenticationRequest>

A task that represents the operation and returns the authentication request.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

ReceiveLogoutRequestAsync()

Receives the logout request.

Declaration
public virtual async Task<LogoutRequest> ReceiveLogoutRequestAsync()
Returns
Type Description
Task<LogoutRequest>

A task that represents the operation and returns the logout request.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

RevokeAccessTokenAsync(String)

Revokes the access token.

Declaration
public virtual async Task RevokeAccessTokenAsync(string accessToken)
Parameters
Type Name Description
System.String accessToken

The access token.

Returns
Type Description
Task

A task that represents the operation.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

SendAuthnErrorResponseAsync(String, String, String, String)

Sends the authentication error response.

Declaration
public virtual async Task<IActionResult> SendAuthnErrorResponseAsync(string errorCode, string errorDescription = null, string errorUri = null, string correlationID = null)
Parameters
Type Name Description
System.String errorCode

The error code.

System.String errorDescription

The error description.

System.String errorUri

The error page URI.

System.String correlationID

The correlation ID identifying the authentication request to respond to.

Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

SendAuthnResponseAsync(String, Nullable<IEnumerable<Claim>>, String, String, Nullable<DateTime>, String)

Sends the authentication response.

Declaration
public virtual async Task<IActionResult> SendAuthnResponseAsync(string subject, IEnumerable<Claim>? claims = null, string accessToken = null, string refreshToken = null, DateTime? utcAccessTokenExpiresAt = null, string correlationID = null)
Parameters
Type Name Description
System.String subject

The subject identifier to include in the ID token.

System.Nullable<IEnumerable<System.Security.Claims.Claim>> claims

The claims to include in the ID token.

System.String accessToken

The access token.

System.String refreshToken

The refresh token.

System.Nullable<DateTime> utcAccessTokenExpiresAt

The UTC date/time when the access token expires.

System.String correlationID

The correlation ID identifying the authentication request to respond to.

Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

SendLogoutResponseAsync(String)

Sends the logout response.

Declaration
public virtual async Task<IActionResult> SendLogoutResponseAsync(string correlationID = null)
Parameters
Type Name Description
System.String correlationID

The correlation ID identifying the logout request to respond to.

Returns
Type Description
Task<Microsoft.AspNetCore.Mvc.IActionResult>

A task that represents the operation and returns the action result.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

ToErrorCode(Exception)

Converts the exception to an error code.

Declaration
public virtual string ToErrorCode(Exception exception)
Parameters
Type Name Description
Exception exception

The exception.

Returns
Type Description
System.String

The error code.

Exceptions
Type Condition
OpenIDException

Thrown when the operation fails.

Implements

IOpenIDProvider
In This Article
Back to top Copyright © ComponentSpace Pty Ltd 2022. All rights reserved.