簡體   English   中英

無法從C#MVC應用程序請求Azure資源管理器

[英]Can't request Azure Resource Manager from c# MVC application

我正在開發一個MVC應用程序,該應用程序應獲取有關經過身份驗證的用戶擁有的所有Azure資源的信息。

我在多個組織模式下從Visual Studio Wizzard執行身份驗證部分。

所以我反對: https : //login.microsoftonline.com/common

現在,我需要從應用程序的控制器獲取訪問令牌。 我試圖從該代碼中獲取身份驗證令牌:

   ClientCredential cc = new ClientCredential(_clientId, _servicePrincipalPassword);

   AuthenticationContext context = new 
   AuthenticationContext("https://login.microsoftonline.com/common");
   var result = await context.AcquireTokenAsync("https://management.azure.com/", cc);
   return result.AccessToken;

我得到一個令牌,但是使用它時會收到一個InvalidAuthenticationToken。 我的令牌缺少以下聲明之一:“ puid”,“ altsecid”或“ oid”。

我不知道該怎么辦,需要一些幫助。 我很確定幾天前可以運行此代碼。

我正在開發一個MVC應用程序,該應用程序應獲取有關經過身份驗證的用戶擁有的所有Azure資源的信息。

根據您的代碼,您正在使用客戶端憑據流通過應用程序身份進行身份驗證,因為應用程序身份驗證意味着沒有用戶參與。 為了滿足您的要求,您可以使用OAuth 2.0授權代碼流 是一個代碼示例,該示例演示如何構建使用Azure AD調用Web API的多租戶SaaS Web應用程序。

在代碼示例的Startup.Auth.cs中, AuthorizationCodeReceived通知可用於獲取ARM rest api的令牌。 SecurityTokenValidated通知包含自定義調用者驗證邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM