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

关于Azure托管标识与应用注册访问控制的技术疑问

关于Azure应用注册实现ADF访问控制的疑问与实验验证

实验基础操作

  • 创建Azure Data Factory资源(名称:otestadf)
  • 创建应用注册(名称:testappreg),过程中生成applicationId与secret

疑问场景

在ADF资源的角色分配列表中未找到testappreg,但执行以下代码却能成功创建令牌及DataFactoryManagementClient实例:

var tenant = "tenant";
var clientId = "client";
var secret = "super_secret";

var client = ConfidentialClientApplicationBuilder
    .Create(clientId)
    .WithClientSecret(secret)
    .WithAuthority($"https://login.windows.net/{tenant}")
    .Build();

var x = client.AcquireTokenForClient(new []{ "https://graph.microsoft.com/.default" });
var accessToken = x.ExecuteAsync().Result.AccessToken; 

ServiceClientCredentials cred = new TokenCredentials(accessToken);
var dmclient = new DataFactoryManagementClient(cred) { SubscriptionId = "sub_id" };

我原以为因未给应用分配ADF访问角色,此操作会失败,这是否与使用https://graph.microsoft.com/.default作为Scope有关?

问题解决验证

将Scope设置为https://management.azure.com/.default后,成功实现ADF流水线运行功能,代码如下:

var cred = new ClientSecretCredential(tenant, clientId, secret);
var ctx = new TokenRequestContext(new string[] { "https://management.azure.com/.default" });
var token = await cred.GetTokenAsync(ctx);
var mgmtToken = new TokenCredentials(token.Token);
var client = new DataFactoryManagementClient(mgmtToken) { SubscriptionId = "SUB_ID" };
var response = await client.Pipelines.CreateRunWithHttpMessagesAsync(
    "test",
    "otestadf",
    "foobar");

ADF运行结果截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 09:05:22