Complete Integration Process
Prerequisites:
- A valid IGETIS Keyvault account
- Access to your Tenant ID, Client ID, and Secret (from the vault platform)
- A working .NET 6+ project
Step 1: Set Up Your Vault Structure
- Create a project in "My API & Keys" (e.g., "MyApp-Production")
- Generate API credentials and export the appsettings.json configuration
- Add secrets to "My Secrets" under the same project
Step 2: Install the NuGet Package
Install the official IGETIS Keyvault package in your .NET project:
dotnet add package IGETIS.Keyvaults.AspNetCore
Step 3: Configure Your .NET Application
1. Add Configuration to appsettings.json:
{
"KeyVaultConfiguration": { "Secrets": "YOUR_SECRET_HERE", "TenantId": "YOUR_TENANT_ID", "ClientId": "YOUR_CLIENT_ID" } }
Notes:
- TenantId: Your unique organization identifier in IGETIS Keyvault
- ClientId: Identifier for your registered application
- Secrets: Generated key from IGETIS Keyvault when creating a resource
2. Configure the vault service in your Program.cs:
var request = new IgetisKeyvaultCredentials
{
Secrets = builder.Configuration.GetSection("KeyVaultConfiguration")["Secrets"],
TenantId = builder.Configuration.GetSection("KeyVaultConfiguration")["TenantId"],
ClientId = builder.Configuration.GetSection("KeyVaultConfiguration")["ClientId"]
};
var client = new IgetisKeyvaults(request); builder.Services.AddHttpClient(); builder.Configuration.AddIgetisRemoteConfiguration(client.GetProjectKeys());
Step 4: Runtime Secret Consumption
- Your application automatically connects to IGETIS Keyvault using the credentials
- All secrets from your vault project are loaded into the configuration at startup
- Access secrets through standard .NET configuration patterns:
// Example: Accessing any secret stored in the vault
var myApiKey = builder.Configuration["MySecretApiKey"];
// Example: Accessing a database connection string var connectionString = builder.Configuration["ConnectionStrings:DefaultConnection"];
// Example: Accessing nested configuration values var emailApiKey = builder.Configuration["EmailSettings:ApiKey"];
Step 5: Environment Management
- Development: Create "MyApp-Development" project with development secrets
- Staging: Create "MyApp-Staging" project with staging secrets
- Production: Create "MyApp-Production" project with production secrets
- Use different appsettings files or environment variables to switch between vault configurations
Benefits of This Approach
Security Benefits:
- No Secrets in Source Code: Sensitive values never appear in your codebase
- No Secrets in Config Files: appsettings.json only contains vault connection info
- Centralized Management: All secrets managed through IGETIS Keyvault interface
- Access Control: Enable/disable access without code deployment
- Audit Trail: Track when secrets are updated through "Last Updates" column
Development Benefits:
- Easy Updates: Change secrets without redeploying applications
- Environment Consistency: Same application code works across all environments
- Team Collaboration: Share access to secrets without sharing values directly
- Configuration Management: Organize secrets by project and environment
- Automatic Loading: Secrets are available immediately through standard .NET Configuration API
Technical Benefits:
- Seamless Integration: Works with existing .NET configuration patterns
- No Code Changes: Access secrets using familiar
builder.Configuration["key"] syntax
- Runtime Loading: Secrets loaded at application startup
- HTTP Client Integration: Built-in HTTP client support for secure communication