Obtenir des données à partir de l’API Intune Data Warehouse avec un client REST

Vous pouvez accéder au modèle de données Intune Data Warehouse via des points de terminaison RESTful. Pour accéder à vos données, votre client doit autoriser avec Microsoft Entra ID à l’aide d’OAuth 2.0. Pour activer l’accès, configurez d’abord une application native dans Azure et accordez des autorisations à l’API Microsoft Intune. Votre client local obtient l’autorisation, puis il peut communiquer avec les points de terminaison Data Warehouse via l’application native.

Les étapes de configuration d’un client pour obtenir des données à partir de l’API Data Warehouse vous obligent à :

  1. Create une application cliente en tant qu’application native dans Azure
  2. Accorder à l’application cliente l’accès à l’API Microsoft Intune
  3. Create un client REST local pour obtenir les données

Suivez les étapes suivantes pour apprendre à autoriser et à accéder à l’API avec un client REST. Tout d’abord, vous allez examiner l’utilisation d’un client REST générique à l’aide de Postman. Postman est un outil couramment utilisé pour résoudre les problèmes et développer des clients REST pour travailler avec des API. Pour plus d’informations sur Postman, consultez le site Postman . Vous pouvez ensuite examiner un exemple de code C#. L’exemple fournit un exemple d’autorisation d’un client et d’obtention de données à partir de l’API.

Create une application cliente en tant qu’application native dans Azure

Create une application native dans Azure. Cette application native est l’application cliente. Le client s’exécutant sur votre ordinateur local fait référence à l’API Intune Data Warehouse lorsque le client local demande des informations d’identification.

  1. Connectez-vous au Centre d'administration Microsoft 365.
  2. Choisissez Microsoft Entra ID Inscriptions>des applications pour ouvrir le volet inscriptions d'applications.
  3. Sélectionnez Nouvelle inscription d’application.
  4. Tapez les détails de l’application.
    1. Tapez un nom convivial, tel que « Intune Data Warehouse client » pour le nom.
    2. Sélectionnez Comptes dans cet annuaire organisationnel uniquement (Microsoft uniquement - Monolocataire) pour les types de comptes pris en charge.
    3. Tapez une URL pour l’URI de redirection. L’URI de redirection dépend du scénario spécifique, mais si vous envisagez d’utiliser Postman, tapez https://www.getpostman.com/oauth2/callback. Vous utiliserez le rappel pour l’étape d’authentification du client lors de l’authentification auprès de Microsoft Entra ID.
  5. Sélectionner Inscription.
  6. Notez l’ID d’application (client) de cette application. Vous utiliserez l’ID dans la section suivante.

Accorder à l’application cliente l’accès à l’API Microsoft Intune

Vous disposez maintenant d’une application définie dans Azure. Accordez l’accès à partir de l’application native à l’API Microsoft Intune.

  1. Connectez-vous au Centre d'administration Microsoft 365.
  2. Choisissez Microsoft Entra ID Inscriptions>des applications pour ouvrir le volet inscriptions d'applications.
  3. Sélectionnez l’application dont vous avez besoin pour accorder l’accès. Vous avez nommé l’application comme Intune Data Warehouse Client.
  4. Sélectionnez Autorisations d’API>Ajouter une autorisation.
  5. Recherchez et sélectionnez l’API Intune. Il est nommé Microsoft Intune API.
  6. Sélectionnez la zone Autorisations déléguées, puis cliquez sur la zone Obtenir des informations sur l’entrepôt de données à partir de Microsoft Intune.
  7. Cliquez sur Ajouter des autorisations.
  8. Si vous le souhaitez, sélectionnez Accorder le consentement administrateur pour Microsoft dans le volet Autorisations configurées, puis sélectionnez Oui. Cela permet d’accorder l’accès à tous les comptes dans l’annuaire actif. Cela empêche la boîte de dialogue de consentement d’apparaître pour chaque utilisateur du locataire. Pour plus d’informations, consultez Intégration d’applications à Microsoft Entra ID.
  9. Sélectionnez Certificats & secrets>+ Nouvelle clé secrète client et générez-en un. Veillez à le copier à un endroit sûr, car vous ne pourrez plus y accéder.

Obtenir des données à partir de l’API Microsoft Intune avec Postman

Vous pouvez utiliser l’API Intune Data Warehouse avec un client REST générique tel que Postman. Postman peut fournir des insights sur les fonctionnalités de l’API, le modèle de données OData sous-jacent et résoudre les problèmes de connexion aux ressources de l’API. Dans cette section, vous trouverez des informations sur la génération d’un jeton Auth2.0 pour votre client local. Le client a besoin du jeton pour s’authentifier auprès de Microsoft Entra ID et accéder aux ressources de l’API.

Informations dont vous aurez besoin pour effectuer l’appel

Vous avez besoin des informations suivantes pour effectuer un appel REST à l’aide de Postman :

Attribut Description Exemple
URL de rappel Définissez-la en tant qu’URL de rappel dans la page des paramètres de votre application. https://www.getpostman.com/oauth2/callback
Nom du jeton Chaîne utilisée pour passer les informations d’identification à l’application Azure. Le processus génère votre jeton afin que vous puissiez effectuer un appel à l’API Data Warehouse. Porteur
URL d’authentification Il s’agit de l’URL utilisée pour l’authentification. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
URL du jeton d’accès Il s’agit de l’URL utilisée pour accorder le jeton. https://login.microsoftonline.com/common/oauth2/token
ID du client Vous avez créé et noté cela lors de la création de l’application native dans Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
Clé secrète client Vous avez créé et noté cela lors de la création de l’application native dans Azure. Ksml3dhDJs+jfK1f8Mwc8
Étendue (facultatif) Vous pouvez laisser le champ vide.

REMARQUE : Certains sdk, tels que la bibliothèque d’authentification Microsoft (MSAL) pour Python, peuvent nécessiter l’étendue définie avec des barres obliques doubles (//).

SCOPE = ['https://api.manage.microsoft.com//.default']
Type d’octroi Le jeton est un code d’autorisation. Code d’autorisation

Point de terminaison OData

Vous avez également besoin du point de terminaison. Pour obtenir votre point de terminaison Data Warehouse, vous avez besoin de l’URL de flux personnalisé. Vous pouvez obtenir le point de terminaison OData à partir du volet Data Warehouse.

  1. Connectez-vous au Centre d’administration Microsoft Intune.
  2. Ouvrez le volet Data Warehouse en sélectionnantEntrepôt de données rapports>.
  3. Copiez l’URL du flux personnalisé sous Flux OData pour le service de création de rapports. Il doit ressembler à ceci : https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

Le point de terminaison suit le format suivant : https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

Par exemple, l’entité dates ressemble à ceci : https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

Pour plus d’informations, consultez Intune Data Warehouse point de terminaison d’API.

Effectuer l’appel REST

Pour obtenir un nouveau jeton d’accès pour Postman, vous devez ajouter l’URL d’autorisation Microsoft Entra, ajouter votre ID client et votre clé secrète client. Postman charge la page d’autorisation dans laquelle vous tapez vos informations d’identification.

Avant d’effectuer l’appel, vérifiez que vous avez déjà ajouté l’URL de rappel à votre application dans Azure. L’URL de rappel est https://www.getpostman.com/oauth2/callback.

Ajouter les informations utilisées pour demander le jeton

  1. Téléchargez Postman si vous ne l’avez pas déjà installé. Pour télécharger Postman, consultez www.getpostman.com.

  2. Ouvrez Postman. Choisissez l’opération HTTP GET.

  3. Collez l’URL du point de terminaison dans l’adresse. Il doit ressembler à ceci :

    https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

  4. Choisissez l’onglet Autorisation , puis sélectionnez OAuth 2.0 dans la liste Type .

  5. Faites défiler jusqu’à la section Configurer un nouveau jeton .

  6. Tapez Porteur pour le nom du jeton.

  7. Sélectionnez Code d’autorisation comme Type d’octroi.

  8. Ajoutez l’URL de rappel. L’URL de rappel est https://www.getpostman.com/oauth2/callback.

  9. Ajoutez l’URL d’authentification. Il doit ressembler à ceci :

    https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/

  10. Ajoutez l’URL du jeton d’accès. Il doit ressembler à ceci :

    https://login.microsoftonline.com/common/oauth2/token

  11. Ajoutez l’ID client de l’application native que vous avez créée dans Azure et nommée Intune Data Warehouse Client. Il doit ressembler à ceci :

    88C8527B-59CB-4679-A9C8-324941748BB4

  12. Ajoutez la clé secrète client que vous avez générée à partir de l’application native que vous avez créée dans Azure. Il doit ressembler à ceci :

    Ksml3dhDJs+jfK1f8Mwc8

  13. Sélectionnez Obtenir un nouveau jeton d’accès.

    Informations pour le jeton d’accès.

  14. Tapez vos informations d’identification dans la page d’autorisation Active AD. La liste des jetons dans Postman contient désormais le jeton nommé Bearer.

  15. Sélectionnez Utiliser le jeton. La liste des en-têtes contient la nouvelle valeur de clé d’Autorisation et la valeur Bearer <your-authorization-token>.

Envoyer l’appel au point de terminaison à l’aide de Postman

  1. Sélectionnez Envoyer.

  2. Les données de retour apparaissent dans le corps de la réponse Postman.

    Le status client Postman est égal à 200 OK.

Create un client REST (C#) pour obtenir des données à partir du Intune Data Warehouse

L’exemple suivant contient un client REST simple. Le code utilise la classe httpClient de la bibliothèque .NET. Une fois que le client obtient des informations d’identification pour Microsoft Entra ID, il construit un appel REST GET pour récupérer l’entité dates à partir de l’API Data Warehouse.

Remarque

Vous pouvez accéder à l’exemple de code suivant sur GitHub. Reportez-vous au référentiel GitHub pour connaître les dernières modifications et mises à jour de l’exemple.

  1. Ouvrez Microsoft Visual Studio.

  2. Choisissez Fichier>Nouveau projet. Développez Visual C#, puis choisissez Application console (.NET Framework) .

  3. Nommez le projet IntuneDataWarehouseSamples, accédez à l’emplacement où vous souhaitez enregistrer le projet, puis sélectionnez OK.

  4. Cliquez avec le bouton droit sur le nom de la solution dans le Explorateur de solutions, puis sélectionnez Gérer les packages NuGet pour la solution. Sélectionnez Parcourir, puis tapez Microsoft.Identity.Client dans la zone de recherche.

    Remarque

    Vous devez utiliser la bibliothèque d’authentification Microsoft (MSAL). Pour plus d’informations, consultez Mettre à jour vos applications afin d’utiliser la bibliothèque d’authentification Microsoft (MSAL) et l’API Microsoft Graph.

  5. Choisissez le package, sélectionnez le projet IntuneDataWarehouseSamples sous Gérer les packages pour votre solution, puis sélectionnez Installer.

  6. Sélectionnez J’accepte pour accepter la licence du package NuGet.

  7. Ouvrez Program.cs à partir du Explorateur de solutions.

    Program.cs et Explorateur de solutions dans Visual Studio.

  8. Remplacez le code dans Program.cs par le code suivant :

    namespace IntuneDataWarehouseSamples
    {
    using System;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using Microsoft.Identity.Client;
    
    class Program
    {
     static void Main(string[] args)
    {
    /**
    * TODO: Replace the below values with your own.
    * emailAddress - The email address of the user that you will authenticate as.
    *
    * password  - The password for the above email address.
    *    This is inline only for simplicity in this sample. We do not
    *    recommend storing passwords in plaintext.
    *
    * applicationId - The application ID of the native app that was created in AAD.
    *
    * warehouseUrl   - The data warehouse URL for your tenant. This can be found in
    *      the Microsoft Intune admin center.
    *
    * collectionName - The name of the warehouse entity collection you would like to
    *      access.
    */
    var emailAddress = "intuneadmin@yourcompany.com";
    var password = "password_of(intuneadmin@yourcompany.com)";
    var applicationId = "<Application ID>";
    var warehouseUrl = "https://fef.{yourinfo}.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0";
    var collectionName = "dates";
    
    var msalContext = new AuthenticationContext("https://login.windows.net/common/oauth2/token");
    AuthenticationResult authResult = msalContext.AcquireTokenAsync(
    resource: "https://api.manage.microsoft.com/",
    clientId: applicationId,
    userCredential: new UserPasswordCredential(emailAddress, password)).Result;
    
    var httpClient = new HttpClient();
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
    
    var uriBuilder = new UriBuilder(warehouseUrl);
    uriBuilder.Path += "/" + collectionName;
    
    HttpResponseMessage response = httpClient.GetAsync(uriBuilder.Uri).Result;
    
    Console.Write(response.Content.ReadAsStringAsync().Result);
    Console.ReadKey();
    }
    }
    }
    
  9. Mettez à jour les TODOs dans l’exemple de code.

  10. Appuyez sur Ctrl+ F5 pour générer et exécuter le Intune. Client DataWarehouseAPIClient en mode débogage.

    Entité de date récupérée au format JSON.

  11. Passez en revue la sortie de la console. La sortie contient des données au format JSON extraites de l’entité dates dans votre locataire Intune.

Prochaines étapes

Vous trouverez des détails sur l’autorisation, la structure d’URL de l’API et les points de terminaison OData dans Utiliser l’API Intune Data Warehouse.

Vous pouvez également vous référer au modèle de données Intune Data Warehouse pour rechercher les entités de données contenues dans l’API. Pour plus d’informations, consultez modèle de données d’API Intune Data Warehouse.