public override void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { base.Add(authenticationBuilder, name, schemeRegistrationOptions); authenticationBuilder.AddGrandId(builder => { var grandIdConfiguration = this.GetConfigurationOptions(authenticationBuilder, schemeRegistrationOptions); // ReSharper disable ConvertIfStatementToSwitchStatement if (grandIdConfiguration.Environment == ActiveLoginEnvironment.Simulated) { new GrandIdBuilderWrapper(builder).UseSimulatedEnvironment(grandIdConfiguration.SimulatedPerson); } else { if (grandIdConfiguration.Environment == ActiveLoginEnvironment.Test) { builder.UseTestEnvironment(environmentConfiguration => this.Bind(authenticationBuilder, environmentConfiguration, schemeRegistrationOptions)); } else { builder.UseProductionEnvironment(environmentConfiguration => this.Bind(authenticationBuilder, environmentConfiguration, schemeRegistrationOptions)); } } // ReSharper restore ConvertIfStatementToSwitchStatement this.Add(authenticationBuilder, builder, name, schemeRegistrationOptions); }); }
protected internal virtual X509Certificate2 GetCertificate(ExtendedAuthenticationBuilder authenticationBuilder, DynamicOptions dynamicOptions) { try { if (authenticationBuilder == null) { throw new ArgumentNullException(nameof(authenticationBuilder)); } if (dynamicOptions == null) { throw new ArgumentNullException(nameof(dynamicOptions)); } var resolverOptions = (ResolverOptions)authenticationBuilder.InstanceFactory.Create(dynamicOptions.Type); dynamicOptions.Options?.Bind(resolverOptions); var certificate = authenticationBuilder.CertificateResolver.ResolveAsync(resolverOptions).Result; return(certificate.Unwrap <X509Certificate2>()); } catch (Exception exception) { throw new InvalidOperationException($"Could not get certificate from options with type \"{dynamicOptions?.Type}\".", exception); } }
public override void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { if (schemeRegistrationOptions == null) { throw new ArgumentNullException(nameof(schemeRegistrationOptions)); } this.GetAddFunction(authenticationBuilder)(name, schemeRegistrationOptions.DisplayName, options => { this.Bind(authenticationBuilder, options, schemeRegistrationOptions); }); }
public override void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { if (authenticationBuilder == null) { throw new ArgumentNullException(nameof(authenticationBuilder)); } if (schemeRegistrationOptions == null) { throw new ArgumentNullException(nameof(schemeRegistrationOptions)); } //authenticationBuilder.Services.Configure<CertificateAuthenticationOptions>(name, options => { this.Bind(configuration, options, schemeRegistrationOptions); }); authenticationBuilder.AddCertificate(name, schemeRegistrationOptions.DisplayName, options => { this.Bind(authenticationBuilder, options, schemeRegistrationOptions); }); }
public static ExtendedAuthenticationBuilder AddAuthentication(this IServiceCollection services, ICertificateResolver certificateResolver, IConfiguration configuration, string configurationKey, IInstanceFactory instanceFactory, Action <AuthenticationOptions> postConfigureOptions) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (certificateResolver == null) { throw new ArgumentNullException(nameof(certificateResolver)); } if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (configurationKey == null) { throw new ArgumentNullException(nameof(configurationKey)); } if (instanceFactory == null) { throw new ArgumentNullException(nameof(instanceFactory)); } if (postConfigureOptions == null) { throw new ArgumentNullException(nameof(postConfigureOptions)); } services.AddAuthentication(options => { configuration.GetSection(configurationKey)?.Bind(options); }); var authenticationBuilder = new ExtendedAuthenticationBuilder(services) { CertificateResolver = certificateResolver, Configuration = configuration, ConfigurationKey = configurationKey, InstanceFactory = instanceFactory, }.Configure(); services.PostConfigure(postConfigureOptions); return(authenticationBuilder); }
protected internal virtual void Bind(ExtendedAuthenticationBuilder authenticationBuilder, object instance, SchemeRegistrationOptions schemeRegistrationOptions) { if (authenticationBuilder == null) { throw new ArgumentNullException(nameof(authenticationBuilder)); } if (schemeRegistrationOptions == null) { throw new ArgumentNullException(nameof(schemeRegistrationOptions)); } foreach (var path in schemeRegistrationOptions.CommonOptionsPaths) { authenticationBuilder.Configuration.GetSection(path)?.Bind(instance); } schemeRegistrationOptions.Options?.Bind(instance); }
public override void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { if (authenticationBuilder == null) { throw new ArgumentNullException(nameof(authenticationBuilder)); } authenticationBuilder.Services.Configure <IISOptions>(options => { options.AuthenticationDisplayName = schemeRegistrationOptions.DisplayName; options.AutomaticAuthentication = false; this.Bind(authenticationBuilder, options, schemeRegistrationOptions); }); authenticationBuilder.Services.Configure <IISServerOptions>(options => { options.AuthenticationDisplayName = schemeRegistrationOptions.DisplayName; options.AutomaticAuthentication = false; this.Bind(authenticationBuilder, options, schemeRegistrationOptions); }); }
public override void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { base.Add(authenticationBuilder, name, schemeRegistrationOptions); authenticationBuilder.AddBankId(builder => { var bankIdConfiguration = this.GetConfigurationOptions(authenticationBuilder, schemeRegistrationOptions); //builder.Configure(options => { this.Bind(configuration, options, schemeRegistrationOptions); }); if (bankIdConfiguration.Environment == ActiveLoginEnvironment.Simulated) { new BankIdBuilderWrapper(builder).UseSimulatedEnvironment(bankIdConfiguration.SimulatedPerson); } else { if (bankIdConfiguration.Environment == ActiveLoginEnvironment.Test) { builder.UseTestEnvironment(); } else { builder.UseProductionEnvironment(); } this.ClientCertificate = this.GetCertificate(authenticationBuilder, bankIdConfiguration.ClientCertificate); this.RootCertificate = this.GetCertificate(authenticationBuilder, bankIdConfiguration.RootCertificate); builder.UseClientCertificate(() => this.ClientCertificate); builder.UseRootCaCertificate(() => this.RootCertificate); } builder.UseQrCoderQrCodeGenerator(); this.Add(authenticationBuilder, builder, name, schemeRegistrationOptions); }); }
protected internal abstract void Add(ExtendedAuthenticationBuilder authenticationBuilder, IBankIdBuilder bankIdBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions);
protected internal override void Add(ExtendedAuthenticationBuilder authenticationBuilder, IGrandIdBuilder grandIdBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions) { // ReSharper disable AssignNullToNotNullAttribute grandIdBuilder.AddBankIdSameDevice(name, schemeRegistrationOptions?.DisplayName, options => { this.Bind(authenticationBuilder, options, schemeRegistrationOptions); }); // ReSharper restore AssignNullToNotNullAttribute }
public abstract void Add(ExtendedAuthenticationBuilder authenticationBuilder, string name, SchemeRegistrationOptions schemeRegistrationOptions);