如何将 "resource principal named https://management.azure.net" 添加到 Azure 中的默认目录?
How does one add the "resource principal named https://management.azure.net" to the default directory in Azure?
我想做的事:使用自定义工具中的 Azure REST API。
我做了什么:
我在我的默认目录中创建了一个名为 CDTester 的应用程序注册和一个秘密。然后我去订阅了,给CTTester添加了角色Contributor。
我从 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();
.ExecuteAsync
调用失败,显示
“'
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/
。
本质上没有https://management.azure.net
这样的东西。要获取访问令牌以便您可以执行 Azure 资源管理器 API,您需要获取 https://management.azure.com/
资源的令牌。
我想做的事:使用自定义工具中的 Azure REST API。
我做了什么: 我在我的默认目录中创建了一个名为 CDTester 的应用程序注册和一个秘密。然后我去订阅了,给CTTester添加了角色Contributor。
我从 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();
.ExecuteAsync
调用失败,显示
“'
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/
。
本质上没有https://management.azure.net
这样的东西。要获取访问令牌以便您可以执行 Azure 资源管理器 API,您需要获取 https://management.azure.com/
资源的令牌。