Så här använder du Microsoft Entra ID för att komma åt Intune-API:erna i Microsoft Graph

Microsoft Graph API stöder nu Microsoft Intune med specifika API:er och behörighetsroller. Microsoft Graph API använder Microsoft Entra ID för autentisering och åtkomstkontroll.
Åtkomst till Intune-API:erna i Microsoft Graph kräver:

  • Ett program-ID med:

    • Behörighet att anropa Microsoft Entra ID och Api:er för Microsoft Graph.
    • Behörighetsomfång som är relevanta för de specifika programuppgifterna.
  • Användarautentiseringsuppgifter med:

    • Behörighet att komma åt den Microsoft Entra klientorganisation som är associerad med programmet.
    • Rollbehörigheter som krävs för att stödja programmets behörighetsomfång.
  • Slutanvändaren beviljar behörighet till appen för att utföra programuppgifter för sin Azure-klientorganisation.

Den här artikeln:

  • Visar hur du registrerar ett program med åtkomst till Microsoft Graph API och relevanta behörighetsroller.

  • Beskriver behörighetsrollerna för Intune API.

  • Innehåller Intune API-autentiseringsexempel för C# och PowerShell.

  • Beskriver hur du stöder flera klienter.

Mer information finns i:

Registrera appar för att använda Microsoft Graph API

Så här registrerar du en app för att använda Microsoft Graph API:

  1. Logga in på Microsoft Intune administrationscenter med administrativa autentiseringsuppgifter.

    Efter behov kan du använda:

    • Administratörskontot för klientorganisationen.
    • Ett klientanvändarkonto med inställningen Användare kan registrera program aktiverad.
  2. Välj Alla tjänster>M365 Microsoft Entra ID>Microsoft Entra ID>Appregistreringar.

    Kommandot Appregistreringar-menyn
  3. Välj antingen Ny registrering för att skapa ett nytt program eller välj ett befintligt program. (Om du väljer ett befintligt program hoppar du över nästa steg.)

  4. I fönstret Registrera ett program anger du följande:

  5. Från programfönstret:

    1. Observera ID-värdet för program (klient ).

    2. Välj API-behörigheter.

  6. I fönstret API-behörigheter väljer du Lägg till en behörighet>För Microsoft API:er>Microsoft Graph. Välj sedan den typ av behörigheter som programmet kräver.

    Välj de roller som krävs för din app genom att markera till vänster om de relevanta namnen. Mer information om specifika Behörighetsomfång för Intune finns i Intune-behörighetsomfattningar. Mer information om andra Graph API behörighetsomfattningar finns i Referens för Microsoft Graph-behörigheter.

    För bästa resultat väljer du de minst nödvändiga rollerna för att implementera ditt program.

Informationslager- och rapporteringsbehörigheter

När du lägger till ett program via Microsoft Entra administrationscenter kan du välja Intune API-behörigheter baserat på kraven för ditt program.

  • get_data_warehouse – Använd den här API-behörigheten för att bevilja åtkomst till Api:et för Intune-informationslager från Microsoft Intune. Mer information finns i Använda Microsoft Intune Data Warehouse.

API:er för partnerlösning

Följande Intune API-behörigheter är tillgängliga när du lägger till ett program via Microsoft Entra administrationscenter:

  • get_device_compliance – Den här API-behörigheten används för att hämta information om enhetstillstånd och efterlevnad från Microsoft Intune. Den här API-behörigheten används av network Access Control partner. Mer information finns i Nätverksintegrering Access Control med Intune.
  • manage_partner_compliance_policy – Den här API-behörigheten används för att hantera partnerefterlevnadsprinciper med Microsoft Intune. Med den här API-behörigheten kan appen skicka partnerefterlevnadsprinciper och dess Microsoft Entra grupptilldelning till Microsoft Intune utan en inloggad användare. Den används av partner för enhetsefterlevnad. Mer information finns i Partner för enhetsefterlevnad från tredje part.
  • pfx_cert_provider – Den här API-behörigheten används för att skicka PFX-certifikat till Intune för en viss användare. Intune levererar certifikatet till alla enheter som registrerats av användaren. Mer information finns i PFX Import Powershell.
  • scep_challenge_provider – Den här API-behörigheten används för att skicka SCEP-utmaningar till Intune för validering av certifikatbegäran. Den används av certifikatutfärdarpartner. Mer information finns i Certifikatutfärdare för partner.
  • update_device_attributes – Den här API-behörigheten används för att skicka enhetsinformation till Intune från partner för enhetsefterlevnad och skydd mot mobilhot. Mer information finns i Mobile Threat Defense-integrering med Intune och partner för enhetsefterlevnad från tredje part.
  • update_device_health – Den här API-behörigheten används för att skicka information om enhetens hälsotillstånd och hotstatus till Intune från partner för skydd mot mobilhot. Mer information finns i Mobile Threat Defense-integrering med Intune.

