コード例 #1
0
 /// <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);
    }
コード例 #3
0
 /// <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!");
     }
 }
コード例 #4
0
 /// <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;
 }
コード例 #5
0
 /// <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;
 }
コード例 #6
0
 /// <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;
 }
コード例 #7
0
 /// <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;
 }