Jak používat Microsoft Entra ID pro přístup k rozhraním Intune API v Microsoft Graphu
Rozhraní Microsoft Graph API teď podporuje Microsoft Intune s konkrétními rozhraními API a rolemi oprávnění. Rozhraní Microsoft Graph API používá k ověřování a řízení přístupu ID Microsoft Entra.
Přístup k rozhraním INTUNE API v Microsoft Graphu vyžaduje:
ID aplikace s:
- Oprávnění k volání Microsoft Entra ID a rozhraní Microsoft Graph API
- Obory oprávnění relevantní pro konkrétní úlohy aplikace
Přihlašovací údaje uživatele s:
- Oprávnění pro přístup k tenantovi Microsoft Entra přidruženému k aplikaci
- Oprávnění rolí požadovaná pro podporu oborů oprávnění aplikace.
Koncový uživatel, který aplikaci udělí oprávnění k provádění úloh aplikací pro svého tenanta Azure.
Tento článek:
Ukazuje, jak zaregistrovat aplikaci s přístupem k rozhraní Microsoft Graph API a příslušným rolím oprávnění.
Popisuje role oprávnění rozhraní Intune API.
Poskytuje příklady ověřování rozhraní Intune API pro C# a PowerShell.
Popisuje, jak podporovat více tenantů.
Více k tomu najdete tady:
- Autorizace přístupu k webovým aplikacím pomocí OAuth 2.0 a Microsoft Entra ID
- Začínáme s ověřováním Microsoft Entra
- Integrace aplikací s Microsoft Entra ID
- Principy OAuth 2.0
Registrace aplikací pro používání rozhraní Microsoft Graph API
Registrace aplikace pro používání rozhraní Microsoft Graph API:
Přihlaste se k Centru pro správu Microsoft Intune pomocí přihlašovacích údajů pro správu.
Podle potřeby můžete použít:
- Účet správce tenanta.
- Uživatelský účet tenanta s povoleným nastavením Uživatelé můžou registrovat aplikace .
Vyberte Všechny služby>M365 Microsoft Entra ID>Microsoft Entra ID>Registrace aplikací.
Buď zvolte Nová registrace a vytvořte novou aplikaci, nebo zvolte existující aplikaci. (Pokud zvolíte existující aplikaci, přeskočte další krok.)
V podokně Zaregistrovat aplikaci zadejte následující:
Název aplikace (zobrazí se, když se uživatelé přihlásí).
Typ podporovaného účtu.
Hodnota identifikátoru URI přesměrování . Tato hodnota je option.
Poznámka
Rozhraní Azure AD Graph API je ve fázi vyřazení z provozu. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu Microsoft Authentication Library (MSAL) a rozhraní Microsoft Graph API.
Další informace najdete v tématu Scénáře ověřování pro Microsoft Entra ID.
V podokně aplikace:
Poznamenejte si hodnotu ID aplikace (klienta).
Vyberte Oprávnění rozhraní API.
V podokně Oprávnění rozhraní API zvolte Přidat oprávnění>rozhraní Microsoft API Microsoft>Graphu. Pak vyberte typ oprávnění, která vaše aplikace vyžaduje.
Role požadované pro vaši aplikaci vyberte tak, že umístíte zaškrtnutí nalevo od příslušných názvů. Informace o konkrétních oborech oprávnění Intune najdete v tématu Rozsahy oprávnění Intune. Další informace o dalších oborech oprávnění rozhraní Graph API najdete v referenčních informacích k oprávněním Microsoft Graphu.
Nejlepších výsledků dosáhnete, když zvolíte nejméně rolí potřebných k implementaci vaší aplikace.
Oprávnění datového skladu a generování sestav
Když přidáte aplikaci prostřednictvím Centra pro správu Microsoft Entra, můžete zvolit oprávnění rozhraní Intune API na základě požadavků vaší aplikace.
- get_data_warehouse – Pomocí tohoto oprávnění rozhraní API můžete udělit přístup k rozhraní API datového skladu Intune z Microsoft Intune. Další informace najdete v tématu Použití datového skladu Microsoft Intune.
Rozhraní API partnerských řešení
Při přidávání aplikace prostřednictvím Centra pro správu Microsoft Entra jsou k dispozici následující oprávnění rozhraní Intune API:
- get_device_compliance – Toto oprávnění rozhraní API slouží k získání informací o stavu zařízení a dodržování předpisů z Microsoft Intune. Toto oprávnění rozhraní API používají partneři řízení přístupu k síti. Další informace najdete v tématu Integrace řízení přístupu k síti s Intune.
- manage_partner_compliance_policy – Toto oprávnění rozhraní API slouží ke správě zásad dodržování předpisů pro partnery v Microsoft Intune. Toto oprávnění rozhraní API umožňuje aplikaci odesílat zásady dodržování předpisů partnerů a přiřazení skupiny Microsoft Entra do Microsoft Intune bez přihlášeného uživatele. Používají ho partneři pro dodržování předpisů zařízením. Další informace najdete v tématu Partneři pro dodržování předpisů zařízením třetích stran.
- pfx_cert_provider – Toto oprávnění rozhraní API se používá k odesílání certifikátů PFX do Intune pro konkrétního uživatele. Intune doručí certifikát do všech zařízení zaregistrovaných uživatelem. Další informace najdete v tématu PowerShell importu PFX.
- scep_challenge_provider – Toto oprávnění rozhraní API slouží k odesílání výzev SCEP do Intune za účelem ověření žádosti o certifikát. Používají ho partneři certifikační autority. Další informace najdete v tématu Certifikační autorita partnera.
- update_device_attributes – Toto oprávnění rozhraní API slouží k odesílání informací o zařízení do Intune od partnerů pro ochranu zařízení a ochrany před mobilními hrozbami. Další informace najdete v tématu Integrace ochrany před mobilními hrozbami s Intune a partnery pro dodržování předpisů zařízeními třetích stran.
- update_device_health – Toto oprávnění rozhraní API slouží k odesílání informací o stavu zařízení a stavu hrozeb do Intune od partnerů ochrany před mobilními hrozbami. Další informace najdete v tématu Integrace ochrany před mobilními hrozbami s Intune.
Pokud jste partnerem, který má zájem o integraci s Intune pomocí těchto oprávnění rozhraní API, požádejte o informace tým Microsoft Intelligent Security Association].
Až budete hotovi, zvolte Přidat oprávnění a uložte změny.
V tomto okamžiku můžete také:
Zvolte udělení oprávnění všem účtům tenanta k používání aplikace bez zadání přihlašovacích údajů.
Uděláte to tak, že udělíte oprávnění a přijmete výzvu k potvrzení.
Při prvním spuštění aplikace se zobrazí výzva, abyste aplikaci udělili oprávnění k provádění vybraných rolí.
Zpřístupněte aplikaci uživatelům mimo vašeho tenanta. (Obvykle se to vyžaduje jenom pro partnery, kteří podporují více tenantů nebo organizací.)
Postup:
V podokně aplikace zvolte Manifest .
Změňte hodnotu nastavení na
availableToOtherTenants
true
.Uložte provedené změny.
Výpis aplikací
Pokud při použití rozhraní Graph API obdržíte při žádosti o výpis aplikace velké množství dat, může dojít k chybě 503 Service Unavailable (Nedostupná služba). Doporučujeme zkusit to znovu s menší velikostí stránky, například s 20 nebo méně prvky.
Obory oprávnění Intune
Microsoft Entra ID a Microsoft Graph používají obory oprávnění k řízení přístupu k podnikovým prostředkům.
Obory oprávnění ( označované také jako obory OAuth) řídí přístup ke konkrétním entitám Intune a jejich vlastnostem. Tato část shrnuje rozsahy oprávnění pro funkce rozhraní Intune API.
Další informace:
Když udělíte oprávnění Microsoft Graphu, můžete zadat následující obory pro řízení přístupu k funkcím Intune: Následující tabulka shrnuje rozsahy oprávnění rozhraní Intune API. První sloupec zobrazuje název funkce, který se zobrazuje v Centru pro správu Microsoft Intune , a druhý sloupec obsahuje název oboru oprávnění.
Povolit nastavení přístupu | Název oboru |
---|---|
Provádění vzdálených akcí ovlivňujících uživatele na zařízeních Microsoft Intune | DeviceManagementManagedDevices.PrivilegedOperations.All |
Čtení a zápis zařízení Microsoft Intune | DeviceManagementManagedDevices.ReadWrite.All |
Čtení zařízení Microsoft Intune | DeviceManagementManagedDevices.Read.All |
Čtení a zápis nastavení řízení přístupu na základě role v Microsoft Intune | DeviceManagementRBAC.ReadWrite.All |
Čtení nastavení řízení přístupu na základě role v Microsoft Intune | DeviceManagementRBAC.Read.All |
Čtení a zápis aplikací Microsoft Intune | DeviceManagementApps.ReadWrite.All |
Čtení aplikací Microsoft Intune | DeviceManagementApps.Read.All |
Čtení a zápis konfigurace a zásad zařízení v Microsoft Intune | DeviceManagementConfiguration.ReadWrite.All |
Přečtěte si informace o konfiguraci a zásadách zařízení v Microsoft Intune. | DeviceManagementConfiguration.Read.All |
Čtení a zápis konfigurace Microsoft Intune | DeviceManagementServiceConfig.ReadWrite.All |
Přečtěte si konfiguraci Microsoft Intune. | DeviceManagementServiceConfig.Read.All |
V tabulce jsou uvedena nastavení tak, jak se zobrazují v Centru pro správu Microsoft Intune. Následující části popisují obory v abecedním pořadí.
V tuto chvíli všechny obory oprávnění Intune vyžadují přístup správce. To znamená, že při spouštění aplikací nebo skriptů, které přistupují k prostředkům rozhraní Intune API, potřebujete odpovídající přihlašovací údaje.
DeviceManagementApps.Read.All
Nastavení Povolit přístup : Čtení aplikací Microsoft Intune
Umožňuje přístup ke čtení pro následující vlastnosti a stav entity:
- Klientské aplikace
- Kategorie mobilních aplikací
- Zásady ochrany aplikací
- Konfigurace aplikací
DeviceManagementApps.ReadWrite.All
Nastavení Povolit přístup : Čtení a zápis aplikací Microsoft Intune
Umožňuje stejné operace jako DeviceManagementApps.Read.All.
Umožňuje také změny následujících entit:
- Klientské aplikace
- Kategorie mobilních aplikací
- Zásady ochrany aplikací
- Konfigurace aplikací
DeviceManagementConfiguration.Read.All
Nastavení Povolit přístup: Přečtěte si o konfiguraci a zásadách zařízení v Microsoft Intune.
Umožňuje přístup ke čtení pro následující vlastnosti a stav entity:
- Konfigurace zařízení
- Zásady dodržování předpisů zařízením
- Zprávy s oznámením
DeviceManagementConfiguration.ReadWrite.All
Nastavení Povolit přístup : Čtení a zápis konfigurace a zásad zařízení v Microsoft Intune
Umožňuje stejné operace jako DeviceManagementConfiguration.Read.All.
Aplikace můžou také vytvářet, přiřazovat, odstraňovat a měnit následující entity:
- Konfigurace zařízení
- Zásady dodržování předpisů zařízením
- Zprávy s oznámením
DeviceManagementManagedDevices.PrivilegedOperations.All
Nastavení Povolit přístup : Provádění vzdálených akcí ovlivňujících uživatele na zařízeních Microsoft Intune
Povoluje na spravovaném zařízení následující vzdálené akce:
- Vyřazení
- Vymazání
- Resetování nebo obnovení hesla
- Vzdálené uzamčení
- Povolení nebo zakázání režimu ztráty
- Vyčistit počítač
- Restartovat
- Odstranit uživatele ze sdíleného zařízení
DeviceManagementManagedDevices.Read.All
Nastavení Povolit přístup : Čtení zařízení Microsoft Intune
Umožňuje přístup ke čtení pro následující vlastnosti a stav entity:
- Spravované zařízení
- Kategorie zařízení
- Zjištěná aplikace
- Vzdálené akce
- Informace o malwaru
DeviceManagementManagedDevices.ReadWrite.All
Nastavení Povolit přístup : Čtení a zápis zařízení Microsoft Intune
Umožňuje stejné operace jako DeviceManagementManagedDevices.Read.All.
Aplikace můžou také vytvářet, odstraňovat a měnit následující entity:
- Spravované zařízení
- Kategorie zařízení
Povolené jsou také následující vzdálené akce:
- Vyhledání zařízení
- Zakázat zámek aktivace
- Žádost o vzdálenou pomoc
DeviceManagementRBAC.Read.All
Nastavení Povolit přístup : Čtení nastavení řízení přístupu na základě role v Microsoft Intune
Umožňuje přístup ke čtení pro následující vlastnosti a stav entity:
- Přiřazení rolí
- Definice rolí
- Operace se zdroji
DeviceManagementRBAC.ReadWrite.All
Nastavení Povolit přístup : Čtení a zápis nastavení RBAC v Microsoft Intune
Umožňuje stejné operace jako DeviceManagementRBAC.Read.All.
Aplikace můžou také vytvářet, přiřazovat, odstraňovat a měnit následující entity:
- Přiřazení rolí
- Definice rolí
DeviceManagementServiceConfig.Read.All
Nastavení Povolit přístup : Čtení konfigurace Microsoft Intune
Umožňuje přístup ke čtení pro následující vlastnosti a stav entity:
- Registrace zařízení
- Apple Push Notification Certificate
- Program registrace zařízení Apple
- Apple Volume Purchase Program
- Exchange Connector
- Podmínky a ujednání
- Cloudová infrastruktura veřejných klíčů
- Značkování
- Ochrana před mobilními hrozbami
DeviceManagementServiceConfig.ReadWrite.All
Nastavení Povolit přístup : Čtení a zápis konfigurace Microsoft Intune
Umožňuje stejné operace jako DeviceManagementServiceConfig.Read.All_
Aplikace můžou také nakonfigurovat následující funkce Intune:
- Registrace zařízení
- Apple Push Notification Certificate
- Program registrace zařízení Apple
- Apple Volume Purchase Program
- Exchange Connector
- Podmínky a ujednání
- Cloudová infrastruktura veřejných klíčů
- Značkování
- Ochrana před mobilními hrozbami
Příklady ověřování Microsoft Entra
Tato část ukazuje, jak začlenit Microsoft Entra ID do projektů C# a PowerShellu.
V každém příkladu budete muset zadat ID aplikace, které má alespoň DeviceManagementManagedDevices.Read.All
obor oprávnění (popsáno dříve).
Při testování obou příkladů se můžou zobrazit chyby stavu HTTP 403 (Zakázáno) podobné následujícímu:
{
"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"
}
}
}
Pokud k tomu dojde, ověřte, že:
Aktualizovali jste ID aplikace na id aplikace, které má oprávnění používat rozhraní Microsoft Graph API a
DeviceManagementManagedDevices.Read.All
obor oprávnění.Přihlašovací údaje vašeho tenanta podporují funkce správy.
Váš kód je podobný zobrazeným ukázkům.
Ověření Microsoft Entra ID v jazyce C#
Tento příklad ukazuje, jak pomocí jazyka C# načíst seznam zařízení přidružených k vašemu účtu Intune.
Poznámka
Rozhraní Azure AD Graph API je ve fázi vyřazení z provozu. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu Microsoft Authentication Library (MSAL) a rozhraní Microsoft Graph API.
Spusťte Visual Studio a pak vytvořte nový projekt konzolové aplikace Visual C# (.NET Framework).
Zadejte název projektu a podle potřeby zadejte další podrobnosti.
Pomocí Průzkumníka řešení přidejte do projektu balíček NuGet Microsoft MSAL:
- Klikněte pravým tlačítkem na Průzkumníka řešení.
- Zvolte Spravovat balíčky NuGet...>Procházet.
- Vyberte
Microsoft.Identity.Client
a pak zvolte Nainstalovat.
Na začátek Program.cs přidejte následující příkazy:
using Microsoft.Identity.Client; using System.Net.Http;
Přidejte metodu pro vytvoření autorizační hlavičky:
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();
Nezapomeňte změnit hodnotu
application_ID
tak, aby odpovídala alespoň uděleným oborůmDeviceManagementManagedDevices.Read.All
oprávnění, jak je popsáno výše.Přidejte metodu pro načtení seznamu zařízení:
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"); }
Aktualizujte Main , aby volal GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
Zkompilujte a spusťte program.
Při prvním spuštění programu by se měly zobrazit dvě výzvy. První požádá o vaše přihlašovací údaje a druhý udělí oprávnění k managedDevices
žádosti.
Pro referenci tady je dokončený program:
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");
}
}
}
Ověřování Microsoft Entra ID pomocí Microsoft Graph PowerShellu
Skripty PowerShellu můžou k ověřování používat modul Microsoft Graph PowerShell. Další informace najdete v tématu Příklady PowerShellu pro Microsoft Graph a Intune PowerShell.
Podpora více tenantů a partnerů
Pokud vaše organizace podporuje organizace s jejich vlastními tenanty Microsoft Entra, můžete klientům povolit, aby vaši aplikaci používali se svými příslušnými tenanty.
Postup:
Ověřte, že účet klienta existuje v cílovém tenantovi Microsoft Entra.
Ověřte, že váš účet tenanta umožňuje uživatelům registrovat aplikace (viz Nastavení uživatele).
Vytvořte vztah mezi jednotlivými tenanty.
Provedete to tak, že:
a. Pomocí Partnerského centra Microsoftu můžete definovat vztah s klientem a jeho e-mailovou adresou.
b. Pozvěte uživatele, aby se stal hostem vašeho tenanta.
Pokud chcete uživatele pozvat jako hosta vašeho tenanta:
Na panelu Rychlé úlohy zvolte Přidat uživatele typu host.
Zadejte e-mailovou adresu klienta a (volitelně) přidejte přizpůsobenou zprávu pro pozvánku.
Zvolte Pozvat.
Tím se uživateli odešle pozvánka.
Aby uživatel pozvánku přijal, musí vybrat odkaz Začínáme .
Po vytvoření relace (nebo přijetí pozvánky) přidejte uživatelský účet do role Adresář.
Nezapomeňte uživatele podle potřeby přidat k jiným rolím. Pokud například chcete uživateli povolit správu nastavení Intune, musí být buď globálním správcem , nebo správcem služby Intune.
Také:
Použijte https://admin.microsoft.com k přiřazení licence Intune k vašemu uživatelskému účtu.
Aktualizujte kód aplikace tak, aby se ověřil v doméně tenanta Microsoft Entra klienta, a ne v vlastní doméně.
Předpokládejme například, že je doména
contosopartner.onmicrosoft.com
vašeho tenanta a doména tenanta vašeho klienta jenorthwind.onmicrosoft.com
, aktualizovali byste kód tak, aby se ověřil v tenantovi vašeho klienta.Pokud to chcete udělat v aplikaci jazyka C# na základě předchozího příkladu, změnili byste hodnotu
authority
proměnné:string authority = "https://login.microsoftonline.com/common/";
k
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";