azure - 似乎我从 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.
解决方案
令牌是正确的。你的代码看起来也不错。想到两个可能的原因:
- 仔细检查您使用的身份是否确实可以访问您尝试访问的服务。
- 确保您正确调用了 api。服务/端点有不同的要求。如果您的调用不正确,您可能会得到类似的结果,假设您在需要时没有提供 API 版本。
如果您提供了完整的响应正文以及您提出的完整请求,将会有所帮助。您可以混淆个人数据。
推荐阅读
- rust - Cargo 不会从本地依赖项中获取更改。如何调试/修复?
- c# - 在不同的 Razor 页面区域之间共享页面
- arrays - 在 Numpy Arrays Python 中添加先前和当前索引
- python - 如何使用正则表达式从数据框中的阿拉伯文本中删除某个字母?
- excel - 如何使用单元格内容作为范围地址?
- python - Pandas JSON 规范化嵌套值
- python - 如何在 DRF 中创建发布请求
- kotlin - Kotlin 原生;编译失败:无法运行 msys2-mingw-w64-x86_64-clang-llvm-lld-compiler_rt-8.0.1/bin/clang++
- excel - 删除某个字符后的字符串
- python - 我的 Pygame 精灵不会出现。我的代码有什么问题?