Example #1
0
 public SamlMetadataExposeLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, ITenantRepository tenantRepository, Saml2ConfigurationLogic saml2ConfigurationLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings                = settings;
     this.logger                  = logger;
     this.tenantRepository        = tenantRepository;
     this.saml2ConfigurationLogic = saml2ConfigurationLogic;
 }
Example #2
0
 public SessionLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, ITenantRepository tenantRepository, SingleCookieRepository <SessionCookie> sessionCookieRepository, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings                = settings;
     this.logger                  = logger;
     this.tenantRepository        = tenantRepository;
     this.sessionCookieRepository = sessionCookieRepository;
 }
Example #3
0
 public TrackKeyLogic(FoxIDsSettings settings, TokenCredential tokenCredential, ITenantRepository tenantRepository, ExternalKeyLogic externalKeyLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings         = settings;
     this.tokenCredential  = tokenCredential;
     this.tenantRepository = tenantRepository;
     this.externalKeyLogic = externalKeyLogic;
 }
Example #4
0
 public WController(IWebHostEnvironment environment, IStringLocalizer localizer, FoxIDsSettings settings, SessionLoginUpPartyLogic sessionLogic)
 {
     this.environment  = environment;
     this.localizer    = localizer;
     this.settings     = settings;
     this.sessionLogic = sessionLogic;
 }
Example #5
0
 public FoxIDsRouteBindingMiddleware(RequestDelegate next, FoxIDsSettings settings, ITenantRepository tenantRepository, IConnectionMultiplexer redisConnectionMultiplexer, TokenCredential tokenCredential) : base(next, tenantRepository)
 {
     this.settings                   = settings;
     this.tenantRepository           = tenantRepository;
     this.redisConnectionMultiplexer = redisConnectionMultiplexer;
     this.tokenCredential            = tokenCredential;
 }
 public OidcDiscoveryReadUpLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IConnectionMultiplexer redisConnectionMultiplexer, ITenantRepository tenantRepository, OidcDiscoveryReadLogic oidcDiscoveryReadLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings = settings;
     this.logger   = logger;
     this.redisConnectionMultiplexer = redisConnectionMultiplexer;
     this.tenantRepository           = tenantRepository;
     this.oidcDiscoveryReadLogic     = oidcDiscoveryReadLogic;
 }
Example #7
0
 public SequenceLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IDataProtectionProvider dataProtectionProvider, IDistributedCache distributedCache, LocalizationLogic localizationLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings = settings;
     this.logger   = logger;
     this.dataProtectionProvider = dataProtectionProvider;
     this.distributedCache       = distributedCache;
     this.localizationLogic      = localizationLogic;
 }
 public SamlMetadataReadUpLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IConnectionMultiplexer redisConnectionMultiplexer, ITenantRepository tenantRepository, SamlMetadataReadLogic samlMetadataReadLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings = settings;
     this.logger   = logger;
     this.redisConnectionMultiplexer = redisConnectionMultiplexer;
     this.tenantRepository           = tenantRepository;
     this.samlMetadataReadLogic      = samlMetadataReadLogic;
 }
Example #9
0
 public AccountActionLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, SequenceLogic sequenceLogic, IConnectionMultiplexer redisConnectionMultiplexer, IStringLocalizer localizer, ITenantRepository tenantRepository, SendEmailLogic sendEmailLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings      = settings;
     this.logger        = logger;
     this.sequenceLogic = sequenceLogic;
     this.redisConnectionMultiplexer = redisConnectionMultiplexer;
     this.localizer        = localizer;
     this.tenantRepository = tenantRepository;
     this.sendEmailLogic   = sendEmailLogic;
 }
Example #10
0
 public SamlAuthnDownLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IServiceProvider serviceProvider, ITenantRepository tenantRepository, SequenceLogic sequenceLogic, FormActionLogic formActionLogic, ClaimTransformationsLogic claimTransformationsLogic, Saml2ConfigurationLogic saml2ConfigurationLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings                  = settings;
     this.logger                    = logger;
     this.serviceProvider           = serviceProvider;
     this.tenantRepository          = tenantRepository;
     this.sequenceLogic             = sequenceLogic;
     this.formActionLogic           = formActionLogic;
     this.claimTransformationsLogic = claimTransformationsLogic;
     this.saml2ConfigurationLogic   = saml2ConfigurationLogic;
 }
Example #11
0
 public SamlAuthnDownLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IServiceProvider serviceProvider, ITenantRepository tenantRepository, SequenceLogic sequenceLogic, SecurityHeaderLogic securityHeaderLogic, ClaimTransformLogic claimTransformLogic, SamlClaimsDownLogic samlClaimsDownLogic, ClaimsDownLogic <OidcDownClient, OidcDownScope, OidcDownClaim> claimsDownLogic, Saml2ConfigurationLogic saml2ConfigurationLogic, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings                = settings;
     this.logger                  = logger;
     this.serviceProvider         = serviceProvider;
     this.tenantRepository        = tenantRepository;
     this.sequenceLogic           = sequenceLogic;
     this.securityHeaderLogic     = securityHeaderLogic;
     this.claimTransformLogic     = claimTransformLogic;
     this.samlClaimsDownLogic     = samlClaimsDownLogic;
     this.claimsDownLogic         = claimsDownLogic;
     this.saml2ConfigurationLogic = saml2ConfigurationLogic;
 }
