Поделиться через


Получение данных из API хранилища данных Intune с помощью клиента REST

Вы можете получить доступ к модели данных хранилища данных Intune через конечные точки RESTful. Чтобы получить доступ к данным, клиент должен авторизоваться с помощью Идентификатора Microsoft Entra с помощью OAuth 2.0. Чтобы включить доступ, сначала настройте собственное приложение в Azure и предоставьте разрешения API Microsoft Intune. Локальный клиент получает авторизацию, а затем клиент может взаимодействовать с конечными точками хранилища данных через собственное приложение.

Чтобы настроить клиент для получения данных из API хранилища данных, необходимо:

  1. Создание клиентского приложения в качестве собственного приложения в Azure
  2. Предоставление клиентскому приложению доступа к API Microsoft Intune
  3. Создание локального клиента REST для получения данных

Выполните следующие действия, чтобы узнать, как авторизовать API и получить доступ к ним с помощью клиента REST. Во-первых, вы изучите использование универсального клиента REST с помощью Postman. Postman — это часто используемое средство для устранения неполадок и разработки клиентов REST для работы с API. Дополнительные сведения о Postman см. на сайте Postman . Затем можно просмотреть пример кода C#. Пример предоставляет пример для авторизации клиента и получения данных из API.

Создание клиентского приложения в качестве собственного приложения в Azure

Создайте собственное приложение в Azure. Это собственное приложение является клиентским приложением. Клиент, работающий на локальном компьютере, ссылается на API хранилища данных Intune, когда локальный клиент запрашивает учетные данные.

  1. Войдите в центр администрирования Microsoft Entra .
  2. Выберите Microsoft Entra ID>Регистрация приложений , чтобы открыть панель Регистрация приложений .
  3. Выберите Создать регистрацию приложения.
  4. Введите сведения о приложении.
    1. Введите понятное имя, например "Клиент хранилища данных Intune" в поле Имя.
    2. Выберите Учетные записи только в этом каталоге организации (только Майкрософт — один клиент) для поддерживаемых типов учетных записей.
    3. Введите URL-адрес для URI перенаправления. URI перенаправления будет зависеть от конкретного сценария, однако если вы планируете использовать Postman, введите https://www.getpostman.com/oauth2/callback. Обратный вызов будет использоваться для шага проверки подлинности клиента при проверке подлинности в Microsoft Entra ID.
  5. Нажмите Зарегистрировать.
  6. Запишите идентификатор приложения (клиента) этого приложения. Идентификатор будет использоваться в следующем разделе.

Предоставление клиентскому приложению доступа к API Microsoft Intune

Теперь у вас есть приложение, определенное в Azure. Предоставьте доступ из собственного приложения к API Microsoft Intune.

  1. Войдите в центр администрирования Microsoft Entra .
  2. Выберите Microsoft Entra ID>Регистрация приложений , чтобы открыть панель Регистрация приложений .
  3. Выберите приложение, которое необходимо предоставить доступ. Вы назвали приложение клиентом хранилища данных Intune.
  4. Выберите Разрешения> APIДобавить разрешение.
  5. Найдите и выберите API Intune. Он называется API Microsoft Intune.
  6. Установите флажок Делегированные разрешения и щелкните поле Получение сведений о хранилище данных из Microsoft Intune .
  7. Щелкните Добавить разрешения.
  8. При необходимости выберите Предоставить согласие администратора для Корпорации Майкрософт в области Настроенные разрешения, а затем нажмите кнопку Да. Это позволит получить доступ ко всем учетным записям в текущем каталоге. Это предотвратит появление диалогового окна согласия для каждого пользователя в клиенте. Дополнительные сведения см. в статье Интеграция приложений с Идентификатором Microsoft Entra.
  9. Выберите Сертификаты & секреты>+ Новый секрет клиента и создайте новый секрет. Обязательно скопируйте его в безопасном месте, так как вы не сможете получить к нему доступ снова.

Получение данных из API Microsoft Intune с помощью Postman

Вы можете работать с API хранилища данных Intune с помощью универсального клиента REST, например Postman. Postman может предоставить представление о функциях API, базовой модели данных OData и устранить неполадки при подключении к ресурсам API. В этом разделе вы найдете сведения о создании маркера Auth2.0 для локального клиента. Клиенту потребуется маркер для проверки подлинности с помощью идентификатора Microsoft Entra и доступа к ресурсам API.

Сведения, необходимые для вызова

Чтобы выполнить вызов REST с помощью Postman, вам потребуются следующие сведения:

Атрибут Описание Пример
URL-адрес обратного вызова Задайте его в качестве URL-адреса обратного вызова на странице параметров приложения. https://www.getpostman.com/oauth2/callback
Token Name Строка, используемая для передачи учетных данных в приложение Azure. Процесс создает маркер, чтобы можно было выполнить вызов API хранилища данных. Токен носителя.
URL-адрес проверки подлинности Это URL-адрес, используемый для проверки подлинности. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
URL-адрес маркера доступа Это URL-адрес, используемый для предоставления маркера. https://login.microsoftonline.com/common/oauth2/token
Идентификатор клиента Вы создали и замечали это при создании собственного приложения в Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
Секрет клиента Вы создали и замечали это при создании собственного приложения в Azure. Ksml3dhDJs+jfK1f8Mwc8
Область (необязательно) Поле можно оставить пустым.

ПРИМЕЧАНИЕ. Для некоторых пакетов SDK, таких как библиотека проверки подлинности Майкрософт (MSAL) для Python, может потребоваться область, определенная с двойной косой чертой (//).

SCOPE = ['https://api.manage.microsoft.com//.default']
Тип предоставления Маркер — это код авторизации. Код авторизации

Конечная точка OData

Вам также потребуется конечная точка. Чтобы получить конечную точку хранилища данных, потребуется URL-адрес пользовательского веб-канала. Конечную точку OData можно получить на панели Хранилища данных.

  1. Войдите в Центр администрирования Microsoft Intune.
  2. Откройте панель Хранилище данных, выбравХранилище данныхотчетов>.
  3. Скопируйте URL-адрес пользовательского веб-канала в веб-каналЕ OData для службы отчетов. Он должен выглядеть примерно так: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

Конечная точка соответствует следующему формату: https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

Например, сущность dates выглядит следующим образом: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

Дополнительные сведения см. в статье Конечная точка API хранилища данных Intune.

Вызов REST

Чтобы получить новый маркер доступа для Postman, необходимо добавить URL-адрес авторизации Microsoft Entra, идентификатор клиента и секрет клиента. Postman загрузит страницу авторизации, где вы введите учетные данные.

Перед выполнением вызова убедитесь, что url-адрес обратного вызова уже добавлен в приложение в Azure. URL-адрес обратного вызова — https://www.getpostman.com/oauth2/callback.

Добавление сведений, используемых для запроса маркера

  1. Скачайте Postman, если он еще не установлен. Чтобы скачать Postman, см. www.getpostman.com.

  2. Откройте Postman. Выберите операцию HTTP GET.

  3. Вставьте URL-адрес конечной точки в адрес. Он должен выглядеть примерно так:

    https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

  4. Перейдите на вкладку Авторизация и выберите OAuth 2.0 в списке Тип .

  5. Прокрутите вниз до раздела Настройка нового токена .

  6. Введите Bearer в поле Имя токена.

  7. Выберите Код авторизации в качестве типа предоставления.

  8. Добавьте URL-адрес обратного вызова. URL-адрес обратного вызова — https://www.getpostman.com/oauth2/callback.

  9. Добавьте URL-адрес проверки подлинности. Он должен выглядеть примерно так:

    https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/

  10. Добавьте URL-адрес маркера доступа. Он должен выглядеть примерно так:

    https://login.microsoftonline.com/common/oauth2/token

  11. Добавьте идентификатор клиента из собственного приложения, созданного в Azure с именем Intune Data Warehouse Client. Он должен выглядеть примерно так:

    88C8527B-59CB-4679-A9C8-324941748BB4

  12. Добавьте секрет клиента , созданный из собственного приложения, созданного в Azure. Он должен выглядеть примерно так:

    Ksml3dhDJs+jfK1f8Mwc8

  13. Выберите Получить новый маркер доступа.

    Сведения о маркере доступа.

  14. Введите учетные данные на странице авторизации Active AD. Список маркеров в Postman теперь содержит маркер с именем Bearer.

  15. Выберите Использовать токен. Список заголовков содержит новое значение ключа Authorization и значение Bearer <your-authorization-token>.

Отправка вызова в конечную точку с помощью Postman

  1. Нажмите кнопку Отправить.

  2. Возвращаемые данные отображаются в тексте ответа Postman.

    Состояние клиента Postman равно 200 OK.

Создание клиента REST (C#) для получения данных из хранилища данных Intune

Следующий пример содержит простой клиент REST. Код использует класс httpClient из библиотеки .NET. Когда клиент получает учетные данные для Идентификатора Microsoft Entra, клиент создает вызов REST GET для получения сущности dates из API хранилища данных.

Примечание.

Вы можете получить доступ к следующему примеру кода на сайте GitHub. Последние изменения и обновления примера см. в репозитории GitHub.

  1. Откройте Microsoft Visual Studio.

  2. Выберите Файл>Новый проект. Разверните узел Visual C# и выберите Консольное приложение (.NET Framework).

  3. Присвойте проекту IntuneDataWarehouseSamplesимя , перейдите к месту, где вы хотите сохранить проект, а затем нажмите кнопку ОК.

  4. Щелкните правой кнопкой мыши имя решения в обозревателе решений и выберите Управление пакетами NuGet для решения. Нажмите кнопку Обзор и введите Microsoft.Identity.Client в поле поиска.

    Примечание.

    Необходимо использовать библиотеку проверки подлинности Майкрософт (MSAL). Подробности см. в статье Обновление приложений, чтобы использовать библиотеку проверки подлинности Майкрософт (MSAL) и API Microsoft Graph

  5. Выберите пакет, выберите проект IntuneDataWarehouseSamples в разделе Управление пакетами для решения и нажмите кнопку Установить.

  6. Выберите Я принимаю , чтобы принять лицензию на пакет NuGet.

  7. Откройте Program.cs в обозревателе решений.

    Program.cs и обозреватель решений в Visual Studio.

  8. Замените код в Program.cs следующим кодом:

    namespace IntuneDataWarehouseSamples
    {
    using System;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using Microsoft.Identity.Client;
    
    class Program
    {
     static void Main(string[] args)
    {
    /**
    * TODO: Replace the below values with your own.
    * emailAddress - The email address of the user that you will authenticate as.
    *
    * password  - The password for the above email address.
    *    This is inline only for simplicity in this sample. We do not
    *    recommend storing passwords in plaintext.
    *
    * applicationId - The application ID of the native app that was created in AAD.
    *
    * warehouseUrl   - The data warehouse URL for your tenant. This can be found in
    *      the Microsoft Intune admin center.
    *
    * collectionName - The name of the warehouse entity collection you would like to
    *      access.
    */
    var emailAddress = "intuneadmin@yourcompany.com";
    var password = "password_of(intuneadmin@yourcompany.com)";
    var applicationId = "<Application ID>";
    var warehouseUrl = "https://fef.{yourinfo}.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0";
    var collectionName = "dates";
    
    var msalContext = new AuthenticationContext("https://login.windows.net/common/oauth2/token");
    AuthenticationResult authResult = msalContext.AcquireTokenAsync(
    resource: "https://api.manage.microsoft.com/",
    clientId: applicationId,
    userCredential: new UserPasswordCredential(emailAddress, password)).Result;
    
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
    
    var uriBuilder = new UriBuilder(warehouseUrl);
    uriBuilder.Path += "/" + collectionName;
    
    HttpResponseMessage response = httpClient.GetAsync(uriBuilder.Uri).Result;
    
    Console.Write(response.Content.ReadAsStringAsync().Result);
    Console.ReadKey();
    }
    }
    }
    
  9. Обновите их TODOв примере кода.

  10. Нажмите клавиши CTRL+F5 , чтобы выполнить сборку и выполнение клиента Intune.DataWarehouseAPIClient в режиме отладки.

    Сущность Date, полученная в формате JSON.

  11. Просмотрите выходные данные консоли. Выходные данные содержат данные в формате JSON, полученные из сущности dates в клиенте Intune.

Дальнейшие действия

Сведения об авторизации, структуре URL-адреса API и конечных точках OData см. в статье Использование API хранилища данных Intune.

Вы также можете обратиться к модели данных хранилища данных Intune, чтобы найти сущности данных, содержащиеся в API. Дополнительные сведения см. в разделе Модель данных API хранилища данных Intune.