public static IAppBuilder UseWindowsAuthentication(this IAppBuilder app, WindowsAuthenticationOptions options)
        {
            if (app == null)
            {
                throw new ArgumentNullException("app");
            }
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            return app.Use(typeof(WindowsAuthenticationMiddleware), app, options);
        }
 public SignInResponseGenerator(WindowsAuthenticationOptions options)
 {
     _options = options;
 }
Example #3
0
        /// <summary>
        /// Extension method for adding the windows authentication service to the pipeline
        /// </summary>
        /// <param name="app">The app builder.</param>
        /// <param name="options">The options class.</param>
        /// <returns></returns>
        public static IAppBuilder UseWindowsAuthenticationService(this IAppBuilder app, WindowsAuthenticationOptions options)
        {
            Logger.Info("Starting configuration.");

            app.ConfigureBaseUrl(options.PublicOrigin);

            if (options.EnableWsFederationEndpoint)
            {
                Logger.Info("Adding WS-Federation endpoint");

                var webApiConfig = new HttpConfiguration();
                webApiConfig.MapHttpAttributeRoutes();
                webApiConfig.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger());
                webApiConfig.Services.Replace(typeof(IHttpControllerTypeResolver), new ControllerResolver());

                var builder = new ContainerBuilder();
                builder.RegisterInstance(options);
                builder.RegisterApiControllers(typeof(AuthenticationController).Assembly);

                webApiConfig.DependencyResolver = new AutofacWebApiDependencyResolver(builder.Build());
                app.UseWebApi(webApiConfig);
            }

            if (options.EnableOAuth2Endpoint)
            {
                Logger.Info("Adding OAuth2 endpoint");

                app.Use(async(context, next) =>
                {
                    if (context.Request.Uri.AbsolutePath.EndsWith("/token", StringComparison.OrdinalIgnoreCase))
                    {
                        if (context.Authentication.User == null ||
                            !context.Authentication.User.Identity.IsAuthenticated)
                        {
                            context.Response.StatusCode = 401;
                            return;
                        }
                    }

                    await next();
                });

                app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
                {
                    AllowInsecureHttp         = true,
                    TokenEndpointPath         = new PathString("/token"),
                    Provider                  = new WindowsAuthenticationTokenProvider(options),
                    AccessTokenFormat         = new JwtFormat(options),
                    AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(options.TokenLifeTime)
                });
            }

            SignatureConversions.AddConversions(app);

            Logger.Info("Configuration done.");
            return(app);
        }
 public AuthenticationController(WindowsAuthenticationOptions options)
 {
     _options = options;
 }
Example #5
0
 public MetadataResponseGenerator(WindowsAuthenticationOptions options)
 {
     _options = options;
 }