Exemple #1
0
 public AuthClientConfig GetClientConfig(string baseUri)
 {
     string query = @"SELECT * 
                       FROM [TaskTracker].[dbo].[AuthClientConfigs]
                       WHERE BaseUri = @baseUri";
     AuthClientConfig config = null;
     using (var sqlConnection = new SqlConnection(_connectionString))
     {
         SqlCommand command = new SqlCommand(query, sqlConnection);
         command.Parameters.AddWithValue("@baseUri", baseUri);
         sqlConnection.Open();
         SqlDataReader reader = command.ExecuteReader();
         while (reader.Read())
         {
             config = new AuthClientConfig()
             {
                 Id = (int)reader[0],
                 BaseUri = (string)reader[1],
                 Salt = (string)reader[2],
                 ConsumerKey = (string)reader[3],
                 ConsumerSecret = (string)reader[4],
                 Digest = (string)reader[5]
             };
             break;
         }
         reader.Close();
     }
     return config;
 }
Exemple #2
0
 public AppAuthApiService(AuthClientConfig authConfig, IAppAuthClient client, EncryptionSettingsModel encryptionSettings, ILogger <AppAuthApiService> logger)
 {
     _logger            = logger;
     _encryptionService = new EncryptionService(encryptionSettings);
     _client            = client;
     _authConfig        = authConfig;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AuthClient"/> class.
 /// </summary>
 /// <param name="baseAddress">The base address.</param>
 /// <param name="authConfig">The authentication configuration.</param>
 public AuthClient(string baseAddress, AuthClientConfig authConfig)
 {
     if (string.IsNullOrEmpty(baseAddress))
     {
         throw new ArgumentNullException("Invalid base address.");
     }
     if (authConfig == null)
     {
         throw new ArgumentNullException("Invalid AuthClientConfig.");
     }
     _authConfig = authConfig;
     _baseUri    = new Uri(baseAddress.EndsWith("/") ? baseAddress : baseAddress + "/");
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="AuthClient"/> class.
        /// </summary>
        /// <param name="baseUri">The base URI.</param>
        /// <param name="authConfig">The authentication configuration.</param>
        public AuthClient(Uri baseUri, AuthClientConfig authConfig)
        {
            if (baseUri == null)
            {
                throw new ArgumentNullException("Invalid base uri.");
            }
            if (authConfig == null)
            {
                throw new ArgumentNullException("Invalid AuthClientConfig.");
            }

            _authConfig = authConfig;
            _baseUri    = baseUri;
        }
        public static AuthClientConfig GetEnvVariablesForAppAuthApi(IConfiguration config)
        {
            var conf = new AuthClientConfig
            {
                ApiName           = EnvironmentConstants.AppAuthApiName,
                BaseAddress       = GetSingleEnvVariable(EnvironmentConstants.AppAuthApiBaseAddress, config),
                HeaderDefinitions = new Dictionary <string, string>()
                {
                    { "Accept", "application/json" }
                },
                BaseRef   = GetSingleEnvVariable(EnvironmentConstants.PathBase, config),
                AppName   = "<%= namespaceName %>",
                AppSecret = GetSingleEnvVariable(EnvironmentConstants.AppSecret, config)
            };

            return(conf);
        }
Exemple #6
0
        public AppAuthClient(AuthClientConfig appAuthConfig, ILogger <Startup> logger)
        {
            _client = new HttpClient();
            _logger = logger;
            _logger.LogInformation($"App Auth API Config Values:{Environment.NewLine}{appAuthConfig.ToString()}");
            _client.BaseAddress = new Uri(appAuthConfig.BaseAddress);

            if (appAuthConfig.HeaderDefinitions != null)
            {
                foreach (KeyValuePair <string, string> h in appAuthConfig.HeaderDefinitions)
                {
                    _client.DefaultRequestHeaders.Add(h.Key, h.Value);
                }
            }

            _client.DefaultRequestHeaders.TransferEncodingChunked = false;
            //Default to application/json if no header type is specified
            if (_client.DefaultRequestHeaders.Accept.Count == 0)
            {
                _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            }
        }
Exemple #7
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc(options => options.Filters.Add <ExceptionFilter>());

            var authClientSection             = Configuration.GetSection("AuthClient");
            AuthClientConfig authClientConfig = authClientSection.Get <AuthClientConfig>();

            services.Configure <AuthClientConfig>(authClientSection);

            services.AddSingleton <IAuthClient, AuthClient>();

            services.AddAuthentication("Bearer")
            .AddIdentityServerAuthentication(options =>
            {
                options.Authority            = authClientConfig.Authority;
                options.RequireHttpsMetadata = false;
                options.ApiSecret            = authClientConfig.ClientSecret;
                options.ApiName = authClientConfig.DefaultScope;
            });

            services.AddMemoryCache();
        }
Exemple #8
0
 /// <summary>
 /// Initializes the SCA Documents wrapper using a provided SCA base address and a authentication configuration.
 /// </summary>
 /// <param name="baseUri">The SCA platform base address in uri format</param>
 /// <param name="authConfig">An authentication configuration</param>
 public ApiClient(Uri baseUri, AuthClientConfig authConfig) : base(baseUri, authConfig)
 {
 }
Exemple #9
0
 /// <summary>
 /// Initializes the SCA Documents wrapper using a provided SCA base address and a authentication configuration.
 /// </summary>
 /// <param name="baseAddress">The SCA platform base address in string format</param>
 /// <param name="authConfig">An authentication configuration</param>
 public ApiClient(string baseAddress, AuthClientConfig authConfig) : base(baseAddress, authConfig)
 {
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="AuthClient"/> class.
        /// authParameters[0] - basic or cert or jwt or ...
        /// authParameters[1] - baseAddress
        /// authParameters[2] - username or certThumbprint or encodedTokenString or ...
        /// authParameters[3] - password or ...
        /// ...
        /// </summary>
        /// <param name="authParameters">The authentication parameters.</param>
        /// <exception cref="System.Exception">Invalid configurations: basic or cert or jwt auth only are accepted.</exception>
        public AuthClient(params string[] authParameters)
        {
            if (authParameters != null && authParameters.Length > 0)
            {
                if (authParameters.Any(s => string.IsNullOrEmpty(s)))
                {
                    throw new Exception("Invalid configurations: all the arguments must be not null and not empty");
                }
                if (authParameters.Length < 3)
                {
                    throw new Exception("Invalid configurations: all configurations needs at least 3 arguments");
                }

                _baseUri = new Uri(authParameters[1].EndsWith("/") ? authParameters[1] : authParameters[1] + "/");

                switch (authParameters[0])
                {
                case "basic":
                    if (authParameters.Length < 4)
                    {
                        throw new Exception("Invalid configurations: basic configuration needs at least 3 arguments");
                    }

                    _authConfig = new BasicAuthConfig(authParameters[2], authParameters[3]);
                    break;

                case "cert":
                    _authConfig = new CertAuthConfig(authParameters[2]);
                    break;

                case "jwt":
                    _authConfig = new JWTAuthConfig(authParameters[2]);
                    break;

                default:
                    throw new Exception("Invalid configurations: basic or cert or jwt auth only are accepted.");
                }
            }
            else
            {
                var baseAddress = SecuriboxCloudAgentsConfiguration.Current.BaseAddress;
                if (string.IsNullOrEmpty(baseAddress))
                {
                    throw new NullReferenceException("BaseAddress is null or empty.");
                }
                _baseUri = new Uri(baseAddress.EndsWith("/") ? baseAddress : baseAddress + "/");

                if (SecuriboxCloudAgentsConfiguration.Current.AuthMode == "basic")
                {
                    _authConfig = new BasicAuthConfig(SecuriboxCloudAgentsConfiguration.Current.Username, SecuriboxCloudAgentsConfiguration.Current.Password);
                }
                else if (SecuriboxCloudAgentsConfiguration.Current.AuthMode == "cert")
                {
                    _authConfig = new CertAuthConfig(SecuriboxCloudAgentsConfiguration.Current.CertThumbprint);
                }
                else if (SecuriboxCloudAgentsConfiguration.Current.AuthMode == "jwt")
                {
                    var tokenString = SecuriboxCloudAgentsConfiguration.Current.EncodedTokenString;
                    if (!string.IsNullOrEmpty(tokenString))
                    {
                        _authConfig = new JWTAuthConfig(tokenString);
                    }
                    else
                    {
                        var certThumbprint = SecuriboxCloudAgentsConfiguration.Current.CertThumbprint;
                        if (string.IsNullOrEmpty(certThumbprint))
                        {
                            throw new Exception("Invalid configurations: either certThumbprint or encodedTokenString must be provided for jwt authentication.");
                        }
                        var cert = Utils.GetCertificate(certThumbprint);
                        _authConfig = new JWTAuthConfig(cert);
                    }
                }
                else
                {
                    throw new Exception("Invalid configurations: basic, cert or jwt auth only are accepted.");
                }
            }
        }