Использование Идентификатора Microsoft Entra для доступа к API Intune в Microsoft Graph
API Microsoft Graph теперь поддерживает Microsoft Intune с определенными API и ролями разрешений. API Microsoft Graph использует идентификатор Microsoft Entra для проверки подлинности и управления доступом.
Для доступа к API Intune в Microsoft Graph требуется:
Идентификатор приложения со следующими характеристиками:
- Разрешение на вызов Идентификатора Microsoft Entra и API Microsoft Graph.
- Области разрешений, соответствующие задачам конкретного приложения.
Учетные данные пользователя со следующими характеристиками:
- Разрешение на доступ к клиенту Microsoft Entra, связанному с приложением.
- Разрешения ролей, необходимые для поддержки областей разрешений приложения.
Конечный пользователь, предоставляя приложению разрешение на выполнение задач приложений для своего клиента Azure.
В этой статье:
Показано, как зарегистрировать приложение с доступом к API Microsoft Graph и соответствующим ролям разрешений.
Описывает роли разрешений API Intune.
Предоставляет примеры проверки подлинности API Intune для C# и PowerShell.
Описывается поддержка нескольких клиентов.
Дополнительные сведения см. в статьях
- Авторизация доступа к веб-приложениям с помощью OAuth 2.0 и Идентификатора Microsoft Entra
- Начало работы с проверкой подлинности Microsoft Entra
- Интеграция приложений с идентификатором Microsoft Entra
- Общие сведения об OAuth 2.0
Регистрация приложений для использования API Microsoft Graph
Чтобы зарегистрировать приложение для использования API Microsoft Graph, выполните следующие действия:
Войдите в Центр администрирования Microsoft Intune , используя учетные данные администратора.
При необходимости можно использовать следующие учетные записи:
- Учетная запись администратора клиента.
- Учетная запись пользователя клиента с включенным параметром Пользователи могут регистрировать приложения .
Выберите Все службы>M365 Microsoft Entra ID>Microsoft Entra ID> Регистрацияприложений.
Щелкните Новая регистрация, чтобы создать новое приложение, или выберите существующее приложение. (Если вы выберете существующее приложение, пропустите следующий шаг.)
В области Регистрация приложения укажите следующее:
Имя приложения (отображается при входе пользователей).
Поддерживаемый тип учетной записи.
Значение URI перенаправления . Это значение является параметром .
Примечание.
Api Azure AD Graph находится на этапе прекращения использования. Подробности см. в статье Обновление приложений, чтобы использовать библиотеку проверки подлинности Майкрософт (MSAL) и API Microsoft Graph
Дополнительные сведения см. в статье Сценарии проверки подлинности для Идентификатора Microsoft Entra.
В области приложения:
Запомните значение Идентификатор приложения (клиента).
Выберите Разрешения API.
В области Разрешения API выберите Добавить разрешение>Microsoft API>Microsoft Graph. Затем выберите тип разрешений, необходимых приложению.
Выберите роли, необходимые для приложения, установив флажок слева от соответствующих имен. Дополнительные сведения о конкретных областях разрешений Intune см. в статье Области разрешений Intune. Дополнительные сведения о других областях разрешений API Graph см. в справочнике по разрешениям Microsoft Graph.
Рекомендуется выбирать наименьшее количество ролей, необходимых для реализации приложения.
Разрешения хранилища данных и отчетов
При добавлении приложения через Центр администрирования Microsoft Entra можно выбрать разрешения API Intune в зависимости от требований приложения.
- get_data_warehouse . Используйте это разрешение API для предоставления доступа к API хранилища данных Intune из Microsoft Intune. Дополнительные сведения см. в статье Использование хранилища данных Microsoft Intune.
API-интерфейсы решений для партнеров
При добавлении приложения через Центр администрирования Microsoft Entra доступны следующие разрешения API Intune:
- get_device_compliance — это разрешение API используется для получения сведений о состоянии и соответствии устройств из Microsoft Intune. Это разрешение API используется партнерами по управлению доступом к сети. Дополнительные сведения см. в статье Интеграция управления доступом к сети с Intune.
- manage_partner_compliance_policy . Это разрешение API используется для управления политиками соответствия партнеров с помощью Microsoft Intune. Это разрешение API позволяет приложению отправлять партнерские политики соответствия требованиям и назначение группы Microsoft Entra в Microsoft Intune без вошедшего пользователя. Он используется партнерами по соответствию устройств. Дополнительные сведения см. в статье Сторонние партнеры по соответствию требованиям устройств.
- pfx_cert_provider . Это разрешение API используется для отправки PFX-сертификатов в Intune для определенного пользователя. Intune доставляет сертификат всем устройствам, зарегистрированным пользователем. Дополнительные сведения см. в разделе PFX Import PowerShell.
- scep_challenge_provider . Это разрешение API используется для отправки запросов SCEP в Intune для проверки запроса сертификата. Он используется партнерами центра сертификации. Дополнительные сведения см. в разделе Центр сертификации партнеров.
- update_device_attributes . Это разрешение API используется для отправки сведений об устройстве в Intune от партнеров по обеспечению соответствия устройств и защиты от мобильных угроз. Дополнительные сведения см. в статье Интеграция Mobile Threat Defense с Intune и сторонними партнерами по соответствию устройств.
- update_device_health . Это разрешение API используется для отправки сведений о работоспособности устройства и состоянии угроз в Intune от партнеров по защите мобильных устройств от угроз. Дополнительные сведения см. в статье Интеграция Mobile Threat Defense с Intune.
Если вы являетесь партнером, заинтересованным в интеграции с Intune с помощью этих разрешений API, обратитесь за информацией к команде Microsoft Intelligent Security Association].
По завершении нажмите кнопку Добавить разрешения , чтобы сохранить изменения.
На этом этапе вы также можете:
Выберите разрешение для всех учетных записей клиента на использование приложения без предоставления учетных данных.
Для этого можно предоставить разрешения и подтвердить действия в появившемся окне запроса.
При первом запуске приложения вам будет предложено предоставить приложению разрешение на выполнение выбранных ролей.
Сделайте приложение доступным для пользователей за пределами вашего клиента. (Обычно это требуется только для партнеров, поддерживающих несколько клиентов или организаций.)
Для этого:
Выберите Манифест в области приложения.
Измените значение параметра на
availableToOtherTenants
true
.Сохраните изменения.
Список приложений
Если при запросе описания приложения при использовании API Graph вы получаете большой объем данных, может возникнуть ошибка 503 Service Недоступны. Рекомендуется повторить попытку с меньшим размером страницы, например 20 или менее элементов.
Области разрешений Intune
Microsoft Entra ID и Microsoft Graph используют области разрешений для управления доступом к корпоративным ресурсам.
Области разрешений (также называемые областями OAuth) управляют доступом к определенным сущностям Intune и их свойствам. В этом разделе приведены области разрешений для функций API Intune.
Дополнительные сведения:
При предоставлении разрешения Microsoft Graph можно указать следующие области для управления доступом к функциям Intune. В следующей таблице приведены области разрешений API Intune. В первом столбце отображается имя функции, отображаемое в Центре администрирования Microsoft Intune , а во втором — имя области разрешений.
Параметр "Включить доступ" | Имя области |
---|---|
Выполнение удаленных действий, влияющих на пользователей, на устройствах Microsoft Intune | DeviceManagementManagedDevices.PrivilegedOperations.All |
Считывание и запись данных устройств Microsoft Intune | DeviceManagementManagedDevices.ReadWrite.All |
Считывание данных устройств Microsoft Intune | DeviceManagementManagedDevices.Read.All |
Считывание и запись параметров RBAC для Microsoft Intune | DeviceManagementRBAC.ReadWrite.All |
Считывание параметров RBAC для Microsoft Intune | DeviceManagementRBAC.Read.All |
Считывание и запись для приложений Microsoft Intune | DeviceManagementApps.ReadWrite.All |
Считывание для приложений Microsoft Intune | DeviceManagementApps.Read.All |
Чтение и запись конфигурации и политик устройств Microsoft Intune | DeviceManagementConfiguration.ReadWrite.All |
Сведения о конфигурации и политиках устройств Microsoft Intune | DeviceManagementConfiguration.Read.All |
Считывание и запись конфигурации Microsoft Intune | DeviceManagementServiceConfig.ReadWrite.All |
Считывание конфигурации Microsoft Intune | DeviceManagementServiceConfig.Read.All |
В таблице перечислены параметры, которые отображаются в Центре администрирования Microsoft Intune. В следующих разделах области описываются в алфавитном порядке.
В настоящее время всем областям разрешений Intune требуется доступ администратора. Это означает, что вам требуются соответствующие учетные данные при запуске приложений или сценариев, которые обращаются к ресурсам API Intune.
DeviceManagementApps.Read.All
Параметр включить доступ : чтение приложений Microsoft Intune
Разрешает доступ на чтение к следующим свойствам и состоянию сущности:
- Клиентские приложения
- Категории мобильных приложений
- Политики защиты приложений
- Конфигурации приложений
DeviceManagementApps.ReadWrite.All
Параметр Включить доступ : чтение и запись приложений Microsoft Intune
Разрешает те же операции, что и DeviceManagementApps.Read.All
Кроме того, допускает изменения в следующих сущностях:
- Клиентские приложения
- Категории мобильных приложений
- Политики защиты приложений
- Конфигурации приложений
DeviceManagementConfiguration.Read.All
Включение параметра доступа : чтение конфигурации и политик устройств Microsoft Intune
Разрешает доступ на чтение к следующим свойствам и состоянию сущности:
- Конфигурация устройств
- Политика соответствия устройств
- Сообщения уведомлений
DeviceManagementConfiguration.ReadWrite.All
Включить параметр доступа : чтение и запись конфигурации и политик устройств Microsoft Intune
Разрешает те же операции, что и DeviceManagementConfiguration.Read.All
Приложения также могут создавать, назначать, удалять и изменять следующие сущности:
- Конфигурация устройств
- Политика соответствия устройств
- Сообщения уведомлений
DeviceManagementManagedDevices.PrivilegedOperations.All
Параметр Включить доступ . Выполнение удаленных действий, влияющих на пользователя, на устройствах Microsoft Intune
Разрешает следующие удаленные действия на управляемом устройстве:
- Прекращение использования
- Очистка
- Сброс и восстановление секретного кода
- Удаленная блокировка
- Включение и отключение режима потери
- Очистка компьютера
- Перезагрузить
- Удаление пользователя с общего устройства
DeviceManagementManagedDevices.Read.All
Параметр включить доступ : чтение устройств Microsoft Intune
Разрешает доступ на чтение к следующим свойствам и состоянию сущности:
- Управляемое устройство
- Категория устройства
- Обнаружено приложение
- Удаленные действия
- Сведения о вредоносных программах
DeviceManagementManagedDevices.ReadWrite.All
Параметр Включить доступ : чтение и запись устройств Microsoft Intune
Разрешает те же операции, что и DeviceManagementManagedDevices.Read.All
Приложения также могут создавать, удалять и изменять следующие сущности:
- Управляемое устройство
- Категория устройства
Также разрешены следующие удаленные действия:
- Поиск устройств
- Отключение блокировки активации
- Запрос удаленной помощи
DeviceManagementRBAC.Read.All
Включение параметра доступа : чтение параметров Microsoft Intune RBAC
Разрешает доступ на чтение к следующим свойствам и состоянию сущности:
- Назначения ролей
- Определения ролей
- Операции с ресурсами
DeviceManagementRBAC.ReadWrite.All
Включение параметра доступа : чтение и запись параметров RBAC Microsoft Intune
Разрешает те же операции, что и DeviceManagementRBAC.Read.All
Приложения также могут создавать, назначать, удалять и изменять следующие сущности:
- Назначения ролей
- Определения ролей
DeviceManagementServiceConfig.Read.All
Параметр включить доступ : чтение конфигурации Microsoft Intune
Разрешает доступ на чтение к следующим свойствам и состоянию сущности:
- Регистрация устройств
- Сертификат push-уведомлений Apple
- Программа регистрации устройств Apple
- Программа приобретения корпоративных лицензий Apple
- Соединитель Exchange
- Условия использования
- Облачная PKI
- Брендирование
- Защита от угроз на мобильных устройствах
DeviceManagementServiceConfig.ReadWrite.All
Параметр включить доступ : чтение и запись конфигурации Microsoft Intune
Разрешает те же операции, что и DeviceManagementServiceConfig.Read.All_
Приложения также могут настроить следующие функции Intune:
- Регистрация устройств
- Сертификат push-уведомлений Apple
- Программа регистрации устройств Apple
- Программа приобретения корпоративных лицензий Apple
- Соединитель Exchange
- Условия использования
- Облачная PKI
- Брендирование
- Защита от угроз на мобильных устройствах
Примеры проверки подлинности Microsoft Entra
В этом разделе показано, как включить Идентификатор Microsoft Entra в проекты C# и PowerShell.
В каждом примере необходимо указать идентификатор приложения, который имеет по крайней мере DeviceManagementManagedDevices.Read.All
область разрешений (описано выше).
При тестировании любого из примеров могут возникать ошибки http-состояния 403 (запрещено), аналогичные следующим:
{
"error": {
"code": "Forbidden",
"message": "Application is not authorized to perform this operation - Operation ID " +
"(for customer support): 00000000-0000-0000-0000-000000000000 - " +
"Activity ID: cc7fa3b3-bb25-420b-bfb2-1498e598ba43 - " +
"Url: https://example.manage.microsoft.com/" +
"Service/Resource/RESTendpoint?" +
"api-version=2017-03-06 - CustomApiErrorPhrase: ",
"innerError": {
"request-id": "00000000-0000-0000-0000-000000000000",
"date": "1980-01-0112:00:00"
}
}
}
В этом случае убедитесь, что:
Вы обновили идентификатор приложения до идентификатора, разрешенного для использования API Microsoft Graph и
DeviceManagementManagedDevices.Read.All
области разрешений.Учетные данные клиента поддерживают административные функции.
Код аналогичен отображаемым примерам.
Проверка подлинности Microsoft Entra ID в C#
В этом примере показано, как использовать C# для получения списка устройств, связанных с вашей учетной записью Intune.
Примечание.
Api Azure AD Graph находится на этапе прекращения использования. Подробности см. в статье Обновление приложений, чтобы использовать библиотеку проверки подлинности Майкрософт (MSAL) и API Microsoft Graph
Запустите Visual Studio и создайте проект консольного приложения Visual C# (.NET Framework).
Введите имя проекта и при необходимости укажите другие сведения.
Используйте обозреватель решений, чтобы добавить пакет Microsoft MSAL NuGet в проект:
- Щелкните правой кнопкой мыши обозреватель решений.
- Выберите Управление пакетами NuGet...>Обзор.
- Выберите
Microsoft.Identity.Client
и нажмите кнопку Установить.
Добавьте следующие операторы в начало Program.cs:
using Microsoft.Identity.Client; using System.Net.Http;
Добавьте метод для создания заголовка авторизации:
private static async Task<string> GetAuthorizationHeader() { string applicationId = "<Your Application ID>"; string authority = "https://login.microsoftonline.com/common/"; Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob"); AuthenticationContext context = new AuthenticationContext(authority); AuthenticationResult result = await context.AcquireTokenAsync( "https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto)); return result.CreateAuthorizationHeader();
Не забудьте изменить значение , чтобы соответствовать одному из предоставленных
application_ID
по крайнейDeviceManagementManagedDevices.Read.All
мере области разрешений, как описано ранее.Добавьте метод для получения списка устройств:
private static async Task<string> GetMyManagedDevices() { string authHeader = await GetAuthorizationHeader(); HttpClient graphClient = new HttpClient(); graphClient.DefaultRequestHeaders.Add("Authorization", authHeader); return await graphClient.GetStringAsync( "https://graph.microsoft.com/beta/me/managedDevices"); }
Обновите main для вызова GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
Скомпилируйте и запустите программу.
При первом запуске программы должно появиться два запроса. Первый запрашивает учетные данные, а второй предоставляет разрешения для managedDevices
запроса.
Для справки ниже приведена завершенная программа:
using Microsoft.Identity.Client;
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace IntuneGraphExample
{
class Program
{
static void Main(string[] args)
{
string devices = GetMyManagedDevices().GetAwaiter().GetResult();
Console.WriteLine(devices);
}
private static async Task<string> GetAuthorizationHeader()
{
string applicationId = "<Your Application ID>";
string authority = "https://login.microsoftonline.com/common/";
Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
AuthenticationContext context = new AuthenticationContext(authority);
AuthenticationResult result = await context.AcquireTokenAsync("https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
return result.CreateAuthorizationHeader();
}
private static async Task<string> GetMyManagedDevices()
{
string authHeader = await GetAuthorizationHeader();
HttpClient graphClient = new HttpClient();
graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
return await graphClient.GetStringAsync("https://graph.microsoft.com/beta/me/managedDevices");
}
}
}
Проверка подлинности идентификатора Microsoft Entra с помощью Microsoft Graph PowerShell
Скрипты PowerShell могут использовать модуль Microsoft Graph PowerShell для проверки подлинности. Дополнительные сведения см. в статье Примеры Microsoft Graph PowerShell и Intune PowerShell.
Поддержка нескольких клиентов и партнеров
Если ваша организация поддерживает организации с собственными клиентами Microsoft Entra, вы можете разрешить клиентам использовать ваше приложение с соответствующими клиентами.
Для этого:
Убедитесь, что учетная запись клиента существует в целевом клиенте Microsoft Entra.
Убедитесь, что учетная запись клиента позволяет пользователям регистрировать приложения (см . раздел Параметры пользователя).
Установить связь между каждым клиентом.
Для этого выполните одно из следующих действий:
А. Используйте Центр партнеров Майкрософт , чтобы определить отношения с клиентом и его адрес электронной почты.
Б. Предложите пользователю стать гостем вашего клиента.
Чтобы пригласить пользователя в качестве гостя клиента, выполните следующие действия:
Выберите Добавить гостевого пользователя на панели Быстрые задачи .
Введите адрес электронной почты клиента и (при необходимости) добавьте персонализированное сообщение для приглашения.
Выберите Пригласить.
При этом пользователю отправляется приглашение.
Чтобы принять приглашение, пользователь должен выбрать ссылку Начало работы .
Когда связь установлена (или приглашение принято), добавьте учетную запись пользователя в роль каталога.
При необходимости не забудьте добавить пользователя в другие роли. Например, чтобы разрешить пользователю управлять параметрами Intune, он должен быть глобальным администратором или администратором службы Intune.
Кроме того:
Используйте https://admin.microsoft.com для назначения лицензии Intune учетной записи пользователя.
Обновите код приложения для проверки подлинности в домене клиента Microsoft Entra клиента, а не в собственном домене.
Например, предположим, что домен клиента — ,
contosopartner.onmicrosoft.com
а домен клиента —northwind.onmicrosoft.com
, вы бы обновили код для проверки подлинности в клиенте клиента.Для этого в приложении C# на основе предыдущего примера необходимо изменить значение переменной
authority
:string authority = "https://login.microsoftonline.com/common/";
на
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";