Verwenden von Microsoft Entra ID für den Zugriff auf die Intune-APIs in Microsoft Graph
Der Microsoft Graph-API unterstützt jetzt Microsoft Intune mit bestimmten APIs und Berechtigungsrollen. Die Microsoft Graph-API verwendet Microsoft Entra ID für die Authentifizierung und Zugriffssteuerung.
Der Zugriff auf die Intune-APIs in Microsoft Graph erfordert Folgendes:
Eine Anwendungs-ID mit:
- Berechtigung zum Aufrufen Microsoft Entra ID und der Microsoft Graph-APIs.
- Berechtigungsbereichen, die für bestimmte Anwendungsaufgaben relevant sind
Benutzeranmeldeinformationen mit:
- Berechtigung für den Zugriff auf den Microsoft Entra Mandanten, der der Anwendung zugeordnet ist.
- Rollenberechtigungen zur Unterstützung der Anwendungsberechtigungsbereiche
Der Endbenutzer, der der App die Berechtigung zum Ausführen von Anwendungsaufgaben für seinen Azure-Mandanten erteilen soll.
Inhalt dieses Artikels:
Zeigt, wie Sie eine Anwendung mit Zugriff auf die Microsoft Graph-API und relevanten Berechtigungsrollen registrieren.
Beschreibt die Intune API-Berechtigungsrollen.
Enthält Intune API-Authentifizierungsbeispiele für C# und PowerShell.
Beschreibt, wie mehrere Mandanten unterstützt werden.
Weitere Informationen finden Sie unter:
- Autorisieren des Zugriffs auf Webanwendungen mit OAuth 2.0 und Microsoft Entra ID
- Erste Schritte mit der Microsoft Entra-Authentifizierung
- Integrieren von Anwendungen in Microsoft Entra ID
- Grundlegendes zu OAuth 2.0
Registrieren von Apps, um die Microsoft Graph-API zu verwenden
So registrieren Sie eine App, um die Microsoft Graph-API zu verwenden:
Melden Sie sich mit Administratoranmeldeinformationen beim Microsoft Intune Admin Center an.
Dazu können Sie Folgendes verwenden:
- Die Administratorkonto des Mandanten
- Ein Mandantenbenutzerkonto mit aktivierter Einstellung Benutzer können Anwendungen registrieren .
Wählen Sie Alle Dienste>M365 Microsoft Entra ID>Microsoft Entra ID>App-Registrierungen aus.
Klicken Sie entweder auf Neue Registrierung, um eine neue Anwendung zu erstellen, oder wählen Sie eine vorhandene Anwendung aus. (Wenn Sie eine vorhandene Anwendung auswählen, überspringen Sie den nächsten Schritt.)
Geben Sie im Bereich Anwendung registrieren Folgendes an:
Ein Name für die Anwendung (wird angezeigt, wenn sich Benutzer anmelden).
Der Unterstützte Kontotyp.
Ein Umleitungs-URI-Wert . Dieser Wert ist eine Option.
Hinweis
Azure AD Graph-API befindet sich in der Deaktivierungsphase. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.
Weitere Informationen finden Sie unter Authentifizierungsszenarien für Microsoft Entra ID.
Im Anwendungsbereich:
Beachten Sie den Wert der Anwendungs-ID (Client).
Wählen Sie API-Berechtigungen aus.
Wählen Sie im Bereich API-Berechtigungen die OptionMicrosoft-APIs>MicrosoftGraph-Berechtigung> hinzufügen aus. Wählen Sie dann den Berechtigungstyp aus, den Ihre Anwendung benötigt.
Wählen Sie die für Ihre App erforderlichen Rollen aus, indem Sie links neben den relevanten Namen ein Häkchen setzen. Informationen zu bestimmten Intune Berechtigungsbereichen finden Sie unter Intune Berechtigungsbereiche. Weitere Informationen zu anderen Graph-API Berechtigungsbereichen finden Sie in der Referenz zu Microsoft Graph-Berechtigungen.
Wählen Sie für optimale Ergebnisse nur so viele Rollen, wie für die Implementierung Ihrer Anwendung erforderlich sind.
Data Warehouse- und Berichtsberechtigungen
Wenn Sie eine Anwendung über die Microsoft Entra Admin Center hinzufügen, können Sie die Intune API-Berechtigungen basierend auf den Anforderungen Ihrer Anwendung auswählen.
- get_data_warehouse: Verwenden Sie diese API-Berechtigung, um zugriff auf die Intune Data Warehouse-API von Microsoft Intune aus zu gewähren. Weitere Informationen finden Sie unter Verwenden des Microsoft Intune Data Warehouse.
Partnerlösungs-APIs
Die folgenden Intune API-Berechtigungen sind verfügbar, wenn Sie eine Anwendung über die Microsoft Entra Admin Center hinzufügen:
- get_device_compliance: Diese API-Berechtigung wird verwendet, um Gerätestatus- und Konformitätsinformationen aus Microsoft Intune abzurufen. Diese API-Berechtigung wird von Network Access Control-Partnern verwendet. Weitere Informationen finden Sie unter Network Access Control Integration in Intune.
- manage_partner_compliance_policy: Diese API-Berechtigung wird verwendet, um Partnerkonformitätsrichtlinien mit Microsoft Intune zu verwalten. Diese API-Berechtigung ermöglicht es der App, Partnerkonformitätsrichtlinien und ihre Microsoft Entra Gruppenzuweisung ohne angemeldeten Benutzer an Microsoft Intune zu senden. Sie wird von Gerätekonformitätspartnern verwendet. Weitere Informationen finden Sie unter Partner zur Gerätekonformität von Drittanbietern.
- pfx_cert_provider: Diese API-Berechtigung wird verwendet, um PFX-Zertifikate an Intune für einen bestimmten Benutzer zu senden. Intune übermittelt das Zertifikat an alle Geräte, die vom Benutzer registriert wurden. Weitere Informationen finden Sie unter PFX Import PowerShell.
- scep_challenge_provider: Diese API-Berechtigung wird verwendet, um SCEP-Herausforderungen an Intune für die Zertifikatanforderungsüberprüfung zu senden. Es wird von Zertifizierungsstellenpartnern verwendet. Weitere Informationen finden Sie unter Partnerzertifizierungsstelle.
- update_device_attributes: Diese API-Berechtigung wird zum Senden von Geräteinformationen an Intune von Partnern für Gerätekonformität und Mobile Threat Defense verwendet. Weitere Informationen finden Sie unter Mobile Threat Defense-Integration mit Intune und Drittanbieterpartnern zur Gerätekonformität.
- update_device_health: Diese API-Berechtigung wird verwendet, um Informationen zur Geräteintegrität und bedrohungsbasierten status an Intune von Mobilen Threat Defense-Partnern zu senden. Weitere Informationen finden Sie unter Mobile Threat Defense-Integration mit Intune.
Wenn Sie ein Partner sind, der an der Integration mit Intune mithilfe dieser API-Berechtigungen interessiert ist, wenden Sie sich an das Microsoft Intelligent Security Association]-Team, um Weitere Informationen zu erhalten.
Wenn Sie fertig sind, wählen Sie Berechtigungen hinzufügen aus, um Ihre Änderungen zu speichern.
An diesem Punkt können Sie auch:
Wählen Sie aus, um allen Mandantenkonten die Berechtigung zu erteilen, die App ohne Angabe von Anmeldeinformationen zu verwenden.
Sie können zu diesem Zweck Berechtigungen erteilen und die Bestätigungsaufforderung akzeptieren.
Wenn Sie die Anwendung zum ersten Mal ausführen, werden Sie aufgefordert, der App die Berechtigung zum Ausführen der ausgewählten Rollen zu erteilen.
Machen Sie die App für Benutzer außerhalb Ihres Mandanten verfügbar. (Dies ist in der Regel nur für Partner erforderlich, die mehrere Mandanten/Organisationen unterstützen.)
Gehen Sie hierzu folgendermaßen vor:
Wählen Sie im Anwendungsbereich Manifest aus.
Ändern Sie den Wert der
availableToOtherTenants
Einstellung intrue
.Speichern Sie Ihre Änderungen.
App-Auflistung
Wenn Sie beim Anfordern Ihres App-Eintrags bei verwendung von Graph-API eine große Datenmenge erhalten, tritt möglicherweise der Fehler 503 Dienst nicht verfügbar auf. Es wird empfohlen, es erneut mit einem kleineren Seitenformat zu versuchen, z. B. 20 oder weniger Elemente.
Intune Berechtigungsbereiche
Microsoft Entra ID und Microsoft Graph verwenden Berechtigungsbereiche, um den Zugriff auf Unternehmensressourcen zu steuern.
Berechtigungsbereiche (auch OAuth-Bereiche genannt) steuern den Zugriff auf bestimmte Intune Entitäten und deren Eigenschaften. In diesem Abschnitt werden die Berechtigungsbereiche für Intune API-Features zusammengefasst.
So erhalten Sie weitere Informationen:
Wenn Sie Microsoft Graph die Berechtigung erteilen, können Sie die folgenden Bereiche angeben, um den Zugriff auf Intune Features zu steuern: In der folgenden Tabelle sind die Intune API-Berechtigungsbereiche zusammengefasst. In der ersten Spalte wird der Name des Features angezeigt, wie er im Microsoft Intune Admin Center angezeigt wird, und die zweite Spalte enthält den Namen des Berechtigungsbereichs.
Zugriffseinstellung aktivieren | Bereichsname |
---|---|
Remoteaktionen mit Auswirkungen auf den Benutzer auf Microsoft Intune-Geräten durchführen | DeviceManagementManagedDevices.PrivilegedOperations.All |
Microsoft Intune-Geräte lesen und schreiben | DeviceManagementManagedDevices.ReadWrite.All |
Microsoft Intune-Geräte lesen | DeviceManagementManagedDevices.Read.All |
Microsoft Intune-RBAC-Einstellungen lesen und schreiben | DeviceManagementRBAC.ReadWrite.All |
Microsoft Intune-RBAC-Einstellungen lesen | DeviceManagementRBAC.Read.All |
Microsoft Intune-Apps lesen und schreiben | DeviceManagementApps.ReadWrite.All |
Microsoft Intune-Apps lesen | DeviceManagementApps.Read.All |
Lesen und Schreiben Microsoft Intune Gerätekonfiguration und -richtlinien | DeviceManagementConfiguration.ReadWrite.All |
Lesen Microsoft Intune Gerätekonfiguration und -richtlinien | DeviceManagementConfiguration.Read.All |
Microsoft Intune-Konfiguration lesen und schreiben | DeviceManagementServiceConfig.ReadWrite.All |
Microsoft Intune-Konfiguration lesen | DeviceManagementServiceConfig.Read.All |
In der Tabelle sind die Einstellungen aufgeführt, die im Microsoft Intune Admin Center angezeigt werden. In den folgenden Abschnitten werden die Bereiche in alphabetischer Reihenfolge beschrieben.
Derzeit ist für alle Intune Berechtigungsbereiche Administratorzugriff erforderlich. Dies bedeutet, dass Sie die entsprechenden Anmeldeinformationen benötigen, wenn Sie Apps oder Skripts ausführen, die auf Intune API-Ressourcen zugreifen.
DeviceManagementApps.Read.All
Zugriffseinstellung aktivieren: Microsoft Intune-Apps lesen
Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:
- Client-Apps
- Mobile App-Kategorien
- App-Schutzrichtlinien
- App-Konfigurationen
DeviceManagementApps.ReadWrite.All
Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune Apps
Ermöglicht die gleichen Vorgänge wie DeviceManagementApps.Read.All
Ermöglicht außerdem Änderungen an den folgenden Entitäten:
- Client-Apps
- Mobile App-Kategorien
- App-Schutzrichtlinien
- App-Konfigurationen
DeviceManagementConfiguration.Read.All
Zugriffseinstellung aktivieren: Lesen Microsoft Intune Gerätekonfiguration und -richtlinien
Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:
- Gerätekonfiguration
- Gerätekonformitätsrichtlinie
- Benachrichtigungen
DeviceManagementConfiguration.ReadWrite.All
Zugriffseinstellung aktivieren: Lesen und Schreiben Microsoft Intune Gerätekonfiguration und -richtlinien
Ermöglicht die gleichen Vorgänge wie DeviceManagementConfiguration.Read.All
Apps können auch die folgenden Entitäten erstellen, zuweisen, löschen und ändern:
- Gerätekonfiguration
- Gerätekonformitätsrichtlinie
- Benachrichtigungen
DeviceManagementManagedDevices.PrivilegedOperations.All
Zugriffseinstellung aktivieren: Ausführen von Remoteaktionen, die sich auf den Benutzer auswirken, auf Microsoft Intune Geräten
Ermöglicht die folgenden Remoteaktionen auf einem verwalteten Gerät:
- Zurückziehen
- Wischen
- Kennung zurücksetzen/wiederherstellen
- Remotesperre
- Aktivieren/Deaktivieren des Modus für verlorene Daten
- Pc bereinigen
- Neustart
- Löschen eines Benutzers von einem freigegebenen Gerät
DeviceManagementManagedDevices.Read.All
Zugriffseinstellung aktivieren: Lesen Microsoft Intune Geräten
Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:
- Verwaltetes Gerät
- Gerätekategorie
- Erkannte App
- Remoteaktionen
- Informationen zu Schadsoftware
DeviceManagementManagedDevices.ReadWrite.All
Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune Geräten
Ermöglicht die gleichen Vorgänge wie DeviceManagementManagedDevices.Read.All
Apps können auch die folgenden Entitäten erstellen, löschen und ändern:
- Verwaltetes Gerät
- Gerätekategorie
Die folgenden Remoteaktionen sind ebenfalls zulässig:
- Geräte suchen
- Deaktivieren der Aktivierungssperre
- Remoteunterstützung anfordern
DeviceManagementRBAC.Read.All
Zugriffseinstellung aktivieren: Lesen Microsoft Intune RBAC-Einstellungen
Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:
- Rollenzuweisungen
- Rollendefinitionen
- Ressourcenvorgänge
DeviceManagementRBAC.ReadWrite.All
Zugriffseinstellung aktivieren: Lese- und Schreibzugriff Microsoft Intune RBAC-Einstellungen
Ermöglicht die gleichen Vorgänge wie DeviceManagementRBAC.Read.All
Apps können auch die folgenden Entitäten erstellen, zuweisen, löschen und ändern:
- Rollenzuweisungen
- Rollendefinitionen
DeviceManagementServiceConfig.Read.All
Zugriffseinstellung aktivieren: Konfiguration Microsoft Intune lesen
Ermöglicht Lesezugriff auf die folgenden Entitätseigenschaften und status:
- Geräteregistrierung
- Apple-Pushbenachrichtigungszertifikat
- Apple-Programm zur Geräteregistrierung
- Apple Volume Purchase Program
- Exchange Connector
- Bedingungen
- Cloud PKI
- Branding
- Mobile Threat Defense
DeviceManagementServiceConfig.ReadWrite.All
Zugriffseinstellung aktivieren: Lesen und Schreiben Microsoft Intune Konfiguration
Ermöglicht die gleichen Vorgänge wie DeviceManagementServiceConfig.Read.All_
Apps können auch die folgenden Intune-Features konfigurieren:
- Geräteregistrierung
- Apple-Pushbenachrichtigungszertifikat
- Apple-Programm zur Geräteregistrierung
- Apple Volume Purchase Program
- Exchange Connector
- Bedingungen
- Cloud PKI
- Branding
- Mobile Threat Defense
Beispiele für Microsoft Entra-Authentifizierung
In diesem Abschnitt wird gezeigt, wie Sie Microsoft Entra ID in Ihre C#- und PowerShell-Projekte integrieren.
In jedem Beispiel müssen Sie eine Anwendungs-ID angeben, die mindestens den DeviceManagementManagedDevices.Read.All
Berechtigungsbereich aufweist (weiter oben erläutert).
Beim Testen eines der beiden Beispiele erhalten Sie möglicherweise HTTP status 403 (Verboten) Fehler wie die folgenden:
{
"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"
}
}
}
Überprüfen Sie in diesem Fall Folgendes:
Sie haben die Anwendungs-ID auf eine id aktualisiert, die für die Verwendung des Microsoft Graph-API und des
DeviceManagementManagedDevices.Read.All
Berechtigungsbereichs autorisiert ist.Ihre Mandantenanmeldeinformationen unterstützen administrative Funktionen.
Ihr Code ähnelt den angezeigten Beispielen.
Authentifizieren von Microsoft Entra ID in C#
In diesem Beispiel wird gezeigt, wie Sie mit C# eine Liste von Geräten abrufen, die Ihrem Intune-Konto zugeordnet sind.
Hinweis
Azure AD Graph-API befindet sich in der Deaktivierungsphase. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.
Starten Sie Visual Studio, und erstellen Sie dann ein neues Projekt für die Visual C#-Konsolen-App (.NET Framework).
Geben Sie einen Namen für Ihr Projekt ein, und geben Sie nach Bedarf weitere Details an.
Verwenden Sie die Projektmappen-Explorer, um das Microsoft MSAL NuGet-Paket zum Projekt hinzuzufügen:
- Klicken Sie mit der rechten Maustaste auf den Projektmappen-Explorer.
- Wählen Sie NuGet-Pakete verwalten... aus.>Durchsuchen.
- Wählen Sie
Microsoft.Identity.Client
und dann Installieren aus.
Fügen Sie oben in Program.cs die folgenden -Anweisungen hinzu:
using Microsoft.Identity.Client; using System.Net.Http;
Fügen Sie eine Methode hinzu, um den Autorisierungsheader zu erstellen:
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();
Denken Sie daran, den Wert von
application_ID
so zu ändern, dass er mit einem übereinstimmt, dem mindestens derDeviceManagementManagedDevices.Read.All
Berechtigungsbereich gewährt wurde, wie weiter oben beschrieben.Fügen Sie eine Methode hinzu, um die Liste der Geräte abzurufen:
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"); }
Aktualisieren Sie Main , um GetMyManagedDevices aufzurufen:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
Kompilieren Sie Das Programm, und führen Sie es aus.
Wenn Sie Ihr Programm zum ersten Mal ausführen, sollten Sie zwei Eingabeaufforderungen erhalten. Die erste fordert Ihre Anmeldeinformationen an, und die zweite erteilt Berechtigungen für die managedDevices
Anforderung.
Als Referenz finden Sie hier das abgeschlossene Programm:
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");
}
}
}
Authentifizieren von Microsoft Entra ID mithilfe von Microsoft Graph PowerShell
PowerShell-Skripts können das Microsoft Graph PowerShell-Modul für die Authentifizierung verwenden. Weitere Informationen finden Sie unter Microsoft Graph PowerShell und den Intune PowerShell-Beispielen.
Unterstützung mehrerer Mandanten und Partner
Wenn Ihr organization Organisationen mit ihren eigenen Microsoft Entra Mandanten unterstützt, sollten Sie Ihren Clients erlauben, Ihre Anwendung mit ihren jeweiligen Mandanten zu verwenden.
Gehen Sie hierzu folgendermaßen vor:
Vergewissern Sie sich, dass das Clientkonto im Zielmandanten Microsoft Entra vorhanden ist.
Vergewissern Sie sich, dass Ihr Mandantenkonto Benutzern das Registrieren von Anwendungen ermöglicht (siehe Benutzereinstellungen).
Richten Sie eine Beziehung zwischen den einzelnen Mandanten ein.
Führen Sie dazu eine der folgenden Aktionen aus:
a. Verwenden Sie das Microsoft Partner Center , um eine Beziehung zu Ihrem Kunden und dessen E-Mail-Adresse zu definieren.
b. Laden Sie den Benutzer ein, Gast Ihres Mandanten zu werden.
So laden Sie den Benutzer ein, Gast Ihres Mandanten zu sein:
Wählen Sie im Bereich Schnellaufgaben die Option Gastbenutzer hinzufügen aus.
Geben Sie die E-Mail-Adresse des Clients ein, und fügen Sie (optional) eine personalisierte Nachricht für die Einladung hinzu.
Wählen Sie Einladen aus.
Dadurch wird eine Einladung an den Benutzer gesendet.
Der Benutzer muss den Link Erste Schritte auswählen, um Ihre Einladung anzunehmen.
Wenn die Beziehung eingerichtet ist (oder Ihre Einladung akzeptiert wurde), fügen Sie das Benutzerkonto der Verzeichnisrolle hinzu.
Denken Sie daran, den Benutzer nach Bedarf anderen Rollen hinzuzufügen. Damit der Benutzer beispielsweise Intune Einstellungen verwalten kann, muss er mindestens ein Intune-Dienstadministrator sein.
Ferner gilt Folgendes:
Verwenden Sie https://admin.microsoft.com , um Ihrem Benutzerkonto eine Intune-Lizenz zuzuweisen.
Aktualisieren Sie den Anwendungscode so, dass er sich bei der Microsoft Entra Mandantendomäne des Clients authentifiziert und nicht bei Ihrer eigenen.
Angenommen, Ihre Mandantendomäne lautet
contosopartner.onmicrosoft.com
, und die Mandantendomäne Ihres Clients lautetnorthwind.onmicrosoft.com
. Sie würden Ihren Code aktualisieren, um sich beim Mandanten Ihres Clients zu authentifizieren.Um dies in einer C#-Anwendung basierend auf dem vorherigen Beispiel zu tun, würden Sie den Wert der
authority
Variablen ändern:string authority = "https://login.microsoftonline.com/common/";
in
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";