我无法从Azure密钥保管库检索到在Azure Windows VM中运行的.net控制台应用程序的机密。下面是我使用的代码,并已向服务主体授予密钥库中的所有权限。
var kvc = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(
async (string authority, string resource, string scope) => {
var authContext = new AuthenticationContext(authority);
var credential = new ClientCredential("App id, "secret identifier uri");
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, credential);
if (result == null) {
throw new InvalidOperationException("Failed to retrieve JWT token");
}
return result.AccessToken;
}
));
答案 0 :(得分:1)
请参考Microsoft文档中的this tutorial,在这里您可以找到在Windows VM和.NET中使用Azure Key Vault的正确方法。注意:在此解决方案中,您将使用托管服务标识,而不是传统的服务主体。