![](/img/trans.png)
[英]The provided value for the input parameter 'scope' is not valid. The scope 'https://management.azure.com/.default' does not exist
[英]How does one add the “resource principal named https://management.azure.net” to the default directory in Azure?
我想要做的是:使用自定義工具中的Azure REST API 。
我做了什么:我在我的默認目錄中創建了一個名為 CDTester 的應用程序注冊和一個秘密。 然后我去訂閱,將角色Contributor添加到CTTester。
我從用戶機密加載了一個配置對象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/
資源獲取令牌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.