【问题标题】:Groups overage claim团体超龄索赔
【发布时间】:2019-11-28 15:42:07
【问题描述】:

我收到针对 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。

任何帮助将不胜感激!

更新

我将其更改为Post 并传入null 正文,并收到代码Authorization_RequestDenied 和值Insufficient privileges to complete the operation. 的错误。

确保授予 Application Directory.Read.All 权限。

【问题讨论】:

  • 您想从图形 API 中检索组成员吗?
  • 我已经尝试过这个https://graph.microsoft.com/v1.0/groups/GroupID/getMemberObjects 并在正文中传递了这个参数 `{ "securityEnabledOnly": false }' 成功返回值。
  • 嗨@MdFaridUddinKiron ...是的,并且想通过组超额索赔端点,例如graph.windows.net/TENANTID/users/USERID/getMemberObjects
  • 试试这个https://graph.microsoft.com/v1.0/tenant/users/UserId/getMemberObjects这个参数{ "securityEnabledOnly": false }' request method POST`
  • 对于 azure ad Graph,您的请求格式不正确,您可以试试这个https://graph.windows.net/TenantId/users/UserId/getMemberObjects?api-version=1.6,参数{ "securityEnabledOnly": false } 方法类型POST,希望它能起作用

标签: azure asp.net-core azure-active-directory microsoft-graph-api openid-connect


【解决方案1】:

终于找到了我的问题的根源!我需要将我的请求更改为 POST 并添加 { "securityEnabledOnly": false } 作为正文 - 感谢 @MdFaridUddinKiron 对此的帮助!

我缺少的一件事是授予我的应用程序管理员同意。

希望这对其他人有所帮助!

【讨论】:

    【解决方案2】:

    对于 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

    查看屏幕截图:

    详情可以参考official docs

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      相关资源
      最近更新 更多