Azure即时在资源组中有一个密钥保管库。
我们在美国(ME)有一个用户,在另一个国家(FU)有一个用户。
两者的使用有很多共同点,即:
使用相同版本的VS 2017。 运行完全相同的代码。 我们的VS用户帐户是相同的(Azure AD实例中的用户)。
我们正在使用托管身份
如果我在美国运行代码(在VS中以FU身份登录),则可以读取密码并在屏幕上显示。
如果FU(以FU身份登录VS,但在另一个国家/地区登录),则当他运行代码时会引发以下异常
操作返回了无效的状态码“ 未授权”
引发错误的代码行是:
var secret = await keyVaultClient.GetSecretAsync("https://XXXXXXX.vault.azure.net/secrets/username")
.ConfigureAwait(false);
我们都已经安装了Azure CLI 2.0。
但是,我在site上找到了这些规定。
您的本地活动目录已与Azure AD同步。
您正在加入域的计算机上运行此代码。
在我们的情况下,这些都不是正确的。
可能对我们的供应商进行了很好的测试,以便我们允许我远程进入他的计算机并将我的身份放在VS上,然后运行代码。
如果仍然出现错误,则很有可能是我们的问题。
上面的链接说我们可以“ Run the application using a service principal in local development environment”
能解决这个问题吗?
我对Azure和C#相当陌生。任何帮助将不胜感激!