예제 #1
0
 /// <summary>
 /// Instantiates ProxyConnectionInfo with certificate authentication using a certificate retrieved from keyvault
 /// </summary>
 /// <param name="endpoint">Proxy Endpoint</param>
 /// <param name="config">Configuration root for initialization</param>
 /// <param name="vaultName">Key vault name</param>
 public ProxyConnectionInfo(
     string endpoint,
     KeyVaultConfiguration config,
     string vaultName
     ) : this(
         endpoint,
         AuthenticationType.CertificateFromKeyVault
         )
 {
     Vault          = new AzureSecretVault(config);
     CertIdentifier = ThrowIf.NullOrWhiteSpace(vaultName, nameof(vaultName));
 }
        public static async Task InitializeApplicationInsights(this IHostingEnvironment env, GatewayConfiguration configuration)
        {
            //Needs to be done in the initial Startup.Startup() method because Application Insights registers itself prior
            //to ConfigureServices being run
            var instrumentationKeyName = ThrowIf.NullOrWhiteSpace(configuration.KeyVault.InstrumentationKeyName, nameof(configuration.KeyVault.InstrumentationKeyName));

            if (configuration.ApplicationInsights == null)
            {
                configuration.ApplicationInsights = new Shared.Configuration.ApplicationInsights.ApplicationInsightsConfig();
            }

            var secrets = new AzureSecretVault(
                new KeyVaultConfiguration(
                    configuration.ClientId,
                    configuration.ClientSecret,
                    configuration.KeyVault.VaultName
                    )
                );

            configuration.ApplicationInsights.InstrumentationKey = await secrets.Get(instrumentationKeyName).ConfigureAwait(continueOnCapturedContext: false);
        }
예제 #3
0
        public GitHubConfig(IConfigurationRoot config, ILoggerFactory loggerFactory)
        {
            var section = config.GetSection(TokenConfigKey);

            _token = section.Value;
            if (String.IsNullOrEmpty(_token))
            {
                var clientId     = ThrowIf.NullOrWhiteSpace(config[ConfigurationClientIdKey], nameof(ConfigurationClientIdKey));
                var clientSecret = ThrowIf.NullOrWhiteSpace(config[ConfigurationClientSecretKey], nameof(ConfigurationClientSecretKey));
                var vaultName    = ThrowIf.NullOrWhiteSpace(config[ConfigurationVaultNameKey], nameof(ConfigurationVaultNameKey));
                var tokenName    = ThrowIf.NullOrWhiteSpace(config[ConfigurationGithubTokenNameKey], nameof(ConfigurationGithubTokenNameKey));

                var keyVaultConfig = new KeyVaultConfiguration(clientId, clientSecret, vaultName);
                var keyVault       = new AzureSecretVault(keyVaultConfig);
                _token = keyVault.Get(tokenName).Result;
            }

            ThrowIf.NullOrWhiteSpace(_token, TokenConfigKey);
            RepositoryName  = ThrowIf.NullOrWhiteSpace(config[RepositoryNameConfigKey], nameof(RepositoryNameConfigKey));
            RepositoryOwner = ThrowIf.NullOrWhiteSpace(config[RepositoryOwnerConfigKey], nameof(RepositoryOwnerConfigKey));
            _logger         = loggerFactory.CreateLogger <GitHubConfig>();
        }
        public static AzureSecretVault InitializeApplicationInsights(this IHostingEnvironment env, IConfigurationRoot configuration)
        {
            //Needs to be done in the initial Startup.Startup() method because Application Insights registers itself prior
            //to ConfigureServices being run
            var secrets = new AzureSecretVault(
                new KeyVaultConfiguration(
                    configuration["ClientId"],
                    configuration["ClientSecret"],
                    configuration["KeyVault:VaultName"]
                    )
                );

            var instrumentationKey = configuration.GetSection("KeyVault")["InstrumentationKeyName"];

            if (!string.IsNullOrWhiteSpace(instrumentationKey))
            {
                var vaultTask = secrets.Get(instrumentationKey);
                vaultTask.Wait();
                configuration.GetSection("ApplicationInsights")["InstrumentationKey"] = vaultTask.Result;
            }

            return(secrets);
        }