繁体   English   中英

如何通过凭据使用ResourceManagementClient从Azure资源组C#获取所有资源?

[英]How to pass credentials to use ResourceManagementClient to get all resources from azure resource group c#?

我已经安装了nuget Microsoft.Azure.Management.ResourceManager并具有以下代码来根据Resource Group Name获取所有现有资源

 var resouceManagementClient = new ResourceManagementClient(credentials) { SubscriptionId = "mySubscriptionId" };

            var listResources =
            resouceManagementClient.ResourceGroups.ListResources("Demo-ResourceGroup");

我不确定从哪里可以获取credentials参数值。

我没有Azure Active Directory访问权限,我认为这是必须的,我们可以绕开Azure AD吗?

在我的Azure门户中,我create a Resource Group - Demo-ResourceGroupmany resources created

我只想使用c#代码列出所有现有资源。

一种方法是通过从Azure AD获取访问令牌并将其传递给TokenCredentials类。

var authContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", tenantId));
var credential = new ClientCredential(applicationId, password);
AuthenticationResult token = authContext.AcquireTokenAsync("https://management.core.windows.net/", credential).Result;
var credentials = new TokenCredentials(token.AccessToken);

您用于请求acces令牌的凭据集(在本例中为clientId / secret)将确定应用程序是否具有适当的权限来枚举资源。 这是一个不错的MS docs页面,介绍如何向AAD注册您的应用程序 在上面的示例中,applicationId和password来自AAD中的应用程序注册

Microsoft的页面描述了从AAD获取令牌的其他方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM