Ottenere dati dall'API Intune Data Warehouse con un client REST

È possibile accedere al modello di dati Intune Data Warehouse tramite endpoint RESTful. Per accedere ai dati, il cliente deve eseguire l'autorizzazione con Microsoft Entra ID utilizzando OAuth 2.0. Per abilitare l'accesso, configurare prima di tutto un'app nativa in Azure e concedere le autorizzazioni all'API di Microsoft Intune. Il client locale ottiene l'autorizzazione e quindi può comunicare con gli endpoint Data Warehouse tramite l'app nativa.

I passaggi per configurare un client per ottenere dati dall'API di Data Warehouse richiedono di:

  1. Creare un'app client come app nativa in Azure
  2. Concedere all'app client l'accesso all'API di Microsoft Intune
  3. Creare un client REST locale per ottenere i dati

Per informazioni su come autorizzare e accedere all'API con un client REST, eseguire la procedura seguente. Per prima cosa, si esaminerà l'utilizzo di un client REST generico utilizzando Postman. Postman è uno strumento comunemente usato per la risoluzione dei problemi e lo sviluppo di client REST per l'uso delle API. Per altre informazioni su Postman, vedere il sito di Postman . Quindi puoi esaminare un esempio di codice C#. Nell'esempio viene fornito un esempio per l'autorizzazione di un client e il recupero di dati dall'API.

Creare un'app client come app nativa in Azure

Creare un'app nativa in Azure. Questa app nativa è l'app client. Il client in esecuzione nel computer locale fa riferimento all'API Intune Data Warehouse quando il client locale richiede le credenziali.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra.
  2. Scegliere Microsoft Entra IDRegistrazioni>app per aprire il riquadro Registrazioni app.
  3. Selezionare Nuova registrazione app.
  4. Digitare i dettagli dell'app.
    1. Digitare un nome descrittivo, ad esempio "Intune Data Warehouse Client".
    2. Selezionare solo gli account in questa directory organizzativa (solo Microsoft - tenant singolo) per i tipi di account supportati.
    3. Digitare un URL per l'URI di reindirizzamento. L'URI di reindirizzamento dipenderà dallo scenario specifico, tuttavia se si prevede di usare Postman, digitare https://www.getpostman.com/oauth2/callback. Utilizzerai il callback per il passaggio di autenticazione del client durante l'autenticazione a Microsoft Entra ID.
  5. Selezionare Registra.
  6. Prendere nota dell'ID applicazione (client) di questa app. Userai l'ID nella sezione successiva.

Concedere all'app client l'accesso all'API di Microsoft Intune

Ora hai un'app definita in Azure. Concedere l'accesso dall'app nativa all'API di Microsoft Intune.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra.
  2. Scegliere Microsoft Entra IDRegistrazioni>app per aprire il riquadro Registrazioni app.
  3. Selezionare l'app a cui si deve concedere l'accesso. Hai assegnato all'app un nome simile a Intune Data Warehouse Client.
  4. Selezionare le autorizzazioni> APIAggiungere un'autorizzazione.
  5. Trovare e selezionare l'API Intune. Si chiama Microsoft Intune API.
  6. Selezionare la casella Autorizzazioni delegate e fare clic sulla casella Ottieni informazioni sul data warehouse da Microsoft Intune.
  7. Fare clic su Aggiungi autorizzazioni.
  8. Facoltativamente, seleziona Concedi il consenso dell'amministratore per Microsoft nel riquadro Autorizzazioni configurate, quindi seleziona . In questo modo verrà concesso l'accesso a tutti gli account nella directory corrente. In questo modo la finestra di dialogo di consenso non verrà visualizzata per tutti gli utenti del tenant. Per ulteriori informazioni, vedere Integrazione delle applicazioni con Microsoft Entra ID.
  9. Selezionare Certificati & segreti>+ Nuovo segreto client e generare un nuovo segreto. Assicurati di copiarlo in un posto sicuro perché non potrai accedervi di nuovo.

Ottenere dati dall'API di Microsoft Intune con Postman

È possibile usare l'API Intune Data Warehouse con un client REST generico, ad esempio Postman. Postman può fornire informazioni dettagliate sulle caratteristiche dell'API, sul modello di dati OData sottostante e risolvere i problemi di connessione alle risorse dell'API. In questa sezione sono disponibili informazioni sulla generazione di un token Auth2.0 per il client locale. Il client avrà bisogno del token per eseguire l'autenticazione con Microsoft Entra ID e accedere alle risorse API.

Informazioni necessarie per effettuare la chiamata

Sono necessarie le informazioni seguenti per effettuare una chiamata REST usando Postman:

Attributo Descrizione Esempio
URL di richiamata Impostarlo come URL di callback nella pagina delle impostazioni dell'app. https://www.getpostman.com/oauth2/callback
Nome token Stringa usata per passare le credenziali all'app di Azure. Il processo genera il token in modo da poter effettuare una chiamata all'API di Data Warehouse. Portatore
URL di autenticazione Questo è l'URL utilizzato per l'autenticazione. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
URL token di accesso Questo è l'URL utilizzato per concedere il token. https://login.microsoftonline.com/common/oauth2/token
ID client È stato creato questo elemento durante la creazione dell'app nativa in Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
Segreto client È stato creato questo elemento durante la creazione dell'app nativa in Azure. Ksml3dhDJs+jfK1f8Mwc8
Ambito (facoltativo) È possibile lasciare il campo vuoto.

NOTA: alcuni SDK, come Microsoft Authentication Library (MSAL) per Python, potrebbero richiedere che l'ambito sia definito con una doppia barra (//).

AMBITO = ['https://api.manage.microsoft.com//.default']
Tipo di concessione Il token è un codice di autorizzazione. Codice di autorizzazione

Endpoint OData

È necessario anche l'endpoint. Per ottenere l'endpoint Data Warehouse, è necessario l'URL del feed personalizzato. È possibile ottenere l'endpoint OData dal riquadro Data Warehouse.

  1. Accedere all'Interfaccia di amministrazione di Microsoft Intune.
  2. Aprire il riquadro Data warehouse selezionando Report>Data warehouse.
  3. Copiare l'URL del feed personalizzato in Feed OData per il servizio di creazione di report. Avrà un aspetto simile al seguente: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

L'endpoint segue il formato seguente: https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

Ad esempio, l'entità date è simile alla seguente: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

Per altre informazioni, vedere Intune Data Warehouse endpoint API.

Effettuare la chiamata REST

Per ottenere un nuovo token di accesso per Postman, è necessario aggiungere l'URL di autorizzazione di Microsoft Entra, aggiungere l'ID client e il segreto client. Postman caricherà la pagina di autorizzazione in cui digitare le credenziali.

Prima di effettuare la chiamata, verificare di aver già aggiunto l'URL di callback all'app in Azure. L'URL di callback è https://www.getpostman.com/oauth2/callback.

Aggiungere le informazioni utilizzate per richiedere il token

  1. Scarica Postman se non lo hai già installato. Per scaricare Postman, vedere www.getpostman.com.

  2. Aprire Postman. Scegliere l'operazione HTTP GET.

  3. Incollare l'URL dell'endpoint nell'indirizzo. Avrà un aspetto simile al seguente:

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

  4. Scegliere la scheda Autorizzazione e selezionare OAuth 2.0 dall'elenco Tipo .

  5. Scorri verso il basso fino alla sezione Configura nuovo token .

  6. Digitare il portatore per il nome del token.

  7. Selezionare Codice di autorizzazione come tipo di concessione.

  8. Aggiungere l'URL di callback. L'URL di callback è https://www.getpostman.com/oauth2/callback.

  9. Aggiungere l'URL di autenticazione. Avrà un aspetto simile al seguente:

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

  10. Aggiungere l'URL del token di accesso. Avrà un aspetto simile al seguente:

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

  11. Aggiungere l'ID client dall'app nativa creata in Azure e denominata Intune Data Warehouse Client. Avrà un aspetto simile al seguente:

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

  12. Aggiungere il segreto client generato dall'app nativa creata in Azure. Avrà un aspetto simile al seguente:

    Ksml3dhDJs+jfK1f8Mwc8

  13. Selezionare Ottieni nuovo token di accesso.

    Informazioni per il token di accesso.

  14. Digitare le credenziali nella pagina Autorizzazione Active AD. L'elenco dei token in Postman ora contiene il token denominato Bearer.

  15. Selezionare Usa token. L'elenco delle intestazioni contiene il nuovo valore di chiave di Authorization e il valore Bearer <your-authorization-token>.

Inviare la chiamata all'endpoint usando Postman

  1. Scegli Invia.

  2. I dati restituiti vengono visualizzati nel corpo della risposta di Postman.

    Lo stato del client Postman è uguale a 200 OK.

Creare un client REST (C#) per ottenere dati dal Intune Data Warehouse

L'esempio seguente contiene un semplice client REST. Il codice utilizza la classe httpClient della libreria .NET. Una volta ottenute le credenziali per Microsoft Entra ID, il client crea una chiamata GET REST per recuperare l'entità dates dall'API di Data Warehouse.

Nota

Puoi accedere all'esempio di codice seguente su GitHub. Fai riferimento al repository GitHub per le modifiche e gli aggiornamenti più recenti dell'esempio.

  1. Aprire Microsoft Visual Studio.

  2. Scegliere File>Nuovo progetto. Espandere Visual C# e scegliere App console (.NET Framework).

  3. Assegnare un nome al progetto IntuneDataWarehouseSamples, passare alla posizione in cui si desidera salvare il progetto e quindi selezionare OK.

  4. Fare clic con il pulsante destro del mouse sul nome della soluzione in Esplora soluzioni e quindi scegliere Gestisci pacchetti NuGet per la soluzione. Seleziona Sfoglia e quindi digita Microsoft.Identity.Client nella casella di ricerca.

    Nota

    È necessario usare Libreria di Autenticazione Microsoft (MSAL). Per altre informazioni, vedere Aggiornare le applicazioni per l'uso di Libreria di Autenticazione Microsoft (MSAL) e Microsoft API Graph.

  5. Scegliere il pacchetto, selezionare il progetto IntuneDataWarehouseSamples in Gestisci pacchetti per la soluzione e quindi selezionare Installa.

  6. Selezionare Accetto per accettare la licenza del pacchetto NuGet.

  7. Apri Program.cs da Esplora soluzioni.

    Program.cs e Esplora soluzioni in Visual Studio.

  8. Sostituisci il codice in Program.cs con il seguente codice:

    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. Aggiorna la TODOs nell'esempio di codice.

  10. Premere Ctrl + F5 per compilare ed eseguire Intune. DataWarehouseAPIClient client in modalità Debug.

    Entità data recuperata in formato JSON.

  11. Esamina l'output della console. L'output contiene dati in formato JSON estratti dall'entità dates nel tenant di Intune.

Passaggi successivi

Per informazioni dettagliate sull'autorizzazione, la struttura dell'URL dell'API e gli endpoint OData, vedi Usare l'API Intune Data Warehouse.

È anche possibile fare riferimento al modello di dati Intune Data Warehouse per trovare le entità di dati contenute nell'API. Per altre informazioni, vedere Intune Data Warehouse modello di dati API.