获取Azure访问令牌

时间:2018-01-09 07:10:58

标签: azure azure-active-directory access-token

我得到了这个令人讨厌的错误,我不知道我在这里做错了什么。我的代码甚至看起来与此博客上的代码非常相似,但在我的情况下,这不起作用。

GetAzureAccessToken

错误消息

  

"'权威' Uri应该在路径中至少有一个段(即https://// ...)\ r \ nParameter name:authority"

public static string GetAzureAccessToken(string clientId, string clientSecret)
    {
        string tenandId = "{tenandId}";
        string loginUri = $"https://login.windows.net/";

        var authCtx =
            new AuthenticationContext(String.Format(CultureInfo.InvariantCulture, loginUri, tenandId));
        var credential = new ClientCredential(clientId: clientId, clientSecret: clientSecret);

        var result = authCtx.AcquireToken(resource: "https://management.core.windows.net/",
            clientCredential: credential);

        if(result == null)
            throw new InvalidOperationException("Failed to aquire token");

        return result.AccessToken;
    }

1 个答案:

答案 0 :(得分:2)

你定义权限是错误的,它应该是:

var authCtx = new AuthenticationContext(loginUri + tenantId);

另外,我想这并不重要,但我通常会使用https://login.microsoftonline.com/tenant-id作为权限。