请您在降级或建议删除之前理解我的问题。因为我必须将 REST API 与 .Net Framework 4 和 4.5 一起使用。我的应用程序托管在 Azure(作为应用服务)和 Azure VM 中。
我知道 Azure 有托管身份的概念。但是,我正在尝试使用 REST API 实现从 Azure Key Vault 获取机密。应用程序使用 .Net Framework 4 和 4.5。
代码如下:
string keyVaultUrl = "https://KeyVault.vault.azure.net";
string secretName = "Test";
string tenantId = "tenantId";
string clientId = "clientId";
string clientSecret = "clientSecret Vaule ";
我通过调用自定义方法来获取访问令牌,如下所示:
string accessToken = await GetAccessToken(tenantId, clientId, clientSecret);
上面的代码工作正常。
对我来说,这就像通过暴露另一个秘密来从密钥库中获取一个秘密。
我看到很多帖子都说使用“托管身份”。如前所述,“我必须将 REST API 与 .Net Framework 4 和 4.5 结合使用。我的应用程序托管在 Azure(作为应用服务)和 Azure VM 中。”我相信在这种情况下,“托管身份”不适用 - 特别是当涉及到 REST 和 .Net 4/.net 4.5 时以及当应用程序不支持所需的 Key Vault 和 Entra ID 相关命名空间时(例如 Key Vault) “Microsoft.Azure.KeyVault”命名空间。)
我的问题是存储“clientSecret”的最佳方法是什么,因为它习惯于从密钥保管库获取机密?我可以在哪里存储客户端“clientSecret”并在代码中使用?
希望我的问题可以理解。请告诉我。谢谢
据我所知,常见的方法是将机密(例如访问密钥保管库的机密)存储在环境变量中,然后通过代码访问环境变量。
这有帮助吗?