无法使用 Microsoft graph 从 azure ad 获取所有用户列表 API

Unable to get all user list from the azure ad using Microsoft graph API

我有一个 python 代码,它从 azure ad 获取所有用户。下面是代码:

import http.client
import json 
import requests


def get_token():
    r = requests.post("https://login.microsoftonline.com/" + "<tenant_id>" + "/oauth2/token",
        data={"grant_type": "client_credentials",
                "client_secret": "<client_secret>",
                "client_id": "<client_id>",
                "resource": "https://graph.microsoft.com"})
    ret_body = r.json()
    return ret_body['access_token']
    

token = get_token()
headers = {'Authorization': 'Bearer ' + token}
conn = http.client.HTTPSConnection('graph.microsoft.com')
conn.request("GET", "/v1.0/users", "", headers)
response = conn.getresponse()
data = response.read()
data = data.decode('utf-8')
data = json.loads(data)
print(len(data['value']))
    
    

当我 运行 上面的代码时,我得到了正确的响应和所有数据。但是有些用户不在场。它只返回数据,直到数据中不存在带有 K 的名称和一些以 S 开头的名称。我也在检查用户列表的长度,它总是 100,而添加的用户总数是 178

我不确定为什么 API 只返回 100 个用户列表而不是完整的 178 个用户。任何人都可以告诉我代码或 API 有什么问题吗?请帮忙。谢谢

图表 API 默认情况下 return 第一页的前 100 位用户。 您需要请求下一页,文档:https://docs.microsoft.com/en-us/graph/paging?context=graph%2Fapi%2F1.0&view=graph-rest-1.0.

一个 @odata.nextLink 属性 在响应中被 return 编辑,您可以请求它以获取下一页。