Table of Contents

Class TendukeConfig

Namespace
Tenduke.Core.Config
Assembly
Tenduke.Core.dll

Loads configuration items for interacting with licensing and oauth / OpenID connect.

public class TendukeConfig : ILicensingApiConfig, IOidcConfig, IConfig
Inheritance
TendukeConfig
Implements
Inherited Members
Extension Methods

Properties

AuthRedirectPath

Gets/Sets the path for OAuth PKCE flow post login redirect.

public string? AuthRedirectPath { get; set; }

Property Value

string

Remarks

For desktop clients (using system default browser), this path fragment will be appened to http://localhost using AuthRedirectPort if specified or otherwise a random ephemeral port.

The constructed URI will be provided to the OAuth Authorization Server (AS), also known as the OpenID Provider (OP) as a query parameter to the Authorization Request. After successful login of the user the AS directs the user-agent back to the client, at the URI constructed from this configuration item.

AuthRedirectPort

Gets the local redirect port to listen on for OAuth PKCE flow post login redirect.

public int AuthRedirectPort { get; set; }

Property Value

int

AuthRedirectTimeoutSeconds

Gets/Sets the the timeout, in seconds, for PKCE Flow login and redirect

public float AuthRedirectTimeoutSeconds { get; set; }

Property Value

float

AuthRedirectUri

Gets/Sets the URI for OAuth PKCE flow post login redirect.

public Uri? AuthRedirectUri { get; set; }

Property Value

Uri

Remarks

This value will be provided to the OAuth Authorization Server (AS), also known as the OpenID Provider (OP) as a query parameter to the Authorization Request. After successful login of the user the AS directs the user-agent back to the client, at the URI specified by this configuration item.

AuthSuccessMessage

Gets/Sets the file name and path or the file containing response for successful login (see PKCE Flow Client)

public string? AuthSuccessMessage { get; set; }

Property Value

string

DefaultLicenseCheckoutHttpClientName

Gets the default name for HttpClient used to talk to 10Duke License Checkout API

public static string DefaultLicenseCheckoutHttpClientName { get; }

Property Value

string

DefaultOidcHttpClientName

Gets the default name for HttpClient used to talk to OpenID Connect provider

public static string DefaultOidcHttpClientName { get; }

Property Value

string

EffectiveLogoutRedirectPath

Gets the effective redirect path for logout redirect.

public string? EffectiveLogoutRedirectPath { get; }

Property Value

string

EffectiveLogoutRedirectPort

Gets the effective redirect port for logout redirect.

public int EffectiveLogoutRedirectPort { get; }

Property Value

int

EffectiveRedirectPath

Gets the effective redirect path for the PKCE Flow Client

public string? EffectiveRedirectPath { get; }

Property Value

string

EffectiveRedirectPort

Gets the effective redirect port for the PKCE Flow Client

public int EffectiveRedirectPort { get; }

Property Value

int

EffectiveRedirectUri

Gets the effective redirect URI for the PKCE Flow Client

public Uri? EffectiveRedirectUri { get; }

Property Value

Uri

HttpTimeoutSeconds

Gets/Sets the timeout, in seconds, for HTTP requests

public float HttpTimeoutSeconds { get; set; }

Property Value

float

HttpTimeoutSecondsTimeSpan

Gets the timeout for HTTP requests

public TimeSpan HttpTimeoutSecondsTimeSpan { get; }

Property Value

TimeSpan

HttpsProxy

Gets/Sets the proxy to use for HTTPS requests

public Uri? HttpsProxy { get; set; }

Property Value

Uri

IdpEndSessionEndpoint

Gets/Sets the end session endpoint.

public Uri? IdpEndSessionEndpoint { get; set; }

Property Value

Uri

Remarks

This optional entry in the OpenID configuration specifies the endpoint to begin Relying Party (RP) initiated logout, if the OpenID Provider (OP) supports that protocol extension.

IdpIssuer

Gets/Sets the Issuer (iss) for OIDC token validation

public string? IdpIssuer { get; set; }

Property Value

string

IdpJwksUri

Gets/Sets the URL path to read public key used to verify JWTs received from Authorization Server authenticating OpenID Connect session

public Uri? IdpJwksUri { get; set; }

Property Value

Uri

IdpOAuthAuthorizationUrl

Gets/Sets the endpoint for Authorization Request in Authorization Code or Implicit Grant flows

public Uri? IdpOAuthAuthorizationUrl { get; set; }

Property Value

Uri

IdpOAuthClientId

Gets/Sets the application credentials for OAuth/OpenID Connect

public string? IdpOAuthClientId { get; set; }

Property Value

string

IdpOAuthClientSecret

Gets/Sets the application credentials for OAuth/OpenID Connect. Required for some OAuth flows or for some Identity Providers

public string? IdpOAuthClientSecret { get; set; }

Property Value

string

IdpOAuthDeviceCodeUrl

Gets/Sets the endpoint for Device Authorization Request in Device Authorization Grant flow

public Uri? IdpOAuthDeviceCodeUrl { get; set; }

Property Value

Uri

IdpOAuthScope

Gets/Sets the scopes to include in the Access and ID tokens requested via OpenID Connect

public string? IdpOAuthScope { get; set; }

Property Value

string

IdpOAuthTokenUrl

Gets/Sets the endpoint for Access Token Request or Device Access Token Request

public Uri? IdpOAuthTokenUrl { get; set; }

Property Value

Uri

IdpOidcDiscoveryUrl

Gets/Sets the URL used to retrieve the details of the OpenID Connect endpoints for the identity provider

public Uri? IdpOidcDiscoveryUrl { get; set; }

Property Value

Uri

IdpUserinfoUrl

Gets/Sets the endpoint handling the UserInfo Request

public Uri? IdpUserinfoUrl { get; set; }

Property Value

Uri

IsLogoutRedirectConfigured

Are either of LogoutRedirectUri or LogoutRedirectPath set?

public bool IsLogoutRedirectConfigured { get; }

Property Value

bool

LicenseCheckoutHttpClientName

Gets/Sets the name of the HttpClient to use for requests to the 10Duke Scale License Checkout API

public string LicenseCheckoutHttpClientName { get; set; }

Property Value

string

LicensingApiAuthorizationModel

Gets/Sets the method of authorization used for Scale API calls

public ApiAuthorizationModel LicensingApiAuthorizationModel { get; set; }

Property Value

ApiAuthorizationModel

LicensingApiUrl

Gets/Sets the base URL for the Licensing API

public Uri? LicensingApiUrl { get; set; }

Property Value

Uri

LogoutRedirectPath

Gets the path to construct an application URI for the OpenID Provider (OP) to redirect to after successful logout.

public string? LogoutRedirectPath { get; set; }

Property Value

string

Remarks

Some OpenID Provider (OP) logout flows allow the client application or Relying Party (RP) to specify a URI for the OP to redirect to after successful logout.

This allows the RP to complete the termination of the local session (for example removing any stored access or refresh tokens) once the OP has confirmed the session has been terminated.

For desktop clients (using system default browser), this path fragment will be appened to http://localhost using LogoutRedirectPort if specified or otherwise a random ephemeral port.

LogoutRedirectPort

Gets the port to listen for for the OpenID Provider (OP) redirect after successful logout.

public int LogoutRedirectPort { get; set; }

Property Value

int

LogoutRedirectTimeoutSeconds

Gets/Sets the the timeout, in seconds, for logout redirect.

public float LogoutRedirectTimeoutSeconds { get; set; }

Property Value

float

LogoutRedirectUri

Gets the application URI for the OpenID Provider (OP) to redirect to after successful logout.

public Uri? LogoutRedirectUri { get; set; }

Property Value

Uri

Remarks

Some OpenID Provider (OP) logout flows allow the client application or Relying Party (RP) to specify a URI for the OP to redirect to after successful logout.

This allows the RP to complete the termination of the local session (for example removing any stored access or refresh tokens) once the OP has confirmed the session has been terminated.

For desktop applications (using system default browser), the SDK will listen on this URI for the redirect to localhost.

LogoutSuccessMessage

Gets/Sets the file name and path of the file containing response for successful logout.

public string? LogoutSuccessMessage { get; set; }

Property Value

string

Remarks

Optionally used as part of the Relying Party (RP) Initiated Logout flow.

OidcHttpClientName

Gets/Sets the name of the HttpClient to use for requests to the OpenID Connect Provider

public string OidcHttpClientName { get; set; }

Property Value

string

PublicKeyPath

Gets/Sets the location on disk to save public keys

public string PublicKeyPath { get; set; }

Property Value

string

TokenPath

Gets/Sets the location on disk to save license tokens

public string TokenPath { get; set; }

Property Value

string

TokenRefreshLeewaySeconds

Gets/Sets the number of seconds before expiry time that an ID Token or Scale JWT will be automatically refreshed

public float TokenRefreshLeewaySeconds { get; set; }

Property Value

float

Methods

GetEffectiveLogoutRedirectUri(int)

Gets the effective redirect URI for logout redirect.

public Uri? GetEffectiveLogoutRedirectUri(int port)

Parameters

port int

Returns

Uri