diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationKeyVaultOptions.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationKeyVaultOptions.cs index 2bdacb5a..7d32f3a7 100644 --- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationKeyVaultOptions.cs +++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureAppConfigurationKeyVaultOptions.cs @@ -15,6 +15,7 @@ namespace Microsoft.Extensions.Configuration.AzureAppConfiguration public class AzureAppConfigurationKeyVaultOptions { internal TokenCredential Credential; + internal SecretClientOptions ClientOptions = new SecretClientOptions(); internal List SecretClients = new List(); internal Func> SecretResolver; internal Dictionary SecretRefreshIntervals = new Dictionary(); @@ -31,6 +32,17 @@ public AzureAppConfigurationKeyVaultOptions SetCredential(TokenCredential creden return this; } + /// + /// Configures the client options used when connecting to key vaults that have no registered . + /// The client options will not affect instances registered via . + /// + /// A callback used to configure secret client options. + public AzureAppConfigurationKeyVaultOptions ConfigureClientOptions(Action configure) + { + configure?.Invoke(ClientOptions); + return this; + } + /// /// Registers the specified instance to use to resolve key vault references for secrets from associated key vault. /// diff --git a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs index 6c8f4ec2..86e61429 100644 --- a/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs +++ b/src/Microsoft.Extensions.Configuration.AzureAppConfiguration/AzureKeyVaultReference/AzureKeyVaultSecretProvider.cs @@ -115,8 +115,13 @@ private SecretClient GetSecretClient(Uri secretUri) return null; } - client = new SecretClient(new Uri(secretUri.GetLeftPart(UriPartial.Authority)), _keyVaultOptions.Credential); + client = new SecretClient( + new Uri(secretUri.GetLeftPart(UriPartial.Authority)), + _keyVaultOptions.Credential, + _keyVaultOptions.ClientOptions); + _secretClients.Add(keyVaultId, client); + return client; }