Example #12
0
 public SessionUpPartyLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, SingleCookieRepository <SessionUpPartyCookie> sessionCookieRepository, IHttpContextAccessor httpContextAccessor) : base(settings, httpContextAccessor)
 {
     this.logger = logger;
     this.sessionCookieRepository = sessionCookieRepository;
 }
Example #13
0
 public FoxIDsSaml2AuthnResponse(FoxIDsSettings settings, Saml2Configuration config) : base(config)
 {
     this.settings = settings;
 }
Example #14
0
 public WController(FoxIDsSettings settings)
 {
     this.settings = settings;
 }
Example #15
0
 public CorsPolicyProvider(FoxIDsSettings settings, TelemetryScopedLogger logger, ITenantRepository tenantRepository)
 {
     this.settings         = settings;
     this.logger           = logger;
     this.tenantRepository = tenantRepository;
 }
Example #16
0
 public TrackKeyLogic(FoxIDsSettings settings, KeyVaultClient keyVaultClient, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings       = settings;
     this.keyVaultClient = keyVaultClient;
 }
Example #17
0
 public SendEmailLogic(FoxIDsSettings settings, TelemetryScopedLogger logger, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings = settings;
     this.logger   = logger;
 }
Example #18
0
        public static IServiceCollection AddInfrastructure(this IServiceCollection services, FoxIDsSettings settings, IWebHostEnvironment env)
        {
            services.AddSharedInfrastructure();

            services.AddSingleton <IStringLocalizer, FoxIDsStringLocalizer>();
            services.AddSingleton <IStringLocalizerFactory, FoxIDsStringLocalizerFactory>();
            services.AddSingleton <IValidationAttributeAdapterProvider, LocalizedValidationAttributeAdapterProvider>();

            services.AddScoped <FoxIDsRouteTransformer>();
            services.AddScoped <ICorsPolicyProvider, CorsPolicyProvider>();

            services.AddSingleton <OidcDiscoveryHandlerService>();
            services.AddHostedService <OidcDiscoveryBackgroundService>();

            if (!env.IsDevelopment())
            {
                services.AddSingleton <TokenCredential, DefaultAzureCredential>();
            }
            else
            {
                services.AddSingleton <TokenCredential>(serviceProvider =>
                {
                    return(new ClientSecretCredential(settings.KeyVault.TenantId, settings.KeyVault.ClientId, settings.KeyVault.ClientSecret));
                });
            }

            services.AddHttpContextAccessor();
            services.AddHttpClient();

            var connectionMultiplexer = ConnectionMultiplexer.Connect(settings.RedisCache.ConnectionString);

            services.AddSingleton <IConnectionMultiplexer>(connectionMultiplexer);

            services.AddDataProtection()
            .PersistKeysToStackExchangeRedis(connectionMultiplexer, "data_protection_keys");

            services.AddStackExchangeRedisCache(options => {
                options.Configuration = settings.RedisCache.ConnectionString;
                options.InstanceName  = "cache";
            });

            return(services);
        }
Example #19
0
 public TrackKeyLogic(FoxIDsSettings settings, TokenCredential tokenCredential, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings        = settings;
     this.tokenCredential = tokenCredential;
 }
Example #20
0
 public SessionBaseLogic(FoxIDsSettings settings, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor)
 {
     this.settings = settings;
 }
Example #21
0
        public static IServiceCollection AddInfrastructure(this IServiceCollection services, FoxIDsSettings settings, IWebHostEnvironment env)
        {
            services.AddSharedInfrastructure();

            services.AddSingleton <IStringLocalizer, FoxIDsStringLocalizer>();
            services.AddSingleton <IStringLocalizerFactory, FoxIDsStringLocalizerFactory>();
            services.AddSingleton <IValidationAttributeAdapterProvider, LocalizedValidationAttributeAdapterProvider>();

            services.AddScoped <FoxIDsRouteTransformer>();
            services.AddScoped <ICorsPolicyProvider, CorsPolicyProvider>();

            services.AddSingleton <OidcDiscoveryHandler>();

            if (env.IsProduction())
            {
                services.AddSingleton(serviceProvider =>
                {
                    return(FoxIDsKeyVaultClient.GetManagedClient());
                });
            }
            else
            {
                services.AddTransient <TokenHelper>();
                services.AddSingleton(serviceProvider =>
                {
                    var tokenHelper = serviceProvider.GetService <TokenHelper>();
                    return(FoxIDsKeyVaultClient.GetClient(settings, tokenHelper));
                });
            }

            services.AddHttpContextAccessor();
            services.AddHttpClient();

            services.AddDataProtection()
            .PersistKeysToStackExchangeRedis(ConnectionMultiplexer.Connect(settings.RedisCache.ConnectionString), "data_protection_keys");

            services.AddStackExchangeRedisCache(options => {
                options.Configuration = settings.RedisCache.ConnectionString;
                options.InstanceName  = "cache";
            });

            return(services);
        }