/// <summary> /// Default constructor. /// </summary> /// <param name="providerConfiguration">Configuration of the current authentication provider.</param> /// <param name="deviceHiveConfiguration">DeviceHiveConfiguration object.</param> /// <param name="dataContext">DataContext object.</param> public GoogleAuthenticationProvider(AuthenticationProviderConfiguration providerConfiguration, DeviceHiveConfiguration deviceHiveConfiguration, DataContext dataContext) : base(providerConfiguration, deviceHiveConfiguration, dataContext) { if (string.IsNullOrEmpty(providerConfiguration.ClientId) || string.IsNullOrEmpty(providerConfiguration.ClientSecret)) throw new ArgumentException("GoogleAuthenticationProvider: please specify clientId and clientSecret in the configuration!"); }
public static AuthenticationInformationBuilder UseAuthenticationProvider( this AuthenticationInformationBuilder builder, AuthenticationProviderConfiguration configuration) { var parameters = builder.AuthenticationInformation.TokenValidationParameters; builder.AuthenticationInformation.Issuer = configuration.Issuer; builder.AuthenticationInformation.AuthorizationEndpoint = configuration.AuthorizationEndpoint; builder.AuthenticationInformation.TokenEndpoint = configuration.TokenEndpoint; builder.AuthenticationInformation.RequireHttpsMetadata = configuration.RequireHttpsMetadata; builder.AuthenticationInformation.ServiceClientId = configuration.ServiceClientId; builder.AuthenticationInformation.ServiceClientSecret = configuration.ServiceClientSecret; parameters.ValidAudiences = new[] { configuration.Audience }; parameters.ValidIssuer = configuration.Issuer; parameters.IssuerSigningKey = null; parameters.IssuerSigningKeyResolver = (token, securityToken, kid, parameters) => { var configurationManager = new ConfigurationManager <OpenIdConnectConfiguration>( $"{parameters.ValidIssuer}.well-known/openid-configuration", new OpenIdConnectConfigurationRetriever(), new HttpDocumentRetriever { RequireHttps = configuration.RequireHttpsMetadata }); var openIdConfig = configurationManager.GetConfigurationAsync(CancellationToken.None).GetAwaiter().GetResult(); return(openIdConfig.SigningKeys); }; return(builder); }
/// <summary> /// Default constructor. /// </summary> /// <param name="providerConfiguration">Configuration of the current authentication provider.</param> /// <param name="deviceHiveConfiguration">DeviceHiveConfiguration object.</param> /// <param name="dataContext">DataContext object.</param> public GoogleAuthenticationProvider(AuthenticationProviderConfiguration providerConfiguration, DeviceHiveConfiguration deviceHiveConfiguration, DataContext dataContext) : base(providerConfiguration, deviceHiveConfiguration, dataContext) { if (string.IsNullOrEmpty(providerConfiguration.ClientId) || string.IsNullOrEmpty(providerConfiguration.ClientSecret)) { throw new ArgumentException("GoogleAuthenticationProvider: please specify clientId and clientSecret in the configuration!"); } }
/// <summary> /// Default constructor. /// </summary> /// <param name="name">Authentication provider name.</param> /// <param name="provider">Authentication provider instance.</param> /// <param name="configuration">Authentication provider configuration.</param> internal AuthenticationProviderInfo(string name, AuthenticationProvider provider, AuthenticationProviderConfiguration configuration) { Name = name; Provider = provider; Configuration = configuration; }
/// <summary> /// Default constructor. /// </summary> /// <param name="providerConfiguration">Configuration of the current authentication provider.</param> /// <param name="deviceHiveConfiguration">DeviceHiveConfiguration object.</param> /// <param name="dataContext">DataContext object.</param> public PasswordAuthenticationProvider(AuthenticationProviderConfiguration providerConfiguration, DeviceHiveConfiguration deviceHiveConfiguration, DataContext dataContext) : base(providerConfiguration, deviceHiveConfiguration, dataContext) { _maxLoginAttempts = deviceHiveConfiguration.Authentication.MaxLoginAttempts; }