Om du är en partner som är intresserad av att integrera med Intune med hjälp av dessa API-behörigheter kontaktar du Microsoft Intelligent Security Association-teamet för information.

När du är klar väljer du Lägg till behörigheter för att spara ändringarna.

I det här läget kan du också:

  • Välj att bevilja behörighet för alla klientkonton att använda appen utan att ange autentiseringsuppgifter.

    För att göra det kan du bevilja behörigheter och acceptera bekräftelseprompten.

    När du kör programmet för första gången uppmanas du att ge appen behörighet att utföra de valda rollerna.

  • Gör appen tillgänglig för användare utanför din klientorganisation. (Detta krävs vanligtvis bara för partner som stöder flera klienter/organisationer.)

    Gör så här:

    1. Välj Manifest i programfönstret.

      Bladet Redigera manifest
    2. Ändra värdet för inställningen availableToOtherTenants till true.

    3. Spara ändringarna.

Applista

Om du får en stor mängd data när du begär din applista när du använder Graph API kan det uppstå ett 503-fel om tjänsten inte är tillgänglig. Vi rekommenderar att du försöker igen med en mindre sidstorlek, till exempel 20 eller färre element.

Behörighetsomfattningar för Intune

Microsoft Entra ID och Microsoft Graph använder behörighetsomfattningar för att styra åtkomsten till företagsresurser.

Behörighetsomfång (kallas även OAuth-omfång) styr åtkomsten till specifika Intune-entiteter och deras egenskaper. I det här avsnittet sammanfattas behörighetsomfattningarna för Intune API-funktioner.

Mer information finns i:

När du beviljar behörighet till Microsoft Graph kan du ange följande omfång för att styra åtkomsten till Intune-funktioner: I följande tabell sammanfattas Behörighetsomfattningarna för Intune API. Den första kolumnen visar namnet på funktionen som visas i Microsoft Intune administrationscenter och den andra kolumnen innehåller namnet på behörighetsomfånget.

Inställningen Aktivera åtkomst Omfångsnamn
Utföra användarpåverkande fjärråtgärder på Microsoft Intune enheter DeviceManagementManagedDevices.PrivilegedOperations.All
Läsa och skriva Microsoft Intune enheter DeviceManagementManagedDevices.ReadWrite.All
Läsa Microsoft Intune enheter DeviceManagementManagedDevices.Read.All
Läsa och skriva Microsoft Intune RBAC-inställningar DeviceManagementRBAC.ReadWrite.All
Läsa RBAC-inställningar för Microsoft Intune DeviceManagementRBAC.Read.All
Läsa och skriva Microsoft Intune appar DeviceManagementApps.ReadWrite.All
Läsa Microsoft Intune appar DeviceManagementApps.Read.All
Läsa och skriva Microsoft Intune enhetskonfiguration och principer DeviceManagementConfiguration.ReadWrite.All
Läsa Microsoft Intune enhetskonfiguration och principer DeviceManagementConfiguration.Read.All
Läsa och skriva Microsoft Intune konfiguration DeviceManagementServiceConfig.ReadWrite.All
Läsa Microsoft Intune konfiguration DeviceManagementServiceConfig.Read.All

Tabellen visar inställningarna som de visas i Microsoft Intune administrationscenter. I följande avsnitt beskrivs omfången i alfabetisk ordning.

För närvarande kräver alla Intune-behörighetsomfattningar administratörsåtkomst. Det innebär att du behöver motsvarande autentiseringsuppgifter när du kör appar eller skript som har åtkomst till Intune API-resurser.

DeviceManagementApps.Read.All

  • Inställningen Aktivera åtkomst: Läsa Microsoft Intune appar

  • Tillåter läsåtkomst till följande entitetsegenskaper och status:

    • Klientappar
    • Kategorier för mobilappar
    • Appskyddsprinciper
    • Appkonfigurationer

