如何在.Net 4.5应用程序中不使用clientId和clientSecret来获取访问令牌?

问题描述 投票:0回答:1

请您在降级或建议删除之前理解我的问题。因为我必须将 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”并在代码中使用?

希望我的问题可以理解。请告诉我。谢谢

azure .net-4.0 .net-4.5 azure-keyvault
1个回答
0
投票

据我所知,常见的方法是将机密(例如访问密钥保管库的机密)存储在环境变量中,然后通过代码访问环境变量。

这有帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.