/// <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();
 }
Ejemplo n.º 3
0
 /// <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;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Creates an instance of this context
 /// </summary>
 internal LogoutEndpointContext(
     HttpContext context,
     OpenIdConnectServerOptions options,
     OpenIdConnectMessage request)
     : base(context) {
     Options = options;
     Request = request;
 }
Ejemplo n.º 6
0
 /// <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();
 }
Ejemplo n.º 8
0
 /// <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;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Initializes base class used for certain event contexts
 /// </summary>
 protected BaseValidatingTicketContext(
     HttpContext context,
     OpenIdConnectServerOptions options,
     AuthenticationTicket ticket)
     : base(context, options)
 {
     AuthenticationTicket = ticket;
 }
Ejemplo n.º 11
0
        /// <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();
 }
Ejemplo n.º 13
0
 /// <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();
 }
Ejemplo n.º 15
0
 /// <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();
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Initializes base class used for certain event contexts.
 /// </summary>
 protected BaseValidatingContext(
     HttpContext context,
     OpenIdConnectServerOptions options,
     OpenIdConnectRequest request)
     : base(context)
 {
     Options = options;
     Request = request;
 }
Ejemplo n.º 17
0
 /// <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;
 }
Ejemplo n.º 19
0
 /// <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();
 }
Ejemplo n.º 20
0
 /// <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;
 }
Ejemplo n.º 22
0
 /// <summary>
 /// Creates an instance of this context.
 /// </summary>
 public HandleCryptographyRequestContext(
     HttpContext context,
     OpenIdConnectServerOptions options,
     OpenIdConnectMessage request)
     : base(context)
 {
     Options = options;
     Request = request;
 }
Ejemplo n.º 23
0
 /// <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();
 }
Ejemplo n.º 24
0
 /// <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;
 }
Ejemplo n.º 28
0
        /// <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;
 }
Ejemplo n.º 31
0
 /// <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;
 }
Ejemplo n.º 35
0
 /// <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;
 }
Ejemplo n.º 36
0
        /// <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;
 }
Ejemplo n.º 38
0
 /// <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);
        }
Ejemplo n.º 43
0
 /// <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;
 }
Ejemplo n.º 48
0
 /// <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);
        }