Jak používat 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í 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:

Registrace aplikací pro používání Graph API Microsoftu

Registrace aplikace pro používání Microsoft Graph API:

  1. 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 .
  2. Vyberte Všechny služby>M365 Microsoft Entra ID>Microsoft Entra ID>Registrace aplikací.

    Příkaz nabídky Registrace aplikací
  3. 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.)

  4. V podokně Zaregistrovat aplikaci zadejte následující:

  5. V podokně aplikace:

    1. Poznamenejte si hodnotu ID aplikace (klienta).

    2. Vyberte Oprávnění rozhraní API.

  6. 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 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í 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í 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í 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 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 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:

    1. V podokně aplikace zvolte Manifest .

      Okno Upravit manifest
    2. Změňte hodnotu nastavení na availableToOtherTenantstrue.

    3. 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.

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 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 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 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č
    • Restartování
    • 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čky
    • 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í 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í
    • Cloud PKI
    • Značky
    • 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.

  1. Spusťte Visual Studio a pak vytvořte nový projekt konzolové aplikace Visual C# (.NET Framework).

  2. Zadejte název projektu a podle potřeby zadejte další podrobnosti.

    Vytvoření projektu konzolové aplikace jazyka C# v sadě Visual Studio
  3. Pomocí Průzkumník řešení přidejte do projektu balíček NuGet Microsoft MSAL:

    1. Klikněte pravým tlačítkem na Průzkumník řešení.
    2. Zvolte Spravovat balíčky NuGet...>Procházet.
    3. Vyberte Microsoft.Identity.Client a pak zvolte Nainstalovat.
  4. Na začátek Program.cs přidejte následující příkazy:

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. 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ům DeviceManagementManagedDevices.Read.All oprávnění, jak je popsáno výše.

  6. 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");
    }
    
  7. Aktualizujte Main , aby volal GetMyManagedDevices:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. 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 Příklady PowerShellu pro Microsoft Graph a Intune PowerShell.

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:

  1. Ověřte, že účet klienta existuje v cílovém Microsoft Entra tenantovi.

  2. Ověřte, že váš účet tenanta umožňuje uživatelům registrovat aplikace (viz Nastavení uživatele).

  3. 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:

  1. Na panelu Rychlé úlohy zvolte Přidat uživatele typu host.

    Přidání uživatele typu host pomocí Rychlých úloh
  2. Zadejte e-mailovou adresu klienta a (volitelně) přidejte přizpůsobenou zprávu pro pozvánku.

    Pozvání externího uživatele jako hosta
  3. Zvolte Pozvat.

Tím se uživateli odešle pozvánka.

Ukázková pozvánka hosta

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 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 je northwind.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/";
    

    na

    string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";