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 static IServiceCollection AddWebApi(this IServiceCollection services, IConfiguration config, IWebHostEnvironment env) { 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.RivaSignalRApiResource.Name, authAppSettings.Authority, AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name, keyVaultAppSettings.SigningCredentialCertificateName); var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaSignalRApiResource.Name); var swaggerExtensionConfig = new SwaggerExtensionConfig(ApiResourcesConstants.RivaSignalRApiResource.Name, swaggerAppSettings.IdentityUrl); var webApiExtensionConfig = new WebApiExtensionConfig(env, typeof(Startup).GetTypeInfo().Assembly, authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig, typeof(Startup).Assembly, typeof(Startup).Assembly); return(services.AddWebApi(webApiExtensionConfig)); }
public static IServiceCollection AddAuthorization(this IServiceCollection services, AuthorizationExtensionConfig config) { return(services .AddSingleton <IAuthorizationHandler, UserSystemAuthorizationHandler>() .AddSingleton <IAuthorizationHandler, AdministratorSystemAuthorizationHandler>() .AddSingleton <IAuthorizationHandler, SystemAuthorizationHandler>() .AddAuthorization(options => { var policyBuilder = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .RequireClaim(JwtClaimTypes.Scope, config.ApiResourceName) .AddAuthenticationSchemes(AuthenticationExtension.JwtBearerAuthenticationScheme); var userPolicy = policyBuilder .RequireRole(DefaultRoleEnumeration.User.DisplayName) .Build(); var userSystemPolicy = policyBuilder .AddRequirements(new UserSystemRequirement()) .Build(); var administratorPolicy = policyBuilder .RequireRole(DefaultRoleEnumeration.Administrator.DisplayName) .Build(); var administratorSystemPolicy = policyBuilder .AddRequirements(new AdministratorSystemRequirement()) .Build(); var systemPolicy = policyBuilder .AddRequirements(new SystemRequirement()) .Build(); options.DefaultPolicy = userPolicy; options.AddPolicy(JwtBearerUserPolicyName, userPolicy); options.AddPolicy(JwtBearerUserSystemPolicyName, userSystemPolicy); options.AddPolicy(JwtBearerAdministratorPolicyName, administratorPolicy); options.AddPolicy(JwtBearerAdministratorSystemPolicyName, administratorSystemPolicy); options.AddPolicy(JwtBearerSystemPolicyName, systemPolicy); foreach (var policy in config.Policies) { options.AddPolicy(policy.Name, policy.Policy); } })); }
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 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.RivaAnnouncementsApiResource.Name, authAppSettings.Authority, AuthenticationExtension.JwtBearerAuthenticationScheme, keyVaultAppSettings.Name, keyVaultAppSettings.SigningCredentialCertificateName); var authorizationExtensionConfig = new AuthorizationExtensionConfig(ApiResourcesConstants.RivaAnnouncementsApiResource.Name); var swaggerExtensionConfig = new SwaggerExtensionConfig(ApiResourcesConstants.RivaAnnouncementsApiResource.Name, swaggerAppSettings.IdentityUrl); var webApiExtensionConfig = new WebApiExtensionConfig(Env, typeof(Startup).GetTypeInfo().Assembly, authorizationExtensionConfig, authenticationExtensionConfig, swaggerExtensionConfig, typeof(Startup).Assembly, typeof(RoomForRentAnnouncementProfile).Assembly); services .AddWebApiForIntegrationTest(webApiExtensionConfig) .AddHttpContextAccessor() .AddHealthChecks(Config) .AddCosmonaut(Config) .AddAppSettings(Config) .AddDependencies(); }