【发布时间】:2017-10-13 14:14:35
【问题描述】:
我正在使用 Microsoft.Azure.keyVault 尝试从 Azure 中的密钥保管库获取机密。
我已将应用程序注册为 Native API 和 Web API。
登录到 AD 成功(可以通过在 AuthenticationContext.AcquireTokenAsync 上获取有效的 AccessToken 来确认这一点)。
在 Azure AD 中,两个应用程序都在 Key Vault 中获得了访问控制 (IAM) 和访问策略。我已经确认 Key Vault Base Url 和 Secret Name 是正确的,但是在进行以下调用时
var sec = kv.GetSecretAsync("https://xxxxxxx.vault.azure.net", "xxsecretnamexx").GetAwaiter().GetResult();
我不断收到错误
{"Operation returned an invalid status code 'Unauthorized'"} Microsoft.Azure.KeyVault.Models.KeyVaultErrorException
一个旁注:尝试通过以用户身份登录来执行此操作。获取token的代码如下
.AcquireTokenAsync(resourceUri,clientId, new Uri(redirectUri), new PlatformParameters(PromptBehavior.SelectAccount))
我们有使用已注册 Azure AD 应用程序的 ID 和密码的工作代码,该应用程序有权访问密钥保管库。
尝试在不使用关联的已注册 Azure AD 应用程序的 ID 和密码的情况下执行相同操作,而是在获取 Azure AD 的访问令牌时显示登录提示。
【问题讨论】:
-
resourceUri的值是多少?
标签: c# azure-active-directory azure-keyvault