So verwenden Sie Azure AD für den Zugriff auf die Intune-APIs in Microsoft Graph

Das Microsoft Graph-API unterstützt jetzt Microsoft Intune mit bestimmten APIs und Berechtigungsrollen. Die Microsoft Graph-API verwendet für die Authentifizierung und Zugriffsteuerung Azure Active Directory (Azure AD).
Für den Zugriff auf die Intune-APIs in Microsoft Graph ist Folgendes erforderlich:

  • Eine Anwendungs-ID mit:

    • Der Berechtigung, Azure AD und die Microsoft Graph-APIs aufzurufen.
    • Berechtigungsbereichen, die für bestimmte Anwendungsaufgaben relevant sind
  • Benutzeranmeldeinformationen mit:

    • Zugriffsberechtigung für den Azure AD-Mandanten, der der Anwendung zugeordnet ist
    • Rollenberechtigungen zur Unterstützung der Anwendungsberechtigungsbereiche
  • Der Endbenutzer muss der App die Berechtigung erteilen, Anwendungen für ihren Azure-Mandanten auszuführen.

Inhalt dieses Artikels:

  • Zeigt, wie Sie eine Anwendung mit Zugriff auf die Microsoft Graph-API und relevante 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:

Registrieren von Apps, um die Microsoft Graph-API zu verwenden

So registrieren Sie eine App, um die Microsoft Graph-API zu verwenden:

  1. Melden Sie sich im Microsoft Endpoint Manager Admin Center mit Ihren Administratoranmeldeinformationen an.

    Dazu können Sie Folgendes verwenden:

    • Die Administratorkonto des Mandanten
    • Ein Mandantenbenutzerkonto mit aktivierter Anwendungseinstellung "Benutzer" kann registriert werden.
  2. Wählen Sie "Alle DiensteM365 > Azure Active Directory > Azure Active Directory App-Registrierungen > aus.

    The App registrations menu command
  3. 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.)

  4. Geben Sie im Bereich "Anwendung registrieren " Folgendes an:

  5. Im Anwendungsbereich:

    1. Beachten Sie den Wert der Anwendungs-ID (Client).

    2. Wählen Sie API-Berechtigungen aus.

  6. Wählen Sie im BEREICH "API-Berechtigungen" die Option "Berechtigung > hinzufügenMicrosoft-APIsMicrosoft-Graph > " aus. Wählen Sie dann den Typ der Berechtigungen aus, die 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 unter Microsoft Graph Berechtigungsreferenz.

    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 das Azure Active Directory Admin Center hinzufügen, können Sie die Intune-API-Berechtigungen basierend auf den Anforderungen Ihrer Anwendung auswählen.

Partnerlösungs-APIs

Die folgenden Intune API-Berechtigungen sind beim Hinzufügen einer Anwendung über das Azure Active Directory Admin Center verfügbar:

  • get_device_compliance – Diese API-Berechtigung wird verwendet, um Gerätestatus- und Complianceinformationen von Microsoft Intune abzurufen. Diese API-Berechtigung wird von Netzwerk-Access Control-Partnern verwendet. Weitere Informationen finden Sie unter Network Access Control integration with Intune.
  • manage_partner_compliance_policy – Diese API-Berechtigung wird verwendet, um Compliancerichtlinien für Partner mit Microsoft Intune zu verwalten. Diese API-Berechtigung ermöglicht es der App, Partnercompliancerichtlinien und ihre Azure AD Gruppenzuweisung an Microsoft Intune zu senden, ohne dass ein Benutzer angemeldet ist. Es wird von Gerätecompliancepartnern verwendet. Weitere Informationen finden Sie unter Drittanbieter-Gerätecompliancepartner.
  • pfx_cert_provider – Diese API-Berechtigung wird verwendet, um PFX-Zertifikate an Intune für einen bestimmten Benutzer zu senden. Intune übergibt das Zertifikat an alle vom Benutzer registrierten Geräte. Weitere Informationen finden Sie unter PFX Import Powershell.
  • scep_challenge_provider – Diese API-Berechtigung wird verwendet, um SCEP-Herausforderungen zur Überprüfung von Zertifikatanforderungen an Intune zu senden. Es wird von Partnern der Zertifizierungsstelle verwendet. Weitere Informationen finden Sie unter Partner Certification Authority.
  • send_data_usage – Diese API-Berechtigung wird verwendet, um Richtlinienänderungen für Geräte basierend auf Schwellenwerten für die Verwaltung von Telekommunikationsausgaben auszulösen. Es wird für Telekommunikationsausgaben-Partnerintegrationen verwendet. Weitere Informationen finden Sie unter Telecom Expense Management in Intune.
  • update_device_attributes – Diese API-Berechtigung wird verwendet, um Geräteinformationen an Intune von Gerätecompliance- und Mobilen Bedrohungsschutzpartnern zu senden. Weitere Informationen finden Sie unter Mobile Threat Defense-Integration mit Intune- und Drittanbieter-Gerätecompliancepartnern.
  • update_device_health – Diese API-Berechtigung wird verwendet, um Informationen zum Geräteintegritäts- und Bedrohungsstatus an Intune mobiler Bedrohungsschutzpartner zu senden. Weitere Informationen finden Sie unter Integration von Mobile Threat Defense in 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 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, dass sie allen Mandantenkonten die Berechtigung erteilen möchten, die App zu verwenden, ohne Anmeldeinformationen bereitzustellen.

    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.

  • Stellen Sie die App für Benutzer außerhalb Ihres Mandanten zur Verfügung. (Dies ist in der Regel nur für Partner erforderlich, die mehrere Mandanten/Organisationen unterstützen.)

    Gehen Sie hierzu folgendermaßen vor:

    1. Wählen Sie im Anwendungsbereich " Manifest " aus.

      The Edit manifest blade
    2. Ändern Sie den Wert der availableToOtherTenants Einstellung in true.

    3. Speichern Sie Ihre Änderungen.

Intune Berechtigungsbereiche

Azure AD und Microsoft Graph Berechtigungsbereiche verwenden, um den Zugriff auf Unternehmensressourcen zu steuern.

Berechtigungsbereiche (auch als OAuth-Bereiche bezeichnet) 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 wie im Microsoft Endpoint Manager Admin Center angezeigt, und die zweite Spalte enthält den Berechtigungsbereichsnamen.

Aktivieren der Access-Einstellung 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, wie sie im Microsoft Endpoint Manager Admin Center angezeigt werden. In den folgenden Abschnitten werden die Bereiche in alphabetischer Reihenfolge beschrieben.

Derzeit benötigen alle Intune Berechtigungsbereiche Administratorzugriff. Dies bedeutet, dass Sie beim Ausführen von Apps oder Skripts, die auf Intune API-Ressourcen zugreifen, entsprechende Anmeldeinformationen benötigen.

DeviceManagementApps.Read.All

  • Aktivieren der Zugriffseinstellung: Lesen Microsoft Intune Apps

  • Ermöglicht lesezugriff auf die folgenden Entitätseigenschaften und den folgenden Status:

    • Client-Apps
    • Kategorien mobiler Apps
    • App-Schutzrichtlinien
    • App-Konfigurationen

DeviceManagementApps.ReadWrite.All

  • Aktivieren der Access-Einstellung: Lesen und Schreiben Microsoft Intune Apps

  • Ermöglicht dieselben Vorgänge wie DeviceManagementApps.Read.All

  • Lässt auch Änderungen an den folgenden Entitäten zu:

    • Client-Apps
    • Kategorien mobiler Apps
    • App-Schutzrichtlinien
    • App-Konfigurationen

DeviceManagementConfiguration.Read.All

  • Aktivieren der Zugriffseinstellung: Lesen Microsoft Intune Gerätekonfiguration und -richtlinien

  • Ermöglicht lesezugriff auf die folgenden Entitätseigenschaften und den folgenden Status:

    • Gerätekonfiguration
    • Gerätekompatibilitätsrichtlinie
    • Benachrichtigungsmeldungen

DeviceManagementConfiguration.ReadWrite.All

  • Aktivieren der Zugriffseinstellung: 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ätekompatibilitätsrichtlinie
    • Benachrichtigungsmeldungen

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Aktivieren der Zugriffseinstellung: Ausführen von benutzerwirksamen Remoteaktionen auf Microsoft Intune Geräten

  • Lässt die folgenden Remoteaktionen auf einem verwalteten Gerät zu:

    • Zurückziehen
    • Wischen
    • Kennung zurücksetzen/wiederherstellen
    • Remotesperre
    • Aktivieren/Deaktivieren des verlorenen Modus
    • Sauberer PC
    • Neustart
    • Benutzer vom freigegebenen Gerät löschen

DeviceManagementManagedDevices.Read.All

  • Aktivieren der Access-Einstellung: Lesen Microsoft Intune Geräten

  • Ermöglicht lesezugriff auf die folgenden Entitätseigenschaften und den folgenden Status:

    • Verwaltetes Gerät
    • Gerätekategorie
    • Erkannte App
    • Remoteaktionen
    • Schadsoftwareinformationen

DeviceManagementManagedDevices.ReadWrite.All

  • Aktivieren der Access-Einstellung: Lesen und Schreiben 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

  • Aktivieren der Zugriffseinstellung: Lesen Microsoft Intune RBAC-Einstellungen

  • Ermöglicht lesezugriff auf die folgenden Entitätseigenschaften und den folgenden Status:

    • Rollenzuweisungen
    • Rollendefinitionen
    • Ressourcenvorgänge

DeviceManagementRBAC.ReadWrite.All

  • Access-Einstellung 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

  • Aktivieren der Access-Einstellung: Microsoft Intune-Konfiguration lesen

  • Ermöglicht lesezugriff auf die folgenden Entitätseigenschaften und den folgenden Status:

    • Geräteregistrierung
    • Apple Push Notification Certificate
    • Apple Device Enrollment Program
    • Apple Volume Purchase Program
    • Exchange Connector
    • Bedingungen
    • Telecoms Expense Management
    • Cloud-PKI
    • Branding
    • Mobile Threat Defense

DeviceManagementServiceConfig.ReadWrite.All

  • Access-Einstellung aktivieren: Microsoft Intune-Konfiguration lesen und schreiben

  • Ermöglicht dieselben Vorgänge wie DeviceManagementServiceConfig.Read.All_

  • Apps können auch die folgenden Intune Features konfigurieren:

    • Geräteregistrierung
    • Apple Push Notification Certificate
    • Apple Device Enrollment Program
    • Apple Volume Purchase Program
    • Exchange Connector
    • Bedingungen
    • Telecoms Expense Management
    • Cloud-PKI
    • Branding
    • Mobile Threat Defense

beispiele für Azure AD-Authentifizierung

In diesem Abschnitt wird gezeigt, wie Sie Azure AD 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 beider Beispiele erhalten Sie möglicherweise FEHLER des HTTP-Status 403 (Verboten) ähnlich 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 einen Autor für die Verwendung der Microsoft Graph-API und des DeviceManagementManagedDevices.Read.All Berechtigungsbereichs aktualisiert.

  • Ihre Mandantenanmeldeinformationen unterstützen Administrative Funktionen.

  • Ihr Code ähnelt den angezeigten Beispielen.

Authentifizieren Azure AD in C#

In diesem Beispiel wird gezeigt, wie Sie mit C# eine Liste der Geräte abrufen, die Ihrem Intune-Konto zugeordnet sind.

Hinweis

Azure Active Directory (Azure AD) Authentifizierungsbibliothek (ADAL) und Azure AD Graph-API werden nicht mehr unterstützt. Weitere Informationen finden Sie unter Aktualisieren Ihrer Anwendungen für die Verwendung der Microsoft-Authentifizierungsbibliothek (MSAL) und der Microsoft Graph-API.

  1. Starten Sie Visual Studio, und erstellen Sie dann ein neues Visual C#-Konsolen-App-Projekt (.NET Framework).

  2. Geben Sie einen Namen für Ihr Projekt ein, und geben Sie nach Bedarf weitere Details an.

    Creating a C# console app project in Visual Studio
  3. Verwenden Sie die Projektmappen-Explorer, um dem Projekt das Microsoft MSAL NuGet-Paket hinzuzufügen:

    1. Klicken Sie mit der rechten Maustaste auf die Projektmappen-Explorer.
    2. Wählen Sie "NuGet Pakete verwalten" aus... >Durchsuchen.
    3. Wählen Sie "Installieren" aus Microsoft.IdentityModel.Clients.ActiveDirectory , und wählen Sie dann "Installieren" aus.
    Selecting the Azure AD identity model module
  4. Fügen Sie die folgenden Anweisungen am Anfang von "Program.cs" hinzu:

    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using System.Net.Http;
    
  5. Fügen Sie eine Methode zum Erstellen des Autorisierungsheaders hinzu:

    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 application_ID so zu ändern, dass er mindestens einem DeviceManagementManagedDevices.Read.All Berechtigungsbereich entspricht, wie weiter oben beschrieben.

  6. Fügen Sie eine Methode zum Abrufen der Liste der Geräte hinzu:

    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. Update Main to call GetMyManagedDevices:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Kompilieren Und Führen Sie Ihr Programm aus.

Wenn Sie Das Programm zum ersten Mal ausführen, sollten Sie zwei Eingabeaufforderungen erhalten. Der erste fordert Ihre Anmeldeinformationen an, und der zweite erteilt Berechtigungen für die managedDevices Anforderung.

Als Referenz finden Sie hier das fertige Programm:

using Microsoft.IdentityModel.Clients.ActiveDirectory;
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 Azure AD (PowerShell)

PowerShell-Skripts können das AzureAD PowerShell-Modul für die Authentifizierung verwenden. Weitere Informationen finden Sie unter Azure Active Directory PowerShell Version 2 und den Intune PowerShell-Beispielen.

Unterstützen mehrerer Mandanten und Partner

Wenn Ihre Organisation Organisationen mit eigenen Azure AD Mandanten unterstützt, sollten Sie Ihren Clients die Verwendung Ihrer Anwendung mit ihren jeweiligen Mandanten gestatten.

Gehen Sie hierzu folgendermaßen vor:

  1. Stellen Sie sicher, dass das Clientkonto im Ziel-Azure AD-Mandanten vorhanden ist.

  2. Stellen Sie sicher, dass Ihr Mandantenkonto Benutzern die Registrierung von Anwendungen ermöglicht (siehe Benutzereinstellungen).

  3. Richten Sie eine Beziehung zwischen jedem Mandanten ein.

    Gehen Sie dazu wie folgt vor:

    a. Verwenden Sie das Microsoft Partner Center , um eine Beziehung mit Ihrem Client und deren 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:

  1. Wählen Sie im Bereich "Schnelle Aufgaben" die Option "Gastbenutzer hinzufügen" aus.

    Use Quick Tasks to add a guest user
  2. Geben Sie die E-Mail-Adresse des Clients ein, und fügen Sie (optional) eine personalisierte Nachricht für die Einladung hinzu.

    Inviting an external user as a guest
  3. Wählen Sie "Einladen" aus.

Dadurch wird eine Einladung an den Benutzer gesendet.

A sample guest invitation

Der Benutzer muss den Link Erste Schritte auswählen, um Ihre Einladung anzunehmen.

Wenn die Beziehung eingerichtet ist (oder Ihre Einladung angenommen wurde), fügen Sie das Benutzerkonto der Verzeichnisrolle hinzu.

Denken Sie daran, den Benutzer bei Bedarf anderen Rollen hinzuzufügen. Damit der Benutzer beispielsweise Intune Einstellungen verwalten kann, muss er entweder ein globaler Administrator oder ein Intune-Dienstadministrator sein.

Ferner gilt Folgendes:

  • Hiermit weisen Sie https://admin.microsoft.com Ihrem Benutzerkonto eine Intune Lizenz zu.

  • Aktualisieren Sie den Anwendungscode, um sich bei der Azure AD Mandantendomäne des Clients zu authentifizieren und nicht bei Ihrer eigenen.

    Angenommen, Ihre Mandantendomäne ist contosopartner.onmicrosoft.com und die Mandantendomäne Ihres Clients ist northwind.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/";