Obteniendo secretos de keyVault de Azure en c #
Tengo el siguiente código, que recupera los secretos de KeyVault.
var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken));
var sec = await kv.GetSecretAsync(ConfigurationManager.AppSettings["SomeURI"]);
secretValue = sec.Value ;
étodo @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;
}
En el método GetToken, voy a buscar elClientId
yClientSecret
de Appconfig.
Siento que no es seguro mantener estos valores en Appconfig y usarlos. ¿Hay alguna manera de eliminarlo del archivo de configuración y buscarlo desde cualquier otro lugar? ¿O hay alguna buena solución posible para mi problema?
¡Cualquier respuesta es muy apreciada!
PS: Mine es un servicio de Windows desarrollado en c #