首页 > 解决方案 > 似乎我从 azure ad 获得了错误的不记名令牌,APM API 未经授权

问题描述

var authContext = new AuthenticationContext(Constants.AUTHORITY);
            var credential =
                new ClientCredential(Constants.CLIENT_ID, Constants.CLIENT_SECRET);
            var result = (AuthenticationResult)authContext
                .AcquireTokenAsync(Constants.API_ID_URL, credential)
                .Result;
            var token = result.AccessToken;

            return token;

使用上面的代码获取不记名令牌,我得到错误/不完整的不记名令牌。然后添加到客户端标头中。

 client.DefaultRequestHeaders.Authorization = new
 AuthenticationHeaderValue("Bearer", token); 
 HttpResponseMessage res = client.GetAsync(urlParameters).Result;  
 response is unauthorized.

标签: azureazure-active-directoryasp-net-core-spa-services

解决方案


令牌是正确的。你的代码看起来也不错。想到两个可能的原因:

  • 仔细检查您使用的身份是否确实可以访问您尝试访问的服务。
  • 确保您正确调用了 api。服务/端点有不同的要求。如果您的调用不正确,您可能会得到类似的结果,假设您在需要时没有提供 API 版本。

如果您提供了完整的响应正文以及您提出的完整请求,将会有所帮助。您可以混淆个人数据。


推荐阅读