- Na App Service v záložce Identity zapneme System assigned identitu.
- V blob storage, na containeru, přidáme nově založené identitě oprávnění Storage Blob Data Contributor.
- Upravíme aplikaci tak, aby pro přístup k Blob Storage použila svoji identitu (potřebujeme nuget balíček Azure.Identity) a to tak, že použijeme jiný konstruktor třídy BlobContainerClient
string containerEndpoint = $"https://{AzureStorageName}.blob.core.windows.net/{AzureStorageContainerName}";
return new BlobContainerClient(new Uri(containerEndpoint), new Azure.Identity.DefaultAzureCredential());
- Založíme KeyVault (rozhodneme se pro způsob řízení oprávnění).
- Založíme aplikaci v Azure Active Directory (pokud nemůžeme použít vlastní identitu)
- Identitě aplikace přidáme oprávnění čtení Secrets (pro Vault access policy)
- Identitě aplikace přidáme oprávnění pro encrypt a decrypt s Keys (pro Vault access policy)
- Identitě aplikace přidáme oprávnění Key Vault Secrets User (pro RBAC)
- Identitě aplikace přidáme oprávnění Key Vault Crypto User (pro RBAC)
- Do konzolovky dopravíme TenantId, ClientId a ClientSecret (pokud nemůžeme použít vlastní identitu)
- Vyzkoušíme v konzolovce práci se Secrets a Keys
- Identitě aplikace přidáme oprávnění pro listování a čtení Secrets (pro Vault access policy)
- Identitě aplikace přidáme oprávnění Key Vault Secrets User (pro RBAC)
- Použijeme nuget balíček Azure.Extensions.AspNetCore.Configuration.Secrets
- Použijeme provider konfigurace
if (builder.Environment.IsProduction())
{
builder.Configuration.AddAzureKeyVault(new Uri("https://mffdemokeyvault.vault.azure.net"), new Azure.Identity.DefaultAzureCredential());
}