public EmbeddedHtmlResult(HttpRequestMessage request, string file, IdentityAdminOptions adminOptions) { var pathbase = request.GetOwinContext().Request.PathBase; this.path = pathbase.Value; this.file = file; this.authorization_endpoint = pathbase + Constants.AuthorizePath; this._adminOptions = adminOptions; }
public AdminPageController(IdentityAdminOptions identityAdminOptions) { if (identityAdminOptions == null) { throw new ArgumentNullException("identityAdminOptions"); } this._identityAdminOptions = identityAdminOptions; }
public static void UseIdSrvAdmin(this IAppBuilder app, bool usehttps = false) { app.Map("/admin", adminApp => { var factory = new IdentityAdminServiceFactory { IdentityAdminService = new IdentityAdmin.Configuration.Registration <IIdentityAdminService, IdentityAdminManagerService>() }; var adminoption = new IdentityAdminOptions() { Factory = factory, }; adminoption.AdminSecurityConfiguration.RequireSsl = usehttps; adminApp.UseIdentityAdmin(adminoption); }); }
public void Configuration(IAppBuilder app) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .WriteTo.Trace() .CreateLogger(); app.Map("/adm", adminApp => { var factory = new IdentityAdminServiceFactory(); factory.Configure(); var adminOptions = new IdentityAdminOptions { Factory = factory }; adminOptions.AdminSecurityConfiguration.RequireSsl = false; adminApp.UseIdentityAdmin(adminOptions); }); }
public IdentityAdminMiddleware(RequestDelegate next, IdentityAdminOptions options, ILogger <IdentityAdminMiddleware> logger) { _next = next ?? throw new ArgumentNullException(nameof(next)); _options = options ?? throw new ArgumentNullException(nameof(options)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public void Configuration(IAppBuilder appBuilder) { Log.Logger = new LoggerConfiguration() .WriteTo.Trace(outputTemplate: "{Timestamp} [{Level}] ({Name}){NewLine} {Message}{NewLine}{Exception}") .CreateLogger(); JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary <string, string>(); appBuilder.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = "Cookies", LoginPath = new PathString("/Home/Login") }); appBuilder.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions { AuthenticationType = "oidc", Authority = "https://localhost:44333", ClientId = "idmgr_and_idadmin", RedirectUri = "https://localhost:44333", ResponseType = "id_token", UseTokenLifetime = false, Scope = "openid idmgr idAdmin", SignInAsAuthenticationType = "Cookies", Notifications = new OpenIdConnectAuthenticationNotifications { SecurityTokenValidated = n => { n.AuthenticationTicket.Identity.AddClaim(new Claim("id_token", n.ProtocolMessage.IdToken)); return(Task.FromResult(0)); }, RedirectToIdentityProvider = async n => { if (n.ProtocolMessage.RequestType == Microsoft.IdentityModel.Protocols.OpenIdConnectRequestType.LogoutRequest) { var result = await n.OwinContext.Authentication.AuthenticateAsync("Cookies"); if (result != null) { var id_token = result.Identity.Claims.GetValue("id_token"); if (id_token != null) { n.ProtocolMessage.IdTokenHint = id_token; n.ProtocolMessage.PostLogoutRedirectUri = "https://localhost:44333"; } } } } } }); var connString = ConfigurationManager.ConnectionStrings["IdSvr3Config"].ConnectionString; // Identity admin appBuilder.Map("/adm", adminApp => { var idAdminOptions = new IdentityAdminOptions { Factory = ConfigIdentityServerAdmin.Factory.Configure(connString), AdminSecurityConfiguration = new IdentityAdmin.Configuration.AdminHostSecurityConfiguration() { HostAuthenticationType = IdentityAdmin.Constants.CookieAuthenticationType, AdminRoleName = "IdentityServerAdmin", NameClaimType = "name", RoleClaimType = "role", } }; adminApp.UseIdentityAdmin(idAdminOptions); }); //Identity manager appBuilder.Map("/idm", adminApp => { var idManagerOptions = new IdentityManagerOptions { Factory = ConfigIdentityManager.Factory.Configure(connString), SecurityConfiguration = new HostSecurityConfiguration() { HostAuthenticationType = IdentityManager.Constants.CookieAuthenticationType, AdminRoleName = "IdentityManagerAdmin", NameClaimType = "name", RoleClaimType = "role", } }; adminApp.UseIdentityManager(idManagerOptions); }); // Identity server appBuilder.Map("/ids", adminApp => { var idsrvOptions = new IdentityServerOptions { Factory = ConfigIdentityServer.Factory.Configure(connString), SigningCertificate = Certificate.Get(), RequireSsl = true }; appBuilder.UseIdentityServer(idsrvOptions); }); }
public static void UseIdentityAdmin(this IAppBuilder app, IdentityAdminOptions options) { if (app == null) { throw new ArgumentNullException("app"); } if (options == null) { throw new ArgumentNullException("config"); } app.SetLoggerFactory(new LibLogLoggerFactory()); Logger.Info("Starting IdentityAdmin configuration"); options.Validate(); app.Use(async(ctx, next) => { if (!ctx.Request.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase) && options.AdminSecurityConfiguration.RequireSsl) { ctx.Response.Write("HTTPS required"); } else { await next(); } }); var container = AutofacConfig.Configure(options); app.Use <AutofacContainerMiddleware>(container); if (!options.DisableSecurity) { options.AdminSecurityConfiguration.Configure(app); } if (!options.DisableUserInterface) { app.UseFileServer(new FileServerOptions { RequestPath = new PathString("/assets"), FileSystem = new EmbeddedResourceFileSystem(typeof(IdentityAdminAppBuilderExtensions).Assembly, "IdentityAdmin.Assets") }); app.UseFileServer(new FileServerOptions { RequestPath = new PathString("/assets/libs/fonts"), FileSystem = new EmbeddedResourceFileSystem(typeof(IdentityAdminAppBuilderExtensions).Assembly, "IdentityAdmin.Assets.Content.fonts") }); app.UseStageMarker(PipelineStage.MapHandler); } SignatureConversions.AddConversions(app); app.UseWebApi(WebApiConfig.Configure(options)); app.UseStageMarker(PipelineStage.MapHandler); // clears out the OWIN logger factory so we don't recieve other hosting related logs app.Properties["server.LoggerFactory"] = null; }