azure - 团体超龄索赔
问题描述
我收到针对 Azure AD 进行身份验证的用户的组超额索赔。如下所示:
{"src1":{"endpoint":"https://graph.windows.net/TENANTID/users/USERID/getMemberObjects"}}
我的想法是我可以调用那个端点,我确实喜欢:
var authenticationContext =
new AuthenticationContext(
ctx.Options.Authority);
var clientCredentials =
new ClientCredential(ctx.Options.ClientId, ctx.Options.ClientSecret);
var result =
await authenticationContext.AcquireTokenAsync("https://graph.windows.net", clientCredentials);
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {result.AccessToken}");
var httpResponse =
await httpClient.GetAsync("https://graph.windows.net/TENANTID/users/USERID/getMemberObjects?api-version=1.6");
var jsonresult =
await httpResponse.Content.ReadAsStringAsync();
}
我认为这会起作用,但不是在抱怨它希望该方法成为Post
. 不确定我会为 Content 传递什么,但它在 Postman 中尝试过,但仍然失败。
我希望我只是让这变得比它需要的更困难,但是对于我的生活,我找不到一个很好的明确示例来说明如何从 MVC 核心应用程序调用 Graph API。
任何帮助将非常感激!
更新
我将其更改为 aPost
并传入一个null
正文,并收到 codeAuthorization_RequestDenied
和 value的错误Insufficient privileges to complete the operation.
。
确保授予 Application Directory.Read.All 权限。
解决方案
对于 azure ad Graph,您的请求格式不正确,您可以尝试以下方式
请求网址:
https://graph.windows.net/TenantId/users/UserId/getMemberObjects?api-version=1.6
方法类型: POST
请求正文
{
"securityEnabledOnly": false
}
邮递员样本:
所需权限:
权限类型:应用程序
Directory.Read.All Or Directory.ReadWrite.All
看屏幕截图:
有关详细信息,您可以参考这个官方文档
推荐阅读
- collections - 构建字符计数 HashMap 的惯用 Rust 方法是什么?
- javascript - 隐藏所有具有 class= 'contact' 的元素并仅保留 5 个 JavaScript 项
- python - How do I generate barplots showing gene expression data?
- java - How to extract default namespace value from XML in Java or Xpath?
- amazon-web-services - AWS SQS FIFO Queue: How to set MessageGroupId on Send Message component of Mule 4
- python - 如何在时间序列数据框中获取下一个可用日期
- android - How to verify website users using smartphone fingerprint authentication or face recognition?
- open-policy-agent - 将 opa http.send 与 conftest 一起使用
- django - Django Add Record invalid literal for int() with base 10
- javascript - 在函数中使用 var 关键字声明变量。为什么在幕后未定义