azure-active-directory - 用户的 Microsoft Graph Api $count 响应不一致

标签 azure-active-directory microsoft-graph-api odata azure-ad-b2c

我正尝试通过我的 B2C AAD 租户通过 Microsoft Graph API 获取用户总数,但响应似乎出错或省略了 @odata.count 属性。

在线反馈也很复杂,有些人说 $count 仍然不受支持,即使官方文档说/users 支持 $count

https://learn.microsoft.com/en-us/graph/query-parameters#count-parameter

我试过通过graph api在线版: https://developer.microsoft.com/en-us/graph/graph-explorer?request=users?$count=true&method=GET&version=v1.0

结果是:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "@odata.count": 31,
    "value": [
    ...
    ]
}

但是通过 postman 之类的东西做同样的事情让我得到了这个结果:

GET /v1.0/users?$count=true HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer [token]
ConsistencyLevel: eventual
{
    "error": {
        "code": "Request_BadRequest",
        "message": "This request is not supported by the service",
        "innerError": {
            "date": "2020-10-09T18:19:44",
            "request-id": "4d97fd77-19ad-42f9-9357-66c24c867ce2",
            "client-request-id": "4d97fd77-19ad-42f9-9357-66c24c867ce2"
        }
    }
}

如果我删除 ConsistencyLevel header ,我会得到一个有效响应,但没有 @odata.count 属性。

我是否缺少某些 Graph Api 权限,或者这是预期的?

最佳答案

对于 B2C 租户,此/users 端点尚不支持用户计数。但对于一般的 Azure AD 租户,当您按照以下这些步骤操作时,它将为您提供计数。

  1. 选择测试端点。 (https://graph.microsoft.com/beta/users?$count=true)
  2. 在 QueryString 中添加 $count=true。
  3. ConsistencyLevel = eventual 添加到请求 header 。

您将看到如下结果。

enter image description here

你也可以引用这个Document .

请在 Microsoft Graph Feedback Forum 中提出功能请求以便产品团队将来可以将此功能添加到 b2c 租户。

关于azure-active-directory - 用户的 Microsoft Graph Api $count 响应不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64285552/

相关文章:

odata - OData v4 不支持 Nullable<DateTime> 吗?

sql - 如何将数据从 OData API 提取到 SQL

wcf-data-services - 我可以使用 WCF 数据服务 (OData) 查询执行 'Distinct' 吗?

azure - 无法在 Azure Microsoft 帐户上启用 MFA

azure - 使用图形 API 创建 Azure AD B2C 社交帐户

azure - 用于访问所有电子邮件文件夹的 Microsoft Graph API

c# - 使用 Microsoft Graph token 通过 Jwt Bearer token 保护 ASP.NET Core Web API

azure - 从本地 Active Directory 同步用户后,OU 信息在 Azure 中不可用

typo3 - 将 Azure AD 中的 TYPO3 fe_users 与 SAML 2 连接起来的最佳方式是什么?

azure - 我正在尝试使用 microsoft graph API 获取所有设备上安装的所有应用程序