【问题标题】:How does one add the "resource principal named https://management.azure.net" to the default directory in Azure?如何将“名为 https://management.azure.net 的资源主体”添加到 Azure 中的默认目录?
【发布时间】:2021-09-27 04:48:38
【问题描述】:

我想做的事:使用自定义工具中的Azure REST API

我做了什么: 我在我的默认目录中创建了一个名为 CDTester 的应用程序注册和一个秘密。然后我去订阅,将角色 Contributor 添加到 CTTester。

我从 user-secrets 加载了一个配置对象 cfg,其中包含 CDTester 的应用程序 ID 和密钥以及我的默认目录的租户 ID。

现在我尝试像这样进行身份验证:

var app = ConfidentialClientApplicationBuilder
                .Create(cfg.ApplicationId)
                .WithTenantId(cfg.LoginTenantId)
                .WithClientSecret(cfg.ApplicationSecret)
                .Build();
            var authResult = await
                app.AcquireTokenForClient(new[] {"https://management.azure.net/.default"})
                    .ExecuteAsync();

.ExecuteAsynccall 失败 "' AADSTS500011:在名为 的租户中找不到名为 https://management.azure.net 的资源主体。如果租户管理员未安装应用程序或未获得租户中任何用户的同意,则可能会发生这种情况。您可能将身份验证请求发送给了错误的租户。”

作为(弱)替代方案,我向 CDTester 添加了Azure Service Management 委派权限,给予管理员同意,将代码切换为:

            var app = PublicClientApplicationBuilder.Create(cfg.ApplicationId)
                .WithTenantId(cfg.LoginTenantId)
                .WithDefaultRedirectUri()
                .Build();
            var authResult = await app
                .AcquireTokenInteractive(new[] { "https://management.azure.net/user_impersonation" })
                .ExecuteAsync();

运行它,使用我自己的用户(当然是全局管理员)登录并收到相同的消息,这次是在登录后立即在浏览器中。

在此流程中将范围更改为“https://management.azure.net/.default”也不会改变任何内容。

所以,显然我需要以某种方式将资源主体“安装资源主体 https://management.azure.net”到我的租户中 - 但对于我的生活,我找不到如何。

【问题讨论】:

  • 请尝试将https://management.azure.net更改为https://management.azure.com/
  • 如果您将评论更改为答案,我会选择它作为正确答案 - 非常感谢!

标签: c# azure msal


【解决方案1】:

如评论所述,请将https://management.azure.net改为https://management.azure.com/

基本上没有https://management.azure.net 这样的东西。要获取访问令牌以便执行 Azure 资源管理器 API,您需要获取 https://management.azure.com/ 资源的令牌。

【讨论】:

  • 我应该补充一点,“.net”版本来自.AcquireTokenInteractive() 上的 XML doc cmets,所以过去似乎它可能是“.net”并且 MS 忘记更新 doc cmets。
  • 可能是https://management.core.windows.net/。顺便说一句,这仍然有效。
  • 您是否也有机会为stackoverflow.com/questions/68453220/… 提供帮助?
猜你喜欢
  • 2020-12-26
  • 2018-09-13
  • 2014-08-09
  • 2020-05-25
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
相关资源
最近更新 更多