You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于AzureRM与C#结合开发的若干技术问题咨询

问题解答

1. Graph API获取的UserID是否可用于AzureRM场景

完全可以,不存在兼容问题。你从Graph API拿到的用户id字段,和Azure Resource Manager(也就是你提到的AzureRM)体系内的用户主体ID是同一个Entra ID(原Azure AD)全局唯一标识符,所有ARM接口要求传入用户ID的场景都可以直接使用这个值。

2. AzureRM(ARM)场景下C#实现az login等价逻辑

不用单独实现登录逻辑,微软官方提供了统一的身份验证库Azure.Identity,可以同时支持调用Graph API和ARM API,完全覆盖你单租户应用的需求,比自己拼接认证逻辑安全且稳定。
你需要先安装对应的NuGet包:

  • Azure.Identity:统一身份凭证库
  • Azure.ResourceManager:ARM核心SDK
  • Azure.ResourceManager.Resources:订阅、资源组等基础资源操作SDK

交互式登录(和az login弹浏览器登录效果完全一致)示例代码:

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;

// 单租户场景指定租户ID
var tenantId = "你的单租户ID";
// 初始化交互式登录凭证,会自动弹出浏览器让用户登录
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions
{
    TenantId = tenantId
});

// 初始化ARM客户端
ArmClient armClient = new ArmClient(credential);

如果你需要用非交互式的自动登录(比如服务账号场景),可以换成ClientSecretCredential(服务主体密钥登录)、ManagedIdentityCredential(托管身份登录)等凭证类,用法完全一致,不需要修改后续的业务调用代码。

3. C#获取ARM Auth Token、拉取订阅信息

用上面初始化好的credential对象就能直接获取ARM的token,拉取订阅也可以直接用ARM SDK的原生方法,不需要自己调用接口:

获取ARM Token示例:

// ARM API的固定scope
var armScope = new[] { "https://management.azure.com/.default" };
var tokenResult = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(armScope));
string armAuthToken = tokenResult.Token;

拉取当前登录账号所有可用订阅示例:

await foreach (SubscriptionResource subscription in armClient.GetSubscriptions().GetAllAsync())
{
    Console.WriteLine($"订阅名称:{subscription.Data.DisplayName},订阅ID:{subscription.Data.SubscriptionId}");
}

4. 认知纠正和学习方向

  • 你提到的AzureRM PowerShell模块已经在2024年2月正式停止维护,对应的C#老版Microsoft.Azure.Management.*系列SDK也已废弃,建议直接使用新版Azure.ResourceManager系列SDK进行开发,避免踩停止维护组件的坑。
  • Azure.Identity是微软官方统一的Azure服务身份验证库,不管是调用ARM、Graph、Azure存储、Azure SQL等所有Azure服务的API,都可以用同一个凭证对象获取对应服务的token,不需要为不同API做多套登录逻辑,是所有Azure C#开发的基础组件,建议优先熟悉这个库的用法。
  • 单租户场景下,所有API的身份体系都基于Entra ID,不存在Graph和ARM两套用户体系的差异,二者可以完全协同使用,不需要做ID转换之类的额外操作。

内容的提问来源于stack exchange,提问作者Brandon Cross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:24:05