我正在收到针对用户根据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 Core应用程序调用Graph API的明确示例。
任何帮助将不胜感激!
更新
我将其更改为Post
并传递到null
正文中,并收到代码为Authorization_RequestDenied
和值Insufficient privileges to complete the operation.
的错误。
确保授予Application Directory.Read.All权限。
答案 0 :(得分:1)
对于天蓝色广告图,您的请求格式不正确,您可以尝试以下方式
请求网址:
https://graph.windows.net/TenantId/users/UserId/getMemberObjects?api-version=1.6
方法类型: POST
请求正文
{
"securityEnabledOnly": false
}
邮递员示例:
需要权限:
权限类型:应用程序
Directory.Read.All Or Directory.ReadWrite.All
查看屏幕截图:
有关详细信息,您可以参考此official docs
答案 1 :(得分:0)