[英]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 工作進程。
在生產中運行相同的代碼時,我收到以下錯誤:
Azure.Identity.AuthenticationFailedException:InteractiveBrowserCredential 身份驗證失敗:當應用程序未在 UserInteractive 模式下運行時顯示模式對話框或表單不是有效操作。 指定 ServiceNotification 或 DefaultDesktopOnly 樣式以顯示來自服務應用程序的通知。 ---> System.InvalidOperationException
Afaik 它應該打開瀏覽器,而不是模式對話框。 有人可以幫助我了解這里發生了什么嗎?
根據錯誤,您的托管環境不支持UserInteractive
model 並且無法自動打開模式對話框或表單。 但是當我們使用InteractiveBrowserCredential
進行鑒權時,運行環境應該能夠自動打開一個模態對話框或表單,然后我們就可以進行鑒權了。 更多詳情,請參閱此處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.