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

如何使用Azure SDK for .Net获取服务主体属性及UWP C#获取应用显示名

问题1:如何使用Azure SDK for .NET获取服务主体属性

使用Azure Resource Manager (ARM) SDK的最新包替代已弃用的Fluent系列包,步骤如下:

  1. 安装NuGet包
    安装以下两个核心包:

    • Azure.Identity:提供多种认证方式
    • Azure.ResourceManager.Graph.Rbac:用于管理Azure AD服务主体
  2. 编写代码获取属性
    通过RbacManagementClient结合认证凭据,可直接查询服务主体的各类属性:

using Azure.Identity;
using Azure.ResourceManager.Graph.Rbac;
using Azure.ResourceManager.Graph.Rbac.Models;

// 替换为你的租户ID和目标服务主体ID
var tenantId = "your-tenant-id";
var targetSpId = "target-service-principal-id";

// 使用DefaultAzureCredential(支持本地开发、Azure托管环境等多种认证场景)
var credential = new DefaultAzureCredential();
var rbacClient = new RbacManagementClient(tenantId, credential);

// 获取指定ID的服务主体
var servicePrincipal = await rbacClient.ServicePrincipals.GetAsync(targetSpId);

// 访问所需属性
Console.WriteLine($"显示名: {servicePrincipal.DisplayName}");
Console.WriteLine($"App ID: {servicePrincipal.AppId}");
Console.WriteLine($"主体类型: {servicePrincipal.ServicePrincipalType}");

问题2:UWP C#项目中获取服务主体的应用显示名(替代HTTP请求的方法)

在UWP环境中,依然可以使用最新的Azure SDK包实现需求,无需直接发送HTTP请求,步骤如下:

  1. 安装NuGet包
    同样安装Azure.Identity和Azure.ResourceManager.Graph.Rbac,注意选择兼容UWP的最新稳定版本。

  2. 适配UWP的认证方式
    UWP更适合使用InteractiveBrowserCredential进行交互式认证,需提前在Azure AD应用注册中配置重定向URI(格式为msal{你的UWP应用客户端ID}://auth)。

  3. 编写UWP代码示例

using Azure.Identity;
using Azure.ResourceManager.Graph.Rbac;
using Azure.ResourceManager.Graph.Rbac.Models;

// 替换为你的租户ID、UWP应用客户端ID和目标服务主体ID
var tenantId = "your-tenant-id";
var uwpClientId = "your-uwp-app-client-id";
var targetSpId = "target-service-principal-id";

// 初始化交互式认证凭据
var credential = new InteractiveBrowserCredential(new InteractiveBrowserCredentialOptions
{
    TenantId = tenantId,
    ClientId = uwpClientId,
    RedirectUri = new Uri($"msal{uwpClientId}://auth")
});

var rbacClient = new RbacManagementClient(tenantId, credential);

// 获取服务主体并提取显示名和App ID
var servicePrincipal = await rbacClient.ServicePrincipals.GetAsync(targetSpId);
string appDisplayName = servicePrincipal.DisplayName;
string appId = servicePrincipal.AppId;
  1. 权限配置
    确保你的UWP应用在Azure AD中被授予Application.Read.All或Directory.Read.All的应用权限(遵循最小权限原则),并完成管理员同意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:25:21