微软提供了几种获取 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 密钥的最佳实践是什么 - 而不会同时泄露其他秘密?