无法从 c# MVC 应用程序请求 Azure 资源管理器
Can't request Azure Resource Manager from c# MVC application
我正在开发一个 MVC 应用程序,它应该获取有关经过身份验证的用户拥有的所有 Azure 资源的信息。
我在多组织模式下从 Visual Studio 向导执行身份验证部分。
所以我反对: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'.
我不知道该怎么办,需要一些帮助。
我很确定这段代码几天前就可以工作了。
I am developing an MVC application that should get informations about all Azure Resource an authenticated user have.
根据您的代码,您正在使用客户端凭据流通过应用程序身份进行身份验证,作为应用程序进行身份验证意味着没有用户参与。要实现您的要求,您可以使用 OAuth 2.0 authorization code flow . Here 是一个代码示例,该代码示例如何构建使用 Azure AD 调用 Web API 的多租户 SaaS Web 应用程序。
在代码示例的 Startup.Auth.cs 中,AuthorizationCodeReceived
通知可用于为 ARM rest api 获取令牌。 SecurityTokenValidated
通知包含自定义调用方验证逻辑。
我正在开发一个 MVC 应用程序,它应该获取有关经过身份验证的用户拥有的所有 Azure 资源的信息。
我在多组织模式下从 Visual Studio 向导执行身份验证部分。
所以我反对: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'.
我不知道该怎么办,需要一些帮助。 我很确定这段代码几天前就可以工作了。
I am developing an MVC application that should get informations about all Azure Resource an authenticated user have.
根据您的代码,您正在使用客户端凭据流通过应用程序身份进行身份验证,作为应用程序进行身份验证意味着没有用户参与。要实现您的要求,您可以使用 OAuth 2.0 authorization code flow . Here 是一个代码示例,该代码示例如何构建使用 Azure AD 调用 Web API 的多租户 SaaS Web 应用程序。
在代码示例的 Startup.Auth.cs 中,AuthorizationCodeReceived
通知可用于为 ARM rest api 获取令牌。 SecurityTokenValidated
通知包含自定义调用方验证逻辑。