簡體   English   中英

如何將“名為 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 的應用程序注冊和一個秘密。 然后我去訂閱,將角色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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM