Microsoft 提供了多种方法来获得对 Azure Key Vault 机密的安全访问,特别是使用托管标识或服务主体作为标识提供者。但是,这些方法明确设计为使用基于 Azure 的资源,例如 Web 应用程序和微服务。它们不适用于 UWP/WinUI 桌面应用程序。
到目前为止,我发现允许 UWP/WinUI 桌面应用程序访问 Key Vault 的唯一方法是将应用程序的 Azure 注册信息(TenentId、ClientId 和 ClientSecret——它们自己的秘密!)加载到环境变量中创建新 SecretClient 对象 (Azure.Security.KeyVault.Secrets) 时的 DefaultAzureCredential() 方法。
但这意味着我需要将这些秘密存储在代码或配置文件中,以便在运行时读取。绝对不是最佳实践!我肯定错过了什么。
2020 年 UWP/WinUI 桌面应用程序安全访问 Key Vault 机密而不在此过程中暴露其他机密的最佳做法是什么?