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 Microsoft Graph-API:er.
- Behörighetsomfång som är relevanta för de specifika programuppgifterna.
Användarautentiseringsuppgifter med:
- Behörighet att komma åt Microsoft Entra-klientorganisationen 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:
- Auktorisera åtkomst till webbprogram med OAuth 2.0 och Microsoft Entra ID
- Komma igång med Microsoft Entra-autentisering
- Integrera program med Microsoft Entra-ID
- Förstå OAuth 2.0
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:
Logga in på administrationscentret för Microsoft Intune 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.
Välj Alla tjänster>M365 Microsoft Entra ID>Microsoft Entra ID>Appregistreringar.
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.)
I fönstret Registrera ett program anger du följande:
Ett namn för programmet (visas när användarna loggar in).
Kontotypen Som stöds.
Ett omdirigerings-URI-värde . Det här värdet är ett alternativ.
Obs!
Azure AD Graph API är i sin tillbakadragningsfas. Mer information finns i Uppdatera dina program så att de använder Microsoft Authentication Library (MSAL) och Microsoft Graph API.
Mer information finns i Autentiseringsscenarier för Microsoft Entra-ID.
Från programfönstret:
Observera ID-värdet för program (klient ).
Välj API-behörigheter.
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 administrationscentret för Microsoft Entra 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 Intune-api:et för 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 administrationscentret för Microsoft Entra:
- 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 partner för nätverksåtkomstkontroll. Mer information finns i Integrering av nätverksåtkomstkontroll 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:
Välj Manifest i programfönstret.
Ändra värdet för inställningen
availableToOtherTenants
tilltrue
.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 fel om att tjänsten inte är tillgänglig för 503. 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 administrationscentret för Microsoft Intune 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 RBAC-inställningar för Microsoft Intune | DeviceManagementRBAC.ReadWrite.All |
Läs 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 Enhetskonfiguration och principer för Microsoft Intune | DeviceManagementConfiguration.ReadWrite.All |
Läs Konfiguration och principer för Microsoft Intune-enheter | DeviceManagementConfiguration.Read.All |
Läsa och skriva Microsoft Intune-konfiguration | DeviceManagementServiceConfig.ReadWrite.All |
Läs Microsoft Intune-konfiguration | DeviceManagementServiceConfig.Read.All |
Tabellen visar inställningarna som de visas i administrationscentret för Microsoft Intune. 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 enhetskonfiguration och principer för Microsoft Intune
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 enhetskonfiguration och principer för Microsoft Intune
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 RBAC-inställningar för Microsoft Intune
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 RBAC-inställningar för Microsoft Intune
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
- Moln-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
- Moln-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ånget
DeviceManagementManagedDevices.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 tillbakadragningsfas. Mer information finns i Uppdatera dina program så att de använder Microsoft Authentication Library (MSAL) och Microsoft Graph API.
Starta Visual Studio och skapa sedan ett nytt Visual C#-konsolappsprojekt (.NET Framework).
Ange ett namn för projektet och ange annan information som du vill.
Använd Solution Explorer för att lägga till Microsoft MSAL NuGet-paketet i projektet:
- Högerklicka på Solution Explorer.
- Välj Hantera NuGet-paket...>Bläddra.
- Välj
Microsoft.Identity.Client
och välj sedan Installera.
Lägg till följande instruktioner överst i Program.cs:
using Microsoft.Identity.Client; using System.Net.Http;
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 beskrivningenDeviceManagementManagedDevices.Read.All
tidigare.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"); }
Uppdatera Main för att anropa GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
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 sina 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:
Kontrollera att klientkontot finns i Microsoft Entra-målklientorganisationen.
Kontrollera att ditt klientkonto tillåter användare att registrera program (se Användarinställningar).
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:
Välj Lägg till en gästanvändare på panelen Snabbuppgifter .
Ange klientens e-postadress och (om du vill) lägga till ett personligt meddelande för inbjudan.
Välj Bjud in.
Detta skickar en inbjudan till användaren.
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 ärnorthwind.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/";
till
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";