Så här använder du Microsoft Entra ID för att komma åt Intune-API:er 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:er 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 Intune API-behörighetsroller.
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å 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.
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 pensionsfas. 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 Intune behörighetsomfång finns i Intune behörighetsomfång. 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 tredjepartspartner för enhetsefterlevnad.
- 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 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 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.
Intune behörighetsomfång
Microsoft Entra ID och Microsoft Graph använder behörighetsomfattningar för att styra åtkomsten till företagsresurser.
Behörighetsomfattningar (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 Intune API-behörighetsomfattningar. 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å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 pensionsfas. 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#-konsolappprojekt (.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-exempel.
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:
Kontrollera att klientkontot finns i målklientorganisationen Microsoft Entra.
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. Om du till exempel vill att användaren ska kunna hantera Intune inställningar måste de vara minst en 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/";