簡體   English   中英

Azure管理API產生403錯誤

[英]Azure Management API produces 403 error

我正在嘗試使用Azure Management API獲取指標數據。 但是,它拋出403異常。 有誰知道為什么這個代碼行不通? 我覺得這段代碼非常簡單,基於MSDN文章,但仍然拋出403。非常感謝您的幫助!

    private string GetAccessToken()
    {
        var authenticationContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", TenantID));
        var credential = new ClientCredential(clientId: AppID, clientSecret: SecretKey);
        var result = authenticationContext.AcquireToken(resource: "https://management.core.windows.net/", 
            clientCredential: credential);

        if (result == null)
        {
            throw new InvalidOperationException("Failed to obtain the JWT token");
        }

        string token = result.AccessToken;
        return token;
    }

...

        using (var client = new HttpClient())
        {
            string header = GetAccessToken();

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
    "Bearer", header

    );

            if (! resourceID.StartsWith("/"))
            {
                resourceID = "/" + resourceID;
            }

            string url = "https://management.azure.com" + resourceID +
                "/providers/microsoft.insights/metricdefinitions?api-version=2016-03-01";
            var response = client.GetStringAsync(url).Result;

            return response;
        }

請嘗試創建服務主體並將相應角色分配給服務主體。 我們可以使用PowerShell輕松創建它。 有關如何獲取訪問令牌的更多信息,請參閱本文

New-AzureRmADServicePrincipal -ApplicationId $app.ApplicationId

New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $app.ApplicationId.Guid

由於我在資源中沒有metricdefinitions信息,因此當我嘗試獲取度量標准信息時會出現404錯誤。 在嘗試其他API時/providers/microsoft.insights/alertrules?api-version=2016-03-01 它對我來說正常工作。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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