internal static AzureKeyVaultSecretStoreOptions Verify(this AzureKeyVaultSecretStoreOptions options) { if (options.KeyVaultBaseUrl == null && options.KeyVaultName != null) { options.KeyVaultBaseUrl = $"https://{options.KeyVaultName.ToLower()}.{(options.EndpointSuffix ?? "vault.azure.net")}"; } ArgCheck.NotNullOrEmpty(nameof(options.KeyVaultBaseUrl), options?.KeyVaultBaseUrl); return(options); }
public static IServiceCollection AddAzureKeyVaultPrivateCertificateStore(this IServiceCollection services, string storeConfigurationKey = "AzureKeyVaultPrivateCertificateStore") { ArgCheck.NotNull(nameof(services), services); ArgCheck.NotNullOrEmpty(nameof(storeConfigurationKey), storeConfigurationKey); return(services.AddSingleton <IPrivateCertificateStore>(serviceProvider => { var configuration = serviceProvider.GetRequiredService <IConfiguration>()?.GetSection(storeConfigurationKey) ?? throw new InvalidOperationException($"Azure key vault store configuration section '{storeConfigurationKey}' not found."); var options = new AzureKeyVaultSecretStoreOptions(); configuration.Bind(options); return new AzureKeyVaultSecretStore(options); })); }