[英]Using Azure Active Directory with Azure Key Vault
我仍在学习 Azure Key Vault。
这是设置:我有一个 Windows 服务,需要访问密码。 出于安全原因,密码将存储在 AKV 中。
然后使用 Azure 门户创建 AKV 资源,以及将存储密码 (TheSecret) 的“秘密”。
然后添加权限,以便我的 AD 登录可以访问 TheSecret。
据我所知,Azure 端设置正确。
现在我尝试从控制台应用程序访问 TheSecret。
这是基于文档中示例代码的代码:
var keyVaultUrl = @"https://css-key-vault.vault.azure.net/secrets/TheSecret/<TheGuid>";
var client = new SecretClient(new Uri(keyVaultUrl), new DefaultAzureCredential();
KeyVaultSecret theSecret = client.GetSecret("TheSecret");
Console.WriteLine($"Secret is returned with name {theSecret.Name} and value {theSecret.Value}");
当我运行它时,我得到一个 404 错误。
如果我将 URL 放入浏览器中,它会返回以下消息:
{"error":{"code":"Unauthorized","message":"AKV10000: Request is missing a Bearer or PoP token."}}
我怎样才能让它工作?
我期望当 Windows 服务运行时,该服务将使用它正在运行的 Windows 帐户,并以某种方式将此凭据信息传递给 Azure 以授权获取秘密并授权但我不清楚需要做什么才能将此信息传递给 Azure。 如果有其他方法可以做到这一点,我也对此持开放态度。
问题与此行有关:
var client = new SecretClient(new Uri(keyVaultUrl), new DefaultAzureCredential();
使用 DefaultAzureCredential 时,它假定存在关联的托管标识,该标识将用于检索访问令牌以对请求进行身份验证/授权。
对于控制台应用程序,您需要从 Azure AD 检索令牌,并使用它:
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-netcore-daemon
PS:您需要为此在您的广告中创建一个应用程序/密码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.