【发布时间】:2018-10-01 05:19:50
【问题描述】:
我有以下代码,它从 KeyVault 检索秘密。
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken));
var sec = await kv.GetSecretAsync(ConfigurationManager.AppSettings["SomeURI"]);
secretValue = sec.Value ;
GetToken 方法:
async Task<string> GetToken(string authority, string resource, string scope)
{
var authContext = new AuthenticationContext(authority);
ClientCredential clientCred = new ClientCredential(ConfigurationManager.AppSettings["ClientId"],ConfigurationManager.AppSettings["ClientSecret"]);
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);
if (result == null)
throw new InvalidOperationException("Failed to obtain the token");
return result.AccessToken;
}
在 GetToken 方法中,我从 Appconfig 获取 ClientId 和 ClientSecret。
我觉得将这些值保留在 Appconfig 中并使用它们是不安全的。有没有办法可以从配置文件中删除并从其他任何地方获取。或者我的问题有什么好的解决方案。
非常感谢任何回应!
PS:我的是用c#开发的windows服务
【问题讨论】:
标签: c# azure azure-keyvault