У меня есть следующий код, который извлекает секреты из 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 я извлекаю ClientId
иClientSecret
от Appconfig.
Мне кажется, что хранить эти значения в Appconfig и использовать их небезопасно.Есть ли способ, который я могу удалить из файла конфигурации и получить из любого другого места.Или есть какое-то хорошее решение моей проблемы.
Любой ответ высоко ценится!
PS: Мой сервис для Windows, разработанный в c #