Невозможно получить весь список пользователей из azure ad с помощью Microsoft graph API

#python #azure-active-directory #microsoft-graph-api #azure-ad-graph-api

#python #azure-active-directory #microsoft-graph-api #azure-ad-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. Пожалуйста, помогите. Спасибо

Комментарии:

1. Может быть, он вернул только первую страницу? Документы по подкачке: docs.microsoft.com/en-us/graph /…

2. @juunas Спасибо, это сработало. Пожалуйста, ответьте на вопрос

Ответ №1:

Graph API по умолчанию вернет первых 100 пользователей на первой странице. Вам необходимо запросить следующие страницы, документы: https://docs.microsoft.com/en-us/graph/paging?context=graph/api/1.0amp;view=graph-rest-1.0 .

В @odata.nextLink ответе возвращается свойство, вы можете запросить его, чтобы получить следующую страницу.