Beispiel #1
0
        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();
        }
Beispiel #2
0
 public virtual void ConfigureServices(IServiceCollection services)
 {
     services
     .AddWebApi(Config, Env)
     .AddHealthChecks(Config)
     .AddMemoryCache()
     .AddDependencies()
     .AddDbContext <RivaAdministrativeDivisionsDbContext>(SqlServerConfigurator.Configure(services, Config, Env));
 }
Beispiel #3
0
 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>();
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
 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>();
 }
Beispiel #6
0
        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));
        }
Beispiel #7
0
        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);
        }