Použití Microsoft Entra ID pro přístup k rozhraním INTUNE API v Microsoft Graphu
Microsoft Graph API teď podporuje Microsoft Intune s konkrétními rozhraními API a rolemi oprávnění. Microsoft Graph API používá Microsoft Entra ID k ověřování a řízení přístupu.
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 Graph API Microsoftu a příslušným rolím oprávnění.
Popisuje role oprávnění Intune rozhraní API.
Poskytuje Intune příklady ověřování rozhraní 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í Graph API Microsoftu
Registrace aplikace pro používání 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
Azure AD Graph API je ve fázi vyřazení. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu MSAL (Microsoft Authentication Library) a 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 Intune rozsahech oprávnění najdete v tématu Intune rozsahy oprávnění. Další informace o dalších Graph API rozsahech oprávnění najdete v tématu Referenční informace 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 Centrum pro správu Microsoft Entra, můžete zvolit oprávnění rozhraní API Intune 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 Intune datového skladu z Microsoft Intune. Další informace najdete v tématu Použití Microsoft Intune Data Warehouse.
Rozhraní API partnerských řešení
Při přidávání aplikace prostřednictvím Centrum pro správu Microsoft Entra jsou k dispozici následující oprávnění rozhraní API Intune:
- 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 network Access Control. Další informace najdete v tématu Integrace Access Control sítě s Intune.
- manage_partner_compliance_policy – Toto oprávnění rozhraní API se používá ke správě zásad dodržování předpisů partnerů s Microsoft Intune. Toto oprávnění rozhraní API umožňuje aplikaci odesílat zásady dodržování předpisů partnerům a jejich přiřazení Microsoft Entra skupin Microsoft Intune 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 slouží k odesílání certifikátů PFX 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 se používá k odesílání problémů SCEP do Intune pro 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 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žívání Graph API obdržíte velké množství dat při žádosti o výpis aplikace, 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.
Intune rozsahy oprávnění
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 Intune entitám a jejich vlastnostem. Tato část shrnuje rozsahy oprávnění pro funkce Intune API.
Další informace:
Když microsoft graphu udělíte oprávnění, můžete určit následující obory řízení přístupu k Intune funkcím: Následující tabulka shrnuje rozsahy oprávnění Intune rozhraní API. První sloupec zobrazuje název funkce zobrazený 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 Microsoft Intune zařízeních | DeviceManagementManagedDevices.PrivilegedOperations.All |
Čtení a zápis Microsoft Intune zařízení | DeviceManagementManagedDevices.ReadWrite.All |
Čtení Microsoft Intune zařízení | DeviceManagementManagedDevices.Read.All |
Čtení a zápis Microsoft Intune nastavení RBAC | DeviceManagementRBAC.ReadWrite.All |
Čtení nastavení RBAC Microsoft Intune | DeviceManagementRBAC.Read.All |
Čtení a zápis Microsoft Intune aplikací | DeviceManagementApps.ReadWrite.All |
Čtení aplikací Microsoft Intune | DeviceManagementApps.Read.All |
Čtení a zápis Microsoft Intune konfigurace a zásad zařízení | DeviceManagementConfiguration.ReadWrite.All |
Přečtěte si Microsoft Intune konfiguraci a zásadách zařízení. | DeviceManagementConfiguration.Read.All |
Konfigurace Microsoft Intune čtení a zápisu | DeviceManagementServiceConfig.ReadWrite.All |
Čtení konfigurace 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 rozsahy 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í API Intune, 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 Microsoft Intune aplikací
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: Čtení konfigurace a zásad Microsoft Intune zařízení
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 Microsoft Intune konfigurace a zásad zařízení
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 Microsoft Intune zařízeních
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í Microsoft Intune zařízení
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 Microsoft Intune zařízení
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í Microsoft Intune nastavení RBAC
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 Microsoft Intune nastavení RBAC
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í
- Cloud PKI
- Značkování
- Ochrana před mobilními hrozbami
DeviceManagementServiceConfig.ReadWrite.All
Nastavení Povolit přístup: Konfigurace Microsoft Intune čtení a zápisu
Umožňuje stejné operace jako DeviceManagementServiceConfig.Read.All_
Aplikace můžou také nakonfigurovat následující Intune funkce:
- Registrace zařízení
- Apple Push Notification Certificate
- Program registrace zařízení Apple
- Apple Volume Purchase Program
- Exchange Connector
- Podmínky a ujednání
- Cloud PKI
- Značkování
- Ochrana před mobilními hrozbami
příklady ověřování Microsoft Entra
V této části se dozvíte, 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 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ěřování 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
Azure AD Graph API je ve fázi vyřazení. Další informace najdete v tématu Aktualizace aplikací tak, aby používaly knihovnu MSAL (Microsoft Authentication Library) a 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ík řešení přidejte do projektu balíček NuGet Microsoft MSAL:
- Klikněte pravým tlačítkem na Průzkumník ř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í Prostředí Microsoft Graph PowerShell
Skripty PowerShellu můžou k ověřování používat modul Microsoft Graph PowerShell. Další informace najdete v tématu Microsoft Graph PowerShell a Intune příklady PowerShellu.
Podpora více tenantů a partnerů
Pokud vaše organizace podporuje organizace s vlastními tenanty Microsoft Entra, můžete klientům povolit, aby používali vaši aplikaci se svými příslušnými tenanty.
Postup:
Ověřte, že účet klienta existuje v cílovém Microsoft Entra tenantovi.
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 umožnit správu nastavení Intune, musí být alespoň správcem služby Intune.
Také:
Slouží https://admin.microsoft.com k přiřazení Intune licence k vašemu uživatelskému účtu.
Aktualizujte kód aplikace tak, aby se ověřil v Microsoft Entra doméně tenanta klienta, a ne na 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/";