public AzureKeyVaultSettingsProvider(AzureKeyVaultSettingsProviderOptions options) { _options = options; _config = _options.ConfigurationManager; if (_config != null) { var providers = _config.GetProviders(Name); _config.RegisterSetting(_options.KeyVaultUriKey, defaultvalue: string.IsNullOrWhiteSpace(_options.KeyVaultUri) ? null : _options.KeyVaultUri, providers: providers); if (options.UseKeyVaultCredentialsKey) { _config.RegisterSetting(_options.KeyVaultCredentialsKey, converter: _options.SecretConverter ?? NoEncrypter, providers: providers); } else { _config.RegisterSetting(_options.AzureApplicationClientIdKey, defaultvalue: string.IsNullOrWhiteSpace(_options.ClientId) ? null : _options.ClientId, providers: providers); _config.RegisterSetting(_options.AzureApplicationClientSecretKey, defaultvalue: string.IsNullOrWhiteSpace(_options.ClientSecret) ? null : _options.ClientSecret, converter: _options.SecretConverter ?? NoEncrypter, providers: providers); } } keyVaultClient = new Lazy <KeyVaultClient>(() => { return(new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetAccessToken))); }); allSecrets = new ResetLazy <SecretItem[]>(() => { Logger.Trace("Fetching all settings metadata"); var secrets = Task.Run(() => this.keyVaultClient.Value.GetSecretsAsync(this.KeyVaultUri)).GetAwaiter().GetResult(); var secretsValue = secrets.ToArray(); Logger.TraceFormat("Found {0} settings: {1}", secretsValue.Length, string.Join(", ", secretsValue.Select(s => string.Format("{0}={1}", s.Id, s.Attributes.Updated)))); return(secretsValue); }); }
public static ConfigurationManager UseAzureKeyVault(this ConfigurationManager manager, AzureKeyVaultSettingsProviderOptions options) { // RegisterSetting(AzureKeyVaultDefaults.DefaultAzureADClientSecretKey, converter: CryptoHelper.DecryptEnvelop); options.ConfigurationManager = manager; manager.AddSettingsProvider(new AzureKeyVaultSettingsProvider(options), options.LoadingOrder); return(manager); }