DeviceManagementApps.ReadWrite.All

  • Inställningen Aktivera åtkomst: Läsa och skriva Microsoft Intune appar

  • Tillåter samma åtgärder som DeviceManagementApps.Read.All

  • Tillåter även ändringar i följande entiteter:

    • Klientappar
    • Kategorier för mobilappar
    • Appskyddsprinciper
    • Appkonfigurationer

DeviceManagementConfiguration.Read.All

  • Inställningen Aktivera åtkomst: Läsa Microsoft Intune enhetskonfiguration och principer

  • Tillåter läsåtkomst till följande entitetsegenskaper och status:

    • Enhetskonfiguration
    • Princip för enhetsefterlevnad
    • Meddelanden

DeviceManagementConfiguration.ReadWrite.All

  • Inställningen Aktivera åtkomst: Läsa och skriva Microsoft Intune enhetskonfiguration och principer

  • Tillåter samma åtgärder som DeviceManagementConfiguration.Read.All

  • Appar kan också skapa, tilldela, ta bort och ändra följande entiteter:

    • Enhetskonfiguration
    • Princip för enhetsefterlevnad
    • Meddelanden

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Inställningen Aktivera åtkomst: Utföra användarpåverkande fjärråtgärder på Microsoft Intune enheter

  • Tillåter följande fjärråtgärder på en hanterad enhet:

    • Pensionera
    • Rensa
    • Återställa lösenord
    • Fjärrlås
    • Aktivera/inaktivera borttappat läge
    • Rensa dator
    • Omstart
    • Ta bort användare från delad enhet

DeviceManagementManagedDevices.Read.All

  • Inställningen Aktivera åtkomst: Läsa Microsoft Intune enheter

  • Tillåter läsåtkomst till följande entitetsegenskaper och status:

    • Hanterad enhet
    • Enhetskategori
    • Identifierad app
    • Fjärråtgärder
    • Information om skadlig kod

DeviceManagementManagedDevices.ReadWrite.All

  • Inställningen Aktivera åtkomst: Läsa och skriva Microsoft Intune enheter

  • Tillåter samma åtgärder som DeviceManagementManagedDevices.Read.All

  • Appar kan också skapa, ta bort och ändra följande entiteter:

    • Hanterad enhet
    • Enhetskategori
  • Följande fjärråtgärder tillåts också:

    • Leta upp enheter
    • Inaktivera aktiveringslås
    • Begär fjärrhjälp

DeviceManagementRBAC.Read.All

  • Inställningen Aktivera åtkomst: Läsa Microsoft Intune RBAC-inställningar

  • Tillåter läsåtkomst till följande entitetsegenskaper och status:

    • Rolltilldelningar
    • Rolldefinitioner
    • Resursåtgärder

DeviceManagementRBAC.ReadWrite.All

  • Inställningen Aktivera åtkomst: Läsa och skriva Microsoft Intune RBAC-inställningar

  • Tillåter samma åtgärder som DeviceManagementRBAC.Read.All

  • Appar kan också skapa, tilldela, ta bort och ändra följande entiteter:

    • Rolltilldelningar
    • Rolldefinitioner

DeviceManagementServiceConfig.Read.All

  • Inställningen Aktivera åtkomst: Läsa Microsoft Intune konfiguration

  • Tillåter läsåtkomst till följande entitetsegenskaper och status:

    • Enhetsregistrering
    • Apple Push Notification Certificate
    • Apples program för enhetsregistrering
    • Apples volyminköpsprogram
    • Exchange Connector
    • Allmänna villkor
    • Cloud PKI
    • Branding
    • Mobile Threat Defense

DeviceManagementServiceConfig.ReadWrite.All

  • Inställningen Aktivera åtkomst: Läsa och skriva Microsoft Intune konfiguration

  • Tillåter samma åtgärder som DeviceManagementServiceConfig.Read.All_

  • Appar kan också konfigurera följande Intune-funktioner:

    • Enhetsregistrering
    • Apple Push Notification Certificate
    • Apples program för enhetsregistrering
    • Apples volyminköpsprogram
    • Exchange Connector
    • Allmänna villkor
    • Cloud PKI
    • Branding
    • Mobile Threat Defense

Microsoft Entra autentiseringsexempel

Det här avsnittet visar hur du införlivar Microsoft Entra ID i dina C#- och PowerShell-projekt.

I varje exempel måste du ange ett program-ID som har minst behörighetsomfånget DeviceManagementManagedDevices.Read.All (beskrivs tidigare).

När du testar något av exemplen kan du få HTTP-statusfelet 403 (Förbjuden) som liknar följande:

{
  "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"
    }
  }
}

Om detta inträffar kontrollerar du att:

  • Du har uppdaterat program-ID:t till en som har behörighet att använda Microsoft Graph API och behörighetsomfångetDeviceManagementManagedDevices.Read.All.

  • Dina autentiseringsuppgifter för klientorganisationen stöder administrativa funktioner.

  • Koden liknar de exempel som visas.

Autentisera Microsoft Entra ID i C#

Det här exemplet visar hur du använder C# för att hämta en lista över enheter som är associerade med ditt Intune-konto.

Obs!

Azure AD Graph API är i sin pensionsfas. Mer information finns i Uppdatera dina program så att de använder Microsoft Authentication Library (MSAL) och Microsoft Graph API.

  1. Starta Visual Studio och skapa sedan ett nytt Visual C#-konsolappprojekt (.NET Framework).

  2. Ange ett namn för projektet och ange annan information som du vill.

    Skapa ett C#-konsolappprojekt i Visual Studio
  3. Använd Solution Explorer för att lägga till Microsoft MSAL NuGet-paketet i projektet:

    1. Högerklicka på Solution Explorer.
    2. Välj Hantera NuGet-paket...>Bläddra.
    3. Välj Microsoft.Identity.Client och välj sedan Installera.
  4. Lägg till följande instruktioner överst i Program.cs:

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. Lägg till en metod för att skapa auktoriseringshuvudet:

    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();
    

    Kom ihåg att ändra värdet application_ID för så att det matchar ett som har beviljats minst behörighetsomfånget, enligt beskrivningen DeviceManagementManagedDevices.Read.All tidigare.

  6. Lägg till en metod för att hämta listan över enheter:

    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. Uppdatera Main för att anropa GetMyManagedDevices:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Kompilera och kör programmet.

När du först kör programmet bör du få två frågor. Den första begär dina autentiseringsuppgifter och den andra beviljar behörigheter för managedDevices begäran.

Här är det slutförda programmet som referens:

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");
        }
    }
}

Autentisera Microsoft Entra ID med Microsoft Graph PowerShell

PowerShell-skript kan använda Microsoft Graph PowerShell-modulen för autentisering. Mer information finns i Microsoft Graph PowerShell och Intune PowerShell-exemplen.

Stöd för flera klienter och partner

Om din organisation stöder organisationer med egna Microsoft Entra klientorganisationer kanske du vill tillåta dina klienter att använda ditt program med sina respektive klientorganisationer.

Gör så här:

  1. Kontrollera att klientkontot finns i målklientorganisationen Microsoft Entra.

  2. Kontrollera att ditt klientkonto tillåter användare att registrera program (se Användarinställningar).

  3. Upprätta en relation mellan varje klientorganisation.

    Det gör du genom att antingen:

    a. Använd Microsoft Partner Center för att definiera en relation med din klient och deras e-postadress.

    b. Bjud in användaren att bli gäst i din klientorganisation.

Så här bjuder du in användaren att vara gäst i din klientorganisation:

  1. Välj Lägg till en gästanvändare på panelen Snabbuppgifter .

    Använda snabbuppgifter för att lägga till en gästanvändare
  2. Ange klientens e-postadress och (om du vill) lägga till ett personligt meddelande för inbjudan.

    Bjuda in en extern användare som gäst
  3. Välj Bjud in.

Detta skickar en inbjudan till användaren.

En exempelinbjudan

Användaren måste välja länken Kom igång för att acceptera din inbjudan.

När relationen har upprättats (eller om din inbjudan har accepterats) lägger du till användarkontot i katalogrollen.

Kom ihåg att lägga till användaren i andra roller efter behov. För att användaren ska kunna hantera Intune-inställningar måste de till exempel vara antingen global administratör eller Intune-tjänstadministratör.

Också:

  • Använd https://admin.microsoft.com för att tilldela en Intune-licens till ditt användarkonto.

  • Uppdatera programkoden för att autentisera till klientens Microsoft Entra klientdomän i stället för din egen.

    Anta till exempel att din klientdomän är contosopartner.onmicrosoft.com och att klientens klientdomän är northwind.onmicrosoft.com, du uppdaterar koden för att autentisera till klientens klientorganisation.

    Om du vill göra det i ett C#-program baserat på det tidigare exemplet ändrar du värdet för variabeln authority :

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

    Att

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