public static HttpConfiguration Configure(WsFederationPluginOptions options) { var config = new HttpConfiguration(); config.MapHttpAttributeRoutes(); config.SuppressDefaultHostAuthentication(); config.MessageHandlers.Insert(0, new KatanaDependencyResolver()); config.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger()); config.Services.Replace(typeof(IHttpControllerTypeResolver), new HttpControllerTypeResolver()); config.Formatters.Remove(config.Formatters.XmlFormatter); config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly; if (options.IdentityServerOptions.LoggingOptions.EnableWebApiDiagnostics) { var liblog = new TraceSource("LibLog"); liblog.Switch.Level = SourceLevels.All; liblog.Listeners.Add(new LibLogTraceListener()); var diag = config.EnableSystemDiagnosticsTracing(); diag.IsVerbose = options.IdentityServerOptions.LoggingOptions.WebApiDiagnosticsIsVerbose; diag.TraceSource = liblog; } if (options.IdentityServerOptions.LoggingOptions.EnableHttpLogging) { config.MessageHandlers.Add(new RequestResponseLogger()); } return(config); }
public static IContainer Configure(WsFederationPluginOptions options, InternalConfiguration internalConfig) { if (internalConfig == null) throw new ArgumentNullException("internalConfig"); if (options == null) throw new ArgumentNullException("options"); var factory = options.Factory; factory.Validate(); var builder = new ContainerBuilder(); // mandatory from factory builder.Register(factory.CoreSettings); builder.Register(factory.UserService); builder.Register(factory.RelyingPartyService); builder.Register(factory.WsFederationSettings); // validators builder.RegisterType<SignInValidator>().AsSelf(); // processors builder.RegisterType<SignInResponseGenerator>().AsSelf(); builder.RegisterType<MetadataResponseGenerator>().AsSelf(); // general services builder.RegisterType<CookieMiddlewareTrackingCookieService>().As<ITrackingCookieService>(); builder.RegisterInstance(options).AsSelf(); builder.RegisterInstance(internalConfig).AsSelf(); // load core controller builder.RegisterApiControllers(typeof(WsFederationController).Assembly); return builder.Build(); }
public static IContainer Configure(WsFederationPluginOptions options) { if (options == null) { throw new ArgumentNullException("options"); } var factory = options.Factory; factory.Validate(); var builder = new ContainerBuilder(); // mandatory from factory builder.Register(factory.UserService); builder.Register(factory.RelyingPartyService); // validators builder.RegisterType <SignInValidator>().AsSelf(); // processors builder.RegisterType <SignInResponseGenerator>().AsSelf(); builder.RegisterType <MetadataResponseGenerator>().AsSelf(); // general services builder.RegisterType <CookieMiddlewareTrackingCookieService>().As <ITrackingCookieService>(); builder.RegisterInstance(options).AsSelf(); builder.RegisterInstance(options.IdentityServerOptions).AsSelf(); // load core controller builder.RegisterApiControllers(typeof(WsFederationController).Assembly); return(builder.Build()); }
public static HttpConfiguration Configure(WsFederationPluginOptions options) { var config = new HttpConfiguration(); config.MapHttpAttributeRoutes(); config.SuppressDefaultHostAuthentication(); config.MessageHandlers.Insert(0, new KatanaDependencyResolver()); config.Services.Add(typeof(IExceptionLogger), new LogProviderExceptionLogger()); config.Services.Replace(typeof(IHttpControllerTypeResolver), new HttpControllerTypeResolver()); config.Formatters.Remove(config.Formatters.XmlFormatter); config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.LocalOnly; if (options.IdentityServerOptions.LoggingOptions.EnableWebApiDiagnostics) { var liblog = new TraceSource("LibLog"); liblog.Switch.Level = SourceLevels.All; liblog.Listeners.Add(new LibLogTraceListener()); var diag = config.EnableSystemDiagnosticsTracing(); diag.IsVerbose = options.IdentityServerOptions.LoggingOptions.WebApiDiagnosticsIsVerbose; diag.TraceSource = liblog; } if (options.IdentityServerOptions.LoggingOptions.EnableHttpLogging) { config.MessageHandlers.Add(new RequestResponseLogger()); } return config; }
public WsFederationController(SignInValidator validator, SignInResponseGenerator signInResponseGenerator, MetadataResponseGenerator metadataResponseGenerator, ITrackingCookieService cookies, WsFederationPluginOptions wsFedOptions) { _validator = validator; _signInResponseGenerator = signInResponseGenerator; _metadataResponseGenerator = metadataResponseGenerator; _cookies = cookies; _wsFedOptions = wsFedOptions; }
public static IAppBuilder UseWsFederationPlugin(this IAppBuilder app, WsFederationPluginOptions options) { if (options == null) throw new ArgumentNullException("options"); options.Validate(); var internalConfig = new InternalConfiguration(); // todo hacky! internalConfig.LoginPageUrl = options.LoginPageUrl; var settings = options.Factory.CoreSettings(); // todo - need a better solution for data protection if (settings.DataProtector == null) { var provider = app.GetDataProtectionProvider(); if (provider == null) { provider = new DpapiDataProtectionProvider("idsrv3"); } var funcProtector = new FuncDataProtector( (data, entropy) => { var protector = provider.Create(entropy); return protector.Protect(data); }, (data, entropy) => { var protector = provider.Create(entropy); return protector.Unprotect(data); }); internalConfig.DataProtector = funcProtector; } else { internalConfig.DataProtector = settings.DataProtector; } app.Map(options.MapPath, wsfedApp => { wsfedApp.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = WsFederationPluginOptions.CookieName, AuthenticationMode = AuthenticationMode.Passive }); wsfedApp.Use<AutofacContainerMiddleware>(AutofacConfig.Configure(options, internalConfig)); Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(app); wsfedApp.UseWebApi(WebApiConfig.Configure()); }); // todo //options.Configuration.AddSignOutCallbackUrl("/wsfed/signout"); return app; }
public WsFederationController(IdentityServerOptions options, IUserService users, SignInValidator validator, SignInResponseGenerator signInResponseGenerator, MetadataResponseGenerator metadataResponseGenerator, ITrackingCookieService cookies, WsFederationPluginOptions wsFedOptions) { _options = options; _validator = validator; _signInResponseGenerator = signInResponseGenerator; _metadataResponseGenerator = metadataResponseGenerator; _cookies = cookies; _wsFedOptions = wsFedOptions; }
private void ConfigurePlugins(IAppBuilder pluginApp, IdentityServerOptions options) { var wsFedOptions = new WsFederationPluginOptions(options); // data sources for in-memory services wsFedOptions.Factory.Register(new Registration<IEnumerable<RelyingParty>>(RelyingParties.Get())); wsFedOptions.Factory.RelyingPartyService = new Registration<IRelyingPartyService>(typeof(InMemoryRelyingPartyService)); pluginApp.UseWsFederationPlugin(wsFedOptions); }
public WsFederationController(CoreSettings settings, IUserService users, SignInValidator validator, SignInResponseGenerator signInResponseGenerator, MetadataResponseGenerator metadataResponseGenerator, ITrackingCookieService cookies, InternalConfiguration internalConfig, WsFederationPluginOptions wsFedOptions) { _settings = settings; _internalConfig = internalConfig; _wsfedOptions = wsFedOptions; _validator = validator; _signInResponseGenerator = signInResponseGenerator; _metadataResponseGenerator = metadataResponseGenerator; _cookies = cookies; }
private void ConfigurePlugins(IAppBuilder pluginApp, IdentityServerOptions options) { var wsFedOptions = new WsFederationPluginOptions { IdentityServerOptions = options, Factory = new WsFederationServiceFactory { UserService = options.Factory.UserService, RelyingPartyService = Registration.RegisterFactory<IRelyingPartyService>(() => new InMemoryRelyingPartyService(RelyingParties.Get())), } }; pluginApp.UseWsFederationPlugin(wsFedOptions); }
public static IContainer Configure(WsFederationPluginOptions options) { if (options == null) { throw new ArgumentNullException("options"); } var factory = options.Factory; factory.Validate(); var builder = new ContainerBuilder(); // mandatory from factory builder.Register(factory.UserService); builder.Register(factory.RelyingPartyService); // validators builder.RegisterType <SignInValidator>().AsSelf(); // processors builder.RegisterType <SignInResponseGenerator>().AsSelf(); builder.RegisterType <MetadataResponseGenerator>().AsSelf(); // general services builder.RegisterType <CookieMiddlewareTrackingCookieService>().As <ITrackingCookieService>(); builder.RegisterInstance(options).AsSelf(); builder.RegisterInstance(options.IdentityServerOptions).AsSelf(); // load core controller builder.RegisterApiControllers(typeof(WsFederationController).Assembly); builder.Register <OwinEnvironmentService>(resolver => new OwinEnvironmentService(resolver.Resolve <IOwinContext>().Environment)); // register additional dependencies from identity server foreach (var registration in options.IdentityServerOptions.Factory.Registrations) { builder.Register(registration); } // add any additional dependencies from hosting application foreach (var registration in factory.Registrations) { builder.Register(registration, registration.Name); } return(builder.Build()); }
public static IContainer Configure(WsFederationPluginOptions options) { if (options == null) throw new ArgumentNullException("options"); var factory = options.Factory; factory.Validate(); var builder = new ContainerBuilder(); // mandatory from factory builder.Register(factory.UserService); builder.Register(factory.RelyingPartyService); // validators builder.RegisterType<SignInValidator>().AsSelf(); // processors builder.RegisterType<SignInResponseGenerator>().AsSelf(); builder.RegisterType<MetadataResponseGenerator>().AsSelf(); // general services builder.RegisterType<CookieMiddlewareTrackingCookieService>().As<ITrackingCookieService>(); builder.RegisterInstance(options).AsSelf(); builder.RegisterInstance(options.IdentityServerOptions).AsSelf(); // load core controller builder.RegisterApiControllers(typeof(WsFederationController).Assembly); builder.Register<OwinEnvironmentService>(resolver => new OwinEnvironmentService(resolver.Resolve<IOwinContext>().Environment)); // register additional dependencies from identity server foreach (var registration in options.IdentityServerOptions.Factory.Registrations) { builder.Register(registration); } // add any additional dependencies from hosting application foreach (var registration in factory.Registrations) { builder.Register(registration, registration.Name); } return builder.Build(); }
private void ConfigurePlugins(IAppBuilder pluginApp, IdentityServerOptions options) { var wsFedOptions = new WsFederationPluginOptions { // todo - also signoutcleanup is broken right now LoginPageUrl = "http://localhost:3333/core/login", LogoutPageUrl = "http://localhost:3333/core/connect/logout", Factory = new WsFederationServiceFactory { UserService = options.Factory.UserService, CoreSettings = options.Factory.CoreSettings, RelyingPartyService = Registration.RegisterFactory<IRelyingPartyService>(() => new InMemoryRelyingPartyService(RelyingParties.Get())), WsFederationSettings = Registration.RegisterFactory<WsFederationSettings>(() => new WsFedSettings()) }, }; pluginApp.UseWsFederationPlugin(wsFedOptions); }
public static IAppBuilder UseWsFederationPlugin(this IAppBuilder app, WsFederationPluginOptions options) { if (options == null) throw new ArgumentNullException("options"); options.Validate(); options.IdentityServerOptions.ProtocolLogoutUrls.Add(options.LogoutUrl); app.Map(options.MapPath, wsfedApp => { wsfedApp.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = WsFederationPluginOptions.CookieName, AuthenticationMode = AuthenticationMode.Passive, CookieName = options.IdentityServerOptions.CookieOptions.Prefix + WsFederationPluginOptions.CookieName, }); wsfedApp.Use<AutofacContainerMiddleware>(AutofacConfig.Configure(options)); Microsoft.Owin.Infrastructure.SignatureConversions.AddConversions(app); wsfedApp.UseWebApi(WebApiConfig.Configure()); }); return app; }