繁体   English   中英

在生产中使用 InteractiveBrowserCredential 对 Azure Key Vault 进行身份验证将不起作用

[英]Using InteractiveBrowserCredential to authenticate to Azure Key Vault on production won't work

我想从我的 ASP.NET web 应用程序中读取 Azure Key Vault 的秘密。 为此,我不想对应用程序(服务主体)进行身份验证,而是对单个用户(用户主体)进行身份验证。 从所有可能的凭证类型中,我总结出最好的一种是 InteractiveBrowserCredential:

DefaultAzureCredential ManagedIdentityCredential
环境证书
ClientSecretCredential
证书凭证
用户密码凭据
设备代码凭据
InteractiveBrowserCredential

这是我的代码:

var client = new SecretClient(new Uri(keyVaultUrl), new InteractiveBrowserCredential();
KeyVaultSecret secret = client.GetSecret(secretName);
string password = secret.Value;

这在 localhost 上运行良好 - 系统提示我输入 Azure AD 用户和密码,并且我可以访问保管库。 但是,我注意到这不是我的默认浏览器,而是 IIS Express 工作进程。

1

在生产中运行相同的代码时,我收到以下错误:

Azure.Identity.AuthenticationFailedException:InteractiveBrowserCredential 身份验证失败:当应用程序未在 UserInteractive 模式下运行时显示模式对话框或表单不是有效操作。 指定 ServiceNotification 或 DefaultDesktopOnly 样式以显示来自服务应用程序的通知。 ---> System.InvalidOperationException

Afaik 它应该打开浏览器,而不是模式对话框。 有人可以帮助我了解这里发生了什么吗?

根据错误,您的托管环境不支持UserInteractive model 并且无法自动打开模式对话框或表单。 但是当我们使用InteractiveBrowserCredential进行鉴权时,运行环境应该能够自动打开一个模态对话框或表单,然后我们就可以进行鉴权了。 更多详情,请参阅此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM