Add project files.
This commit is contained in:
35
Core.Blueprint.KeyVault/Configuration/RegisterBlueprint.cs
Normal file
35
Core.Blueprint.KeyVault/Configuration/RegisterBlueprint.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using Azure.Identity;
|
||||
using Azure.Security.KeyVault.Secrets;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Core.Blueprint.KeyVault.Configuration
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers the SecretClient for Azure Key Vault as a singleton service.
|
||||
/// </summary>
|
||||
/// <param name="services">The IServiceCollection to add the services to.</param>
|
||||
/// <param name="configuration">The application's configuration.</param>
|
||||
/// <returns>The updated IServiceCollection.</returns>
|
||||
/// <exception cref="ArgumentNullException">Thrown when the KeyVault URI is missing in the configuration.</exception>
|
||||
public static class RegisterBlueprint
|
||||
{
|
||||
public static IServiceCollection AddKeyVault(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var keyVaultUriString = configuration["ConnectionStrings:KeyVaultDAL"];
|
||||
|
||||
if (string.IsNullOrEmpty(keyVaultUriString))
|
||||
{
|
||||
throw new ArgumentNullException("ConnectionStrings:KeyVault", "KeyVault URI is missing in the configuration.");
|
||||
}
|
||||
|
||||
var keyVaultUri = new Uri(keyVaultUriString);
|
||||
|
||||
// Register SecretClient as a singleton
|
||||
services.AddSingleton(_ => new SecretClient(keyVaultUri, new DefaultAzureCredential()));
|
||||
|
||||
services.AddSingleton<IKeyVaultProvider, KeyVaultProvider>();
|
||||
return services;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user