public override void ConfigureServices(IServiceCollection services) { var authAppSettings = Config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth); var keyVaultAppSettings = Config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault); var swaggerAppSettings = Config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger); var authenticationExtensionConfig = new AuthenticationExtensionConfig(Env, ApiResourcesConstants.RivaIdentityApiResource.Name, authAppSettings.Authority, AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name, keyVaultAppSettings.SigningCredentialCertificateName); var authorizationExtensionConfig = new AuthorizationExtensionConfig( ApiResourcesConstants.RivaIdentityApiResource.Name, ResourceOwnerPolicy.CreateResourceOwnerPolicy()); var swaggerExtensionConfig = new SwaggerExtensionConfig(ApiResourcesConstants.RivaIdentityApiResource.Name, swaggerAppSettings.IdentityUrl); var webApiExtensionConfig = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly, authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig, typeof(Startup).Assembly, typeof(AccountProfile).Assembly); services .AddWebApiForIntegrationTest(webApiExtensionConfig) .AddAuthorizationHandlers() .AddHealthChecks(Config) .AddAppSettings(Config) .AddIntegrationEventBus(Config.GetSectionAppSettings <ConnectionStringsAppSettings>(AppSettingsConstants.ConnectionStrings).CentralServiceBusConnectionString, Config.GetSectionAppSettings <CentralServiceBusAppSettings>(AppSettingsConstants.CentralServiceBus).SubscriptionName) .AddDependencies() .AddDbContext <RivaIdentityDbContext>(SqlServerConfigurator.Configure(services, Config, Env)) .AddDomainEventsStore <RivaIdentityDbContext>() .AddHttpContextAccessor(); }
public virtual void ConfigureServices(IServiceCollection services) { services .AddWebApi(Config, Env) .AddHealthChecks(Config) .AddMemoryCache() .AddDependencies() .AddDbContext <RivaAdministrativeDivisionsDbContext>(SqlServerConfigurator.Configure(services, Config, Env)); }
public virtual void ConfigureServices(IServiceCollection services) { services .AddWebApi(Config, Env) .AddAuthorizationHandlers() .AddHttpContextAccessor() .AddAppSettings(Config) .AddHealthChecks(Config) .AddIntegrationEventBus(Config.GetSectionAppSettings <ConnectionStringsAppSettings>(AppSettingsConstants.ConnectionStrings).CentralServiceBusConnectionString, Config.GetSectionAppSettings <CentralServiceBusAppSettings>(AppSettingsConstants.CentralServiceBus).SubscriptionName) .AddDependencies(Config) .AddDbContext <RivaUsersDbContext>(SqlServerConfigurator.Configure(services, Config, Env)) .AddDomainEventsStore <RivaUsersDbContext>(); }
public virtual void ConfigureServices(IServiceCollection services) { services .AddWebApp(Env) .AddIdentityServer(Config, Env) .AddAuthentication(Config) .AddHealthChecks(Config) .AddAppSettings(Config, Env) .AddIntegrationEventBus(Config.GetSectionAppSettings <ConnectionStringsAppSettings>(AppSettingsConstants.ConnectionStrings).CentralServiceBusConnectionString) .AddDependencies() .AddDbContext <RivaIdentityDbContext>(SqlServerConfigurator.Configure(services, Config, Env)) .AddDomainEventsStore <RivaIdentityDbContext>() .AddAutoMapper(typeof(Startup).Assembly, typeof(AuthProfile).Assembly) .AddCommunicationBus(typeof(Startup).GetTypeInfo().Assembly); }
public virtual void ConfigureServices(IServiceCollection services) { services .AddWebApi(Config, Env) .AddAuthorizationHandlers() .AddHealthChecks(Config) .AddAppSettings(Config) .AddIntegrationEventBus(Config.GetSectionAppSettings <ConnectionStringsAppSettings>(AppSettingsConstants.ConnectionStrings).CentralServiceBusConnectionString, Config.GetSectionAppSettings <CentralServiceBusAppSettings>(AppSettingsConstants.CentralServiceBus).SubscriptionName) .AddDependencies() .AddDbContext <RivaIdentityDbContext>(SqlServerConfigurator.Configure(services, Config, Env)) .AddScoped(sp => new OperationalStoreOptions { ResolveDbContextOptions = SqlServerConfigurator.Configure(services, Config, Env) }) .AddDbContext <PersistedGrantDbContext>(SqlServerConfigurator.Configure(services, Config, Env)) .AddDomainEventsStore <RivaIdentityDbContext>(); }
public override void ConfigureServices(IServiceCollection services) { var authAppSettings = Config.GetSectionAppSettings <AuthAppSettings>(AppSettingsConstants.Auth); var keyVaultAppSettings = Config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault); var swaggerAppSettings = Config.GetSectionAppSettings <SwaggerAppSettings>(AppSettingsConstants.Swagger); var authenticationExtensionConfig = new AuthenticationExtensionConfig(Env, ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name, authAppSettings.Authority, AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name, keyVaultAppSettings.SigningCredentialCertificateName); var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name); var swaggerExtensionConfig = new SwaggerExtensionConfig(ApiResourcesConstants.RivaAdministrativeDivisionsApiResource.Name, swaggerAppSettings.IdentityUrl); var webApiExtensionConfig = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly, authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig, typeof(Startup).Assembly, typeof(StateProfile).Assembly); services .AddWebApiForIntegrationTest(webApiExtensionConfig) .AddHealthChecks(Config) .AddMemoryCache() .AddDependencies() .AddDbContext <RivaAdministrativeDivisionsDbContext>(SqlServerConfigurator.Configure(services, Config, Env)); }
public static IServiceCollection AddIdentityServer(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env) { var configSqlServer = SqlServerConfigurator.Configure(services, config, env); var builder = services.AddIdentityServer(options => { options.UserInteraction.LoginUrl = "~/auth/login"; options.UserInteraction.LogoutUrl = "~/auth/logout"; options.UserInteraction.ConsentUrl = "~/auth/consent"; options.UserInteraction.ErrorUrl = "~/error"; options.UserInteraction.DeviceVerificationUrl = "~/auth/deviceVerification"; options.Events.RaiseSuccessEvents = true; }) .AddConfigurationStore(options => options.ResolveDbContextOptions = configSqlServer) .AddOperationalStore(options => options.ResolveDbContextOptions = configSqlServer) .AddInMemoryCaching() .AddProfileService <ProfileService>() .AddResourceOwnerValidator <ResourceOwnerPasswordValidator>(); if (env.IsLocalOrDocker()) { builder.AddDeveloperSigningCredential(); } else { var keyVaultAppSettings = config.GetSectionAppSettings <KeyVaultAppSettings>(AppSettingsConstants.KeyVault); var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(new AzureServiceTokenProvider().KeyVaultTokenCallback)); var certificateSecret = keyVaultClient.GetSecretAsync($"https://{keyVaultAppSettings.Name}.vault.azure.net/", keyVaultAppSettings.SigningCredentialCertificateName).GetAwaiter().GetResult(); var privateKeyBytes = Convert.FromBase64String(certificateSecret.Value); var certificate = new X509Certificate2(privateKeyBytes); builder.AddSigningCredential(certificate); } return(services); }