[英]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.