Comment utiliser Microsoft Entra ID pour accéder aux API Intune dans Microsoft Graph

Microsoft API Graph prend désormais en charge Microsoft Intune avec des API et des rôles d’autorisation spécifiques. Microsoft API Graph utilise Microsoft Entra ID pour l’authentification et le contrôle d’accès.
L’accès aux API Intune dans Microsoft Graph nécessite :

  • Un ID d’application avec :

    • Autorisation d’appeler Microsoft Entra ID et les API Microsoft Graph.
    • Les étendues d’autorisation pertinentes pour les tâches spécifiques de l’application.
  • Informations d'identification d'utilisateur avec :

    • Autorisation d’accéder au locataire Microsoft Entra associé à l’application.
    • Les autorisations de rôle requises pour prendre en charge les étendues d’autorisation de l’application.
  • L’utilisateur final doit accorder l’autorisation à l’application d’effectuer des tâches d’application pour son locataire Azure.

Cet article :

  • Montre comment inscrire une application avec accès au API Graph Microsoft et aux rôles d’autorisation appropriés.

  • Décrit les rôles d’autorisation d’API Intune.

  • Fournit des exemples d’authentification d’API Intune pour C# et PowerShell.

  • Décrit comment prendre en charge plusieurs locataires.

Pour en savoir plus, reportez-vous à la rubrique :

Inscrire des applications pour utiliser l’API Microsoft Graph

Pour inscrire une application pour qu’elle utilise l’API Microsoft Graph :

  1. Connectez-vous au centre d’administration Microsoft Intune à l’aide des informations d’identification d’administration.

    Selon le cas, vous pouvez utiliser :

    • Le compte d’administrateur du client.
    • Un compte d’utilisateur client avec le paramètre Utilisateurs peut inscrire des applications activé.
  2. Sélectionnez Tous les services>M365 Microsoft Entra ID>Microsoft Entra ID>inscriptions d'applications.

    Commande de menu inscriptions d'applications
  3. Choisissez Nouvelle inscription pour créer une application ou choisissez une application existante. (Si vous choisissez une application existante, ignorez l’étape suivante.)

  4. Dans le volet Inscrire une application , spécifiez les éléments suivants :

  5. Dans le volet d’application :

    1. Notez la valeur de l’ID d’application (client).

    2. Sélectionnez Autorisations API.

  6. Dans le volet Autorisations d’API, choisissez Ajouter une autorisation>API> MicrosoftGraph. Ensuite, sélectionnez le type d’autorisations dont votre application a besoin.

    Choisissez les rôles requis pour votre application en plaçant une coche à gauche des noms appropriés. Pour en savoir plus sur des étendues d’autorisation Intune spécifiques, consultez Étendues d’autorisation Intune. Pour en savoir plus sur les autres étendues d’autorisation API Graph, consultez informations de référence sur les autorisations Microsoft Graph.

    Pour de meilleurs résultats, choisissez le minimum de rôles nécessaires pour implémenter votre application.

Autorisations d’entrepôt de données et de création de rapports

Lorsque vous ajoutez une application via le centre d'administration Microsoft Entra, vous pouvez choisir les autorisations de l’API Intune en fonction des exigences de votre application.

  • get_data_warehouse : utilisez cette autorisation d’API pour accorder l’accès à l’API de l’entrepôt de données Intune à partir de Microsoft Intune. Pour plus d’informations, consultez Utilisation de la Microsoft Intune Data Warehouse.

API de solution partenaire

Les autorisations d’API Intune suivantes sont disponibles lors de l’ajout d’une application via le centre d'administration Microsoft Entra :

  • get_device_compliance : cette autorisation d’API est utilisée pour obtenir des informations sur l’état et la conformité de l’appareil à partir de Microsoft Intune. Cette autorisation d’API est utilisée par les partenaires network Access Control. Pour plus d’informations, consultez Intégration du Access Control réseau à Intune.
  • manage_partner_compliance_policy : cette autorisation d’API est utilisée pour gérer les stratégies de conformité des partenaires avec Microsoft Intune. Cette autorisation d’API permet à l’application d’envoyer des stratégies de conformité partenaire et son affectation de groupe Microsoft Entra à Microsoft Intune sans utilisateur connecté. Il est utilisé par les partenaires de conformité des appareils. Pour plus d’informations, consultez Partenaires de conformité des appareils tiers.
  • pfx_cert_provider : cette autorisation d’API est utilisée pour envoyer des certificats PFX à Intune pour un utilisateur spécifique. Intune remet le certificat à tous les appareils inscrits par l’utilisateur. Pour plus d’informations, consultez PfX Import PowerShell.
  • scep_challenge_provider : cette autorisation d’API est utilisée pour envoyer des défis SCEP à Intune pour la validation des demandes de certificat. Il est utilisé par les partenaires de l’autorité de certification. Pour plus d’informations, consultez Autorité de certification partenaire.
  • update_device_attributes : cette autorisation d’API est utilisée pour envoyer des informations d’appareil à Intune à partir de partenaires de conformité des appareils et de défense contre les menaces mobiles. Pour plus d’informations, consultez Intégration de Mobile Threat Defense à Intune et à des partenaires tiers de conformité des appareils.
  • update_device_health : cette autorisation d’API est utilisée pour envoyer des informations sur l’intégrité des appareils et les status des menaces à Intune à partir de partenaires de défense contre les menaces mobiles. Pour plus d’informations, consultez Intégration de Mobile Threat Defense à Intune.

Si vous êtes un partenaire intéressé par l’intégration à Intune à l’aide de ces autorisations d’API, contactez l’équipe Microsoft Intelligent Security Association] pour plus d’informations.

Lorsque vous avez terminé, choisissez Ajouter des autorisations pour enregistrer vos modifications.

À ce stade, vous pouvez également :

  • Choisissez d’accorder à tous les comptes de locataire l’autorisation d’utiliser l’application sans fournir d’informations d’identification.

    Pour ce faire, vous pouvez accorder des autorisations et accepter l’invite de confirmation.

    Lorsque vous exécutez l’application pour la première fois, vous êtes invité à accorder à l’application l’autorisation d’effectuer les rôles sélectionnés.

  • Mettent l’application à la disposition des utilisateurs en dehors de votre locataire. (Cela n’est généralement requis que pour les partenaires qui prennent en charge plusieurs locataires/organisations.)

    Pour ce faire, procédez comme suit :

    1. Choisissez Manifeste dans le volet de l’application.

      Panneau Modifier le manifeste
    2. Remplacez la valeur du paramètre par availableToOtherTenantstrue.

    3. Enregistrez vos modifications.

Liste des applications

Si vous recevez une grande quantité de données lors de la demande de votre liste d’applications lors de l’utilisation de API Graph, vous pouvez rencontrer une erreur 503 Service indisponible. Nous vous recommandons de réessayer avec une taille de page plus petite, par exemple 20 éléments ou moins.

Étendues d’autorisation Intune

Microsoft Entra ID et Microsoft Graph utilisent des étendues d’autorisation pour contrôler l’accès aux ressources d’entreprise.

Les étendues d’autorisation (également appelées étendues OAuth) contrôlent l’accès à des entités Intune spécifiques et à leurs propriétés. Cette section récapitule les étendues d’autorisation pour les fonctionnalités de l’API Intune.

Pour en savoir plus :

Lorsque vous accordez une autorisation à Microsoft Graph, vous pouvez spécifier les étendues suivantes pour contrôler l’accès aux fonctionnalités Intune : le tableau suivant récapitule les étendues d’autorisation de l’API Intune. La première colonne affiche le nom de la fonctionnalité tel qu’il est affiché dans le centre d’administration Microsoft Intune et la deuxième colonne indique le nom de l’étendue d’autorisation.

Activer le paramètre Access Nom de l’étendue
Effectuer des actions à distance à fort impact sur les appareils gérés par Microsoft Intune DeviceManagementManagedDevices.PrivilegedOperations.All
Accéder en lecture et en écriture aux appareils gérés par Microsoft Intune DeviceManagementManagedDevices.ReadWrite.All
Accéder en lecture aux appareils gérés par Microsoft Intune DeviceManagementManagedDevices.Read.All
Accéder en lecture et en écriture aux paramètres RBAC de Microsoft Intune DeviceManagementRBAC.ReadWrite.All
Accéder en lecture aux paramètres RBAC de Microsoft Intune DeviceManagementRBAC.Read.All
Accéder en lecture et en écriture aux applications gérées par Microsoft Intune DeviceManagementApps.ReadWrite.All
Accéder en lecture aux applications Microsoft Intune DeviceManagementApps.Read.All
Lire et écrire Microsoft Intune configuration et stratégies d’appareil DeviceManagementConfiguration.ReadWrite.All
Lire Microsoft Intune configuration et stratégies de l’appareil DeviceManagementConfiguration.Read.All
Accéder en lecture et en écriture à la configuration de Microsoft Intune DeviceManagementServiceConfig.ReadWrite.All
Accéder en lecture à la configuration de Microsoft Intune DeviceManagementServiceConfig.Read.All

Le tableau répertorie les paramètres tels qu’ils apparaissent dans le centre d’administration Microsoft Intune. Les sections suivantes décrivent les étendues par ordre alphabétique.

À ce stade, toutes les étendues d’autorisation Intune nécessitent un accès administrateur. Cela signifie que vous avez besoin d’informations d’identification correspondantes lors de l’exécution d’applications ou de scripts qui accèdent aux ressources de l’API Intune.

DeviceManagementApps.Read.All

  • Paramètre Activer l’accès : Lire Microsoft Intune applications

  • Autorise l’accès en lecture aux propriétés et status d’entité suivantes :

    • Applications clientes
    • Catégories d’applications mobiles
    • Stratégies de protection des applications
    • Configurations d’application

DeviceManagementApps.ReadWrite.All

  • Paramètre Activer l’accès : Lecture et écriture Microsoft Intune applications

  • Autorise les mêmes opérations que DeviceManagementApps.Read.All

  • Autorise également les modifications apportées aux entités suivantes :

    • Applications clientes
    • Catégories d’applications mobiles
    • Stratégies de protection des applications
    • Configurations d’application

DeviceManagementConfiguration.Read.All

  • Paramètre Activer l’accès : Lire Microsoft Intune la configuration et les stratégies d’appareil

  • Autorise l’accès en lecture aux propriétés et status d’entité suivantes :

    • Configuration de l’appareil
    • Stratégie de conformité des appareils
    • Notification Messages

DeviceManagementConfiguration.ReadWrite.All

  • Paramètre Activer l’accès : lecture et écriture Microsoft Intune configuration et stratégies d’appareil

  • Autorise les mêmes opérations que DeviceManagementConfiguration.Read.All

  • Les applications peuvent également créer, affecter, supprimer et modifier les entités suivantes :

    • Configuration de l’appareil
    • Stratégie de conformité des appareils
    • Notification Messages

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Paramètre Activer l’accès : effectuer des actions à distance impactant l’utilisateur sur les appareils Microsoft Intune

  • Autorise les actions à distance suivantes sur un appareil géré :

    • Mettre hors service
    • Réinitialisation
    • Réinitialiser/récupérer le code secret
    • Verrouillage à distance
    • Activer/désactiver le mode Perdu
    • Nettoyer le PC
    • Redémarrer
    • Supprimer un utilisateur d’un appareil partagé

DeviceManagementManagedDevices.Read.All

  • Paramètre Activer l’accès : Appareils Microsoft Intune en lecture

  • Autorise l’accès en lecture aux propriétés et status d’entité suivantes :

    • Appareil géré
    • Catégorie d’appareil
    • Application détectée
    • Actions à distance.
    • Informations sur les programmes malveillants

DeviceManagementManagedDevices.ReadWrite.All

  • Paramètre Activer l’accès : Lecture et écriture Microsoft Intune appareils

  • Autorise les mêmes opérations que DeviceManagementManagedDevices.Read.All

  • Les applications peuvent également créer, supprimer et modifier les entités suivantes :

    • Appareil géré
    • Catégorie d’appareil
  • Les actions à distance suivantes sont également autorisées :

    • Localiser les appareils
    • Désactiver le verrou d’activation
    • Demander une assistance à distance

DeviceManagementRBAC.Read.All

  • Paramètre Activer l’accès : lecture Microsoft Intune paramètres RBAC

  • Autorise l’accès en lecture aux propriétés et status d’entité suivantes :

    • Attributions de rôles
    • Définitions de rôles
    • Opérations sur les ressources

DeviceManagementRBAC.ReadWrite.All

  • Paramètre Activer l’accès : lecture et écriture Microsoft Intune paramètres RBAC

  • Autorise les mêmes opérations que DeviceManagementRBAC.Read.All

  • Les applications peuvent également créer, affecter, supprimer et modifier les entités suivantes :

    • Attributions de rôles
    • Définitions de rôles

DeviceManagementServiceConfig.Read.All

  • Paramètre Activer l’accès : configuration Microsoft Intune en lecture

  • Autorise l’accès en lecture aux propriétés et status d’entité suivantes :

    • Inscription de l’appareil
    • Certificat de notification Push Apple
    • Programme d’inscription des appareils Apple
    • Programme d’achat en volume Apple
    • Connecteur Exchange
    • Conditions générales
    • PKI cloud
    • Personnalisation
    • Défense contre les menaces mobiles

DeviceManagementServiceConfig.ReadWrite.All

  • Paramètre Activer l’accès : configuration de Microsoft Intune en lecture et en écriture

  • Autorise les mêmes opérations que DeviceManagementServiceConfig.Read.All_

  • Les applications peuvent également configurer les fonctionnalités Intune suivantes :

    • Inscription de l’appareil
    • Certificat de notification Push Apple
    • Programme d’inscription des appareils Apple
    • Programme d’achat en volume Apple
    • Connecteur Exchange
    • Conditions générales
    • PKI cloud
    • Personnalisation
    • Défense contre les menaces mobiles

exemples d’authentification Microsoft Entra

Cette section montre comment incorporer des Microsoft Entra ID dans vos projets C# et PowerShell.

Dans chaque exemple, vous devez spécifier un ID d’application qui a au moins l’étendue d’autorisation DeviceManagementManagedDevices.Read.All (décrite précédemment).

Lors du test de l’un ou l’autre exemple, vous pouvez recevoir des erreurs HTTP status 403 (Interdit) similaires à ce qui suit :

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

Si cela se produit, vérifiez que :

  • Vous avez mis à jour l’ID d’application avec un id autorisé à utiliser microsoft API Graph et l’étendue d’autorisationDeviceManagementManagedDevices.Read.All.

  • Vos informations d’identification de locataire prennent en charge les fonctions d’administration.

  • Votre code est similaire aux exemples affichés.

Authentifier Microsoft Entra ID en C#

Cet exemple montre comment utiliser C# pour récupérer une liste d’appareils associés à votre compte Intune.

Remarque

Azure AD API Graph est en phase de mise hors service. Pour plus d’informations, consultez Mettre à jour vos applications afin d’utiliser la bibliothèque d’authentification Microsoft (MSAL) et l’API Microsoft Graph.

  1. Démarrez Visual Studio, puis créez un projet d’application console Visual C# (.NET Framework).

  2. Entrez un nom pour votre projet et fournissez d’autres détails selon vos besoins.

    Création d’un projet d’application console C# dans Visual Studio
  3. Utilisez la Explorateur de solutions pour ajouter le package NuGet Microsoft MSAL au projet :

    1. Cliquez avec le bouton droit sur le Explorateur de solutions.
    2. Choisissez Gérer les packages NuGet...>Parcourir.
    3. Sélectionnez Microsoft.Identity.Client , puis choisissez Installer.
  4. Ajoutez les instructions suivantes en haut de Program.cs :

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. Ajoutez une méthode pour créer l’en-tête d’autorisation :

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

    N’oubliez pas de modifier la valeur de application_ID pour qu’elle corresponde à celle accordée au moins à l’étendue de l’autorisation DeviceManagementManagedDevices.Read.All , comme décrit précédemment.

  6. Ajoutez une méthode pour récupérer la liste des appareils :

    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. Mettez à jour Main pour appeler GetMyManagedDevices :

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Compilez et exécutez votre programme.

Lorsque vous exécutez votre programme pour la première fois, vous devez recevoir deux invites. Le premier demande vos informations d’identification et le second accorde des autorisations pour la managedDevices demande.

Pour référence, voici le programme terminé :

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

Authentifier Microsoft Entra ID à l’aide de Microsoft Graph PowerShell

Les scripts PowerShell peuvent utiliser le module Microsoft Graph PowerShell pour l’authentification. Pour plus d’informations, consultez Microsoft Graph PowerShell et les exemples Intune PowerShell.

Prendre en charge plusieurs locataires et partenaires

Si votre organization prend en charge des organisations avec leurs propres locataires Microsoft Entra, vous pouvez autoriser vos clients à utiliser votre application avec leurs locataires respectifs.

Pour ce faire, procédez comme suit :

  1. Vérifiez que le compte client existe dans le locataire Microsoft Entra cible.

  2. Vérifiez que votre compte de locataire permet aux utilisateurs d’inscrire des applications (voir Paramètres utilisateur).

  3. Établissez une relation entre chaque locataire.

    Pour ce faire, procédez comme suit :

    a. Utilisez l’Espace partenaires Microsoft pour définir une relation avec votre client et son adresse e-mail.

    b. Invitez l’utilisateur à devenir un invité de votre locataire.

Pour inviter l’utilisateur à être l’invité de votre locataire :

  1. Choisissez Ajouter un utilisateur invité dans le panneau Tâches rapides .

    Utiliser les tâches rapides pour ajouter un utilisateur invité
  2. Entrez l’adresse e-mail du client et (éventuellement) ajoutez un message personnalisé pour l’invitation.

    Invitation d’un utilisateur externe en tant qu’invité
  3. Choisissez Inviter.

Cette opération envoie une invitation à l’utilisateur.

Exemple d’invitation d’invité

L’utilisateur doit choisir le lien Prise en main pour accepter votre invitation.

Lorsque la relation est établie (ou que votre invitation a été acceptée), ajoutez le compte d’utilisateur au rôle d’annuaire.

N’oubliez pas d’ajouter l’utilisateur à d’autres rôles en fonction des besoins. Par exemple, pour permettre à l’utilisateur de gérer les paramètres Intune, il doit être administrateur général ou administrateur de service Intune.

En outre :

  • Utilisez https://admin.microsoft.com pour attribuer une licence Intune à votre compte d’utilisateur.

  • Mettez à jour le code de l’application pour vous authentifier auprès du domaine de locataire Microsoft Entra du client, plutôt que le vôtre.

    Par exemple, supposons que votre domaine de locataire est contosopartner.onmicrosoft.com et que le domaine de locataire de votre client est northwind.onmicrosoft.com, vous devez mettre à jour votre code pour vous authentifier auprès du locataire de votre client.

    Pour ce faire, dans une application C# basée sur l’exemple précédent, vous devez modifier la valeur de la authority variable :

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

    au

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