/// <summary> /// Initializes base class used for certain event contexts /// </summary> protected BaseValidatingClientContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; }
/// <summary> /// Initializes a new instance of the <see cref="ValidateAuthorizationRequestContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> internal ValidateAuthorizationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validated(); }
/// <summary> /// Initializes a new instance of the <see cref="ValidateUserinfoRequestContext"/> class. /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> public ValidateUserinfoRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, options, request) { Validate(); }
/// <summary> /// Creates an instance of this context. /// </summary> public HandleConfigurationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context) { Options = options; }
/// <summary> /// Creates an instance of this context /// </summary> internal LogoutEndpointContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context) { Options = options; Request = request; }
/// <summary> /// Initializes a new instance of the <see cref="ExtractConfigurationRequestContext"/> class. /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> public ExtractConfigurationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, options, request) { Validate(); }
/// <summary> /// Creates a new instance of the <see cref="HandleLogoutRequestContext"/> class. /// </summary> public HandleLogoutRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, options, request) { Validate(); }
/// <summary> /// Creates a new instance of the <see cref="ValidateAuthorizationRequestContext"/> class. /// </summary> public ValidateAuthorizationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, options, request) { RedirectUri = request.RedirectUri; }
/// <summary> /// Creates an instance of this context. /// </summary> internal CryptographyEndpointResponseContext( HttpContext context, OpenIdConnectServerOptions options, JObject payload) : base(context) { Options = options; Payload = payload; }
/// <summary> /// Initializes base class used for certain event contexts /// </summary> protected BaseValidatingTicketContext( HttpContext context, OpenIdConnectServerOptions options, AuthenticationTicket ticket) : base(context, options) { AuthenticationTicket = ticket; }
/// <summary> /// Uses a specific <see cref="SecurityKey"/> to sign tokens issued by the OpenID Connect server. /// </summary> /// <param name="options">The options used to configure the OpenID Connect server.</param> /// <param name="key">The key used to sign security tokens issued by the server.</param> /// <returns>The options used to configure the OpenID Connect server.</returns> public static OpenIdConnectServerOptions UseKey( [NotNull] this OpenIdConnectServerOptions options, [NotNull] SecurityKey key) { options.SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.RsaSha256Signature, SecurityAlgorithms.Sha256Digest); return(options); }
/// <summary> /// Creates an instance of this context. /// </summary> public HandleCryptographyRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validate(); }
/// <summary> /// Creates a new instance of the <see cref="HandleAuthorizationRequestContext"/> class. /// </summary> public HandleAuthorizationRequestContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, scheme, options, request, null) { Validate(); }
/// <summary> /// Creates an instance of this context /// </summary> public HandleAuthorizationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validate(); }
/// <summary> /// Creates a new instance of the <see cref="ValidateUserinfoRequestContext"/> class. /// </summary> public ValidateUserinfoRequestContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, scheme, options, request) { Validate(); }
/// <summary> /// Initializes base class used for certain event contexts. /// </summary> protected BaseValidatingContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context) { Options = options; Request = request; }
/// <summary> /// Creates a new instance of the <see cref="ExtractCryptographyRequestContext"/> class. /// </summary> public ExtractCryptographyRequestContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, scheme, options, request) { Validate(); }
/// <summary> /// Creates an instance of this context /// </summary> internal AuthorizationEndpointContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context) { Options = options; Request = request; }
/// <summary> /// Initializes a new instance of the <see cref="ExtractRevocationRequestContext"/> class. /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> public ExtractRevocationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validate(); }
/// <summary> /// Creates an instance of this context. /// </summary> public ApplyConfigurationResponseContext( HttpContext context, OpenIdConnectServerOptions options, JObject payload) : base(context) { Options = options; Payload = payload; }
/// <summary> /// Creates a new instance of the <see cref="BaseValidatingClientContext"/> class. /// </summary> protected BaseValidatingClientContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request) : base(context, scheme, options, request) { ClientId = request.ClientId; }
/// <summary> /// Creates an instance of this context. /// </summary> public HandleCryptographyRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context) { Options = options; Request = request; }
/// <summary> /// Initializes a new instance of the <see cref="HandleTokenRequestContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="ticket"></param> public HandleTokenRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request, AuthenticationTicket ticket) : base(context, options, request, ticket) { Validate(); }
/// <summary> /// Initializes a new instance of the <see cref="ValidateTokenRequestContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> internal ValidateTokenRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validated(); }
/// <summary> /// Creates an instance of this context. /// </summary> internal ValidationEndpointResponseContext( HttpContext context, OpenIdConnectServerOptions options, JObject payload) : base(context) { Options = options; Payload = payload; }
/// <summary> /// Creates an instance of this context /// </summary> public HandleAuthorizationRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context) { Options = options; Request = request; }
/// <summary> /// Initializes a new instance of the <see cref="DeserializeAuthorizationCodeContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="code"></param> internal DeserializeAuthorizationCodeContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, string code) : base(context) { Options = options; Request = request; AuthorizationCode = code; }
/// <summary> /// Uses a specific <see cref="X509Certificate2"/> contained in /// a stream to sign tokens issued by the OpenID Connect server. /// </summary> /// <param name="options">The options used to configure the OpenID Connect server.</param> /// <param name="stream">The stream containing the certificate.</param> /// <param name="password">The password used to open the certificate.</param> /// <param name="flags">An enumeration of flags indicating how and where to store the private key of the certificate.</param> /// <returns>The options used to configure the OpenID Connect server.</returns> public static OpenIdConnectServerOptions UseCertificate( [NotNull] this OpenIdConnectServerOptions options, [NotNull] Stream stream, [NotNull] string password, X509KeyStorageFlags flags) { using (var buffer = new MemoryStream()) { stream.CopyTo(buffer); return(options.UseCertificate(new X509Certificate2(buffer.ToArray(), password, flags))); } }
/// <summary> /// Creates a new instance of the <see cref="HandleUserinfoRequestContext"/> class. /// </summary> public HandleUserinfoRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectRequest request, AuthenticationTicket ticket) : base(context, options, request) { Ticket = ticket; Validate(); }
/// <summary> /// Creates a new instance of the <see cref="DeserializeRefreshTokenContext"/> class. /// </summary> public DeserializeRefreshTokenContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request, string token) : base(context, scheme, options, request) { RefreshToken = token; }
/// <summary> /// Creates a new instance of the <see cref="DeserializeAuthorizationCodeContext"/> class. /// </summary> public DeserializeAuthorizationCodeContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request, string code) : base(context, scheme, options, request) { AuthorizationCode = code; }
/// <summary> /// Initializes a new instance of the <see cref="DeserializeIdentityTokenContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="token"></param> internal DeserializeIdentityTokenContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, string token) : base(context) { Options = options; Request = request; IdentityToken = token; }
/// <summary> /// Initializes a new instance of the <see cref="GrantRefreshTokenContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="ticket"></param> public GrantRefreshTokenContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, AuthenticationTicket ticket) : base(context, options, ticket) { Request = request; Validate(); }
/// <summary> /// Initializes a new instance of the <see cref="ProfileEndpointResponseContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="payload"></param> internal ProfileEndpointResponseContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, JObject payload) : base(context) { Options = options; Request = request; Payload = payload; }
/// <summary> /// Initializes a new instance of the <see cref="TokenEndpointContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="ticket"></param> internal TokenEndpointContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, AuthenticationTicket ticket) : base(context) { Options = options; Request = request; Ticket = ticket; }
/// <summary> /// Initializes a new instance of the <see cref="ValidateUserinfoRequestContext"/> class. /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> public ValidateUserinfoRequestContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options) { Request = request; Validate(); }
/// <summary> /// Creates a new instance of the <see cref="BaseValidatingTicketContext"/> class. /// </summary> protected BaseValidatingTicketContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request, AuthenticationTicket ticket) : base(context, scheme, options, request) { Ticket = ticket; }
/// <summary> /// Creates a new instance of the <see cref="SerializeAuthorizationCodeContext"/> class. /// </summary> public SerializeAuthorizationCodeContext( HttpContext context, AuthenticationScheme scheme, OpenIdConnectServerOptions options, OpenIdConnectRequest request, OpenIdConnectResponse response, AuthenticationTicket ticket) : base(context, scheme, options, request, response, ticket) { }
/// <summary> /// Initializes a new instance of the <see cref="SerializeAccessTokenContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> /// <param name="response"></param> /// <param name="ticket"></param> internal SerializeAccessTokenContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request, OpenIdConnectMessage response, AuthenticationTicket ticket) : base(context) { Options = options; Request = request; Response = response; AuthenticationTicket = ticket; }
/// <summary> /// Initializes a new instance of the <see cref="AuthorizationEndpointResponseContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="ticket"></param> /// <param name="request"></param> /// <param name="response"></param> internal AuthorizationEndpointResponseContext( HttpContext context, OpenIdConnectServerOptions options, AuthenticationTicket ticket, OpenIdConnectMessage request, OpenIdConnectMessage response) : base(context) { Options = options; AuthenticationTicket = ticket; Request = request; Response = response; }
/// <summary> /// Initializes a new instance of the <see cref="TokenEndpointResponseContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="ticket"></param> /// <param name="request"></param> /// <param name="payload"></param> internal TokenEndpointResponseContext( HttpContext context, OpenIdConnectServerOptions options, AuthenticationTicket ticket, OpenIdConnectMessage request, JObject payload) : base(context) { Options = options; AuthenticationTicket = ticket; Request = request; Payload = payload; }
/// <summary> /// Adds a new OpenID Connect server instance in the ASP.NET pipeline. /// </summary> /// <param name="app">The web application builder.</param> /// <param name="configuration"> /// A delegate allowing to modify the options /// controlling the behavior of the OpenID Connect server. /// </param> /// <returns>The application builder.</returns> public static IApplicationBuilder UseOpenIdConnectServer( [NotNull] this IApplicationBuilder app, [NotNull] Action<OpenIdConnectServerOptions> configuration) { if (app == null) { throw new ArgumentNullException(nameof(app)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var options = new OpenIdConnectServerOptions(); // By default, enable AllowInsecureHttp in development/testing environments. var environment = app.ApplicationServices.GetRequiredService<IHostingEnvironment>(); options.AllowInsecureHttp = environment.IsDevelopment() || environment.IsEnvironment("Testing"); configuration(options); return app.UseOpenIdConnectServer(options); }
/// <summary> /// Initializes a new instance of the <see cref="MatchEndpointContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> internal MatchEndpointContext( HttpContext context, OpenIdConnectServerOptions options) : base(context) { Options = options; }
/// <summary> /// Initializes a new instance of the <see cref="ValidateClientLogoutRedirectUriContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> internal ValidateClientLogoutRedirectUriContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options, request) { }
/// <summary> /// Creates an instance of this context. /// </summary> internal CryptographyEndpointContext( HttpContext context, OpenIdConnectServerOptions options) : base(context) { Options = options; }
/// <summary> /// Initializes a new instance of the <see cref="ValidateClientAuthenticationContext"/> class /// </summary> /// <param name="context"></param> /// <param name="options"></param> /// <param name="request"></param> internal ValidateClientAuthenticationContext( HttpContext context, OpenIdConnectServerOptions options, OpenIdConnectMessage request) : base(context, options, request) { }
/// <summary> /// Creates an instance of this context. /// </summary> internal ConfigurationEndpointContext( HttpContext context, OpenIdConnectServerOptions options) : base(context) { Options = options; }
/// <summary> /// Initializes base class used for certain event contexts. /// </summary> protected BaseValidatingContext( HttpContext context, OpenIdConnectServerOptions options) : base(context) { Options = options; }
private static void ServerOptions(OpenIdConnectServerOptions options) { options.Provider = new AuthorizationServerProvider(); options.AllowInsecureHttp = true; options.AuthorizationEndpointPath = "/account/authorize"; options.TokenEndpointPath = "/token"; options.AccessTokenLifetime = TimeSpan.FromMinutes(1); options.RefreshTokenLifetime = TimeSpan.FromHours(10); }