簡體   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