Class WebOAuthSecurityBindingElementExtension
Reads configuration and initializes the custom binding element that allows to authenticate the service caller with OAuth access token or call an OAuth protected service providing an access token requested from an OAuth authorization server.
Inheritance
Inherited Members
Namespace: Nevatech.Vsb.Repository.Security.OAuth
Assembly: Nevatech.Vsb.Repository.dll
Syntax
public sealed class WebOAuthSecurityBindingElementExtension : BindingElementExtensionElement
Examples
<webOAuthSecurity metadataEndpoint="https://localhost/auz/oauth/.well-known/openid-configuration" metadataType="OpenIdConnect"> <serviceSettings tokenValidationEndpoint="https://localhost/auz/oauth/connect/accessTokenValidation" tokenType="Reference" tokenParameterName="token" tokenParameterType="FormParameter" tokenFormatString="{0}" tokenParameters="p3=v3&p4=v4" tokenAuthorizationHeader="Basic secret" validationTimeout="00:02:00" cacheLifetime="01:00:00" requireToken="true"> <issuers> <add value="https://localhost/auz/oauth"/> </issuers> <audiences> <add value="https://localhost/service"/> </audiences> <signingCertificateReferences> <add findValue="6b7acc520305bfdb4f7252daeb2177cc091faae1" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" /> </signingCertificateReferences> <signingCertificates> <add encodedValue="MIIDPjCCAiqgAwIBAgIQsRiM0jheFZhKk4..."/> </signingCertificates> <signingRsaKeys> <add kid="a3rMUgMFv9tPclLa6yF3zAkfquE" exponent="AQAB" modulus="qnTksBdxOiOlsmRNd-mMS2M3o1IDpK4uAr..." /> </signingRsaKeys> <signingSecrets> <add kid="a3rMUgMFv9tPclLa6yF3zAkfquE" secret="qnTksBdxOiOlsmRNd-mMS2M3o1IDpK4uAr..." /> </signingSecrets> </serviceSettings> <clientSettings tokenEndpoint="https://localhost/auz/oauth/connect/token" clientId="client" clientSecret="secret" authenticationType="FormPost" authenticationFlow="ResourceOwner" scopes="openid service" audience="https://localhost/service" parameters="p1=v1&p2=v2" requestTimeout="00:02:00" minimumCacheLifetime="00:00:00" maximumCacheLifetime="01:00:00" clientAssertionLifetime="00:15:00" /> </webOAuthSecurity>
Constructors
WebOAuthSecurityBindingElementExtension()
Declaration
public WebOAuthSecurityBindingElementExtension()
Properties
BindingElementType
Gets the custom binding element object type.
Declaration
public override Type BindingElementType { get; }
Property Value
| Type | Description |
|---|---|
| Type |
Overrides
Client
Gets element containing information about how client application is calling OAuth/OpendID Connect server in order to retrieve an access token.
Declaration
[ConfigurationProperty("clientSettings")]
public WebOAuthSecurityClientElement Client { get; }
Property Value
| Type | Description |
|---|---|
| WebOAuthSecurityClientElement |
MetadataEndpoint
Gets or sets the URI to Open ID Connect or WS-Federation metadata endpoint. This endpoint is used to retrieve the authorization server's signing key, issuer's name, token endpoint, etc.
Declaration
[ConfigurationProperty("metadataEndpoint")]
public Uri MetadataEndpoint { get; set; }
Property Value
| Type | Description |
|---|---|
| Uri |
MetadataType
Gets or sets the type of metadata retrieved from MetadataEndpoint. Default is OpenID Connect Discovery document.
Declaration
[ConfigurationProperty("metadataType")]
public OAuthMetadataType MetadataType { get; set; }
Property Value
| Type | Description |
|---|---|
| OAuthMetadataType |
Properties
Gets collection of configuration element properties.
Declaration
protected override ConfigurationPropertyCollection Properties { get; }
Property Value
| Type | Description |
|---|---|
| ConfigurationPropertyCollection |
Overrides
Service
Gets element containing information about how service validates an access token issued by OAuth/OpenID Connect server and received from a client application.
Declaration
[ConfigurationProperty("serviceSettings")]
public WebOAuthSecurityServiceElement Service { get; }
Property Value
| Type | Description |
|---|---|
| WebOAuthSecurityServiceElement |
Methods
ApplyConfiguration(BindingElement)
Applies the content of a specified binding element to this binding configuration element.
Declaration
public override void ApplyConfiguration(BindingElement bindingElement)
Parameters
| Type | Name | Description |
|---|---|---|
| BindingElement | bindingElement | A binding element. |
Overrides
CopyFrom(ServiceModelExtensionElement)
Copies the content of the specified configuration element to this configuration element.
Declaration
public override void CopyFrom(ServiceModelExtensionElement from)
Parameters
| Type | Name | Description |
|---|---|---|
| ServiceModelExtensionElement | from | The configuration element to be copied. |
Overrides
CreateBindingElement()
Creates and returns a custom binding element object.
Declaration
protected override BindingElement CreateBindingElement()
Returns
| Type | Description |
|---|---|
| BindingElement | A custom binding element object. |
Overrides
InitializeFrom(BindingElement)
Initializes this binding configuration section with the content of the specified binding element.
Declaration
protected override void InitializeFrom(BindingElement bindingElement)
Parameters
| Type | Name | Description |
|---|---|---|
| BindingElement | bindingElement | A binding element. |