Condividi tramite


Ottenere dati dall'API Data warehouse di Intune con un client REST

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

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

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

Usare la procedura seguente per informazioni su come autorizzare e accedere all'API con un client REST. In primo luogo, si esaminerà l'uso di un client REST generico usando Postman. Postman è uno strumento comunemente usato per la risoluzione dei problemi e lo sviluppo di client REST per l'uso con le API. Per altre informazioni su Postman, vedere il sito Postman . È quindi possibile esaminare un esempio di codice C#. L'esempio fornisce un esempio per autorizzare un client e ottenere dati dall'API.

Create un'app client come app nativa in Azure

Create 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 ID>Registrazioni 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 "client Intune Data Warehouse" per Nome.
    2. Selezionare Account solo in questa directory dell'organizzazione (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, ma se si prevede di usare Postman, digitare https://www.getpostman.com/oauth2/callback. Quando si esegue l'autenticazione a Microsoft Entra ID, si userà il callback per l'autenticazione client.
  5. Selezionare Registra.
  6. Prendere nota dell'ID applicazione (client) di questa app. L'ID verrà usato nella sezione successiva.

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

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

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra.
  2. Scegliere Microsoft Entra ID>Registrazioni app per aprire il riquadro Registrazioni app.
  3. Selezionare l'app a cui è necessario concedere l'accesso. L'app è stata denominata come client Intune Data Warehouse.
  4. Selezionare Autorizzazioni> APIAggiungere un'autorizzazione.
  5. Trovare e selezionare l'API Intune. L'API è denominata Microsoft Intune.
  6. Selezionare la casella Autorizzazioni delegate e fare clic sulla casella Recupera informazioni sul data warehouse da Microsoft Intune.
  7. Fare clic su Aggiungi autorizzazioni.
  8. Facoltativamente, selezionare Concedi consenso amministratore per Microsoft nel riquadro Autorizzazioni configurate e quindi selezionare . Verrà concesso l'accesso a tutti gli account nella directory corrente. In questo modo la finestra di dialogo di consenso non verrà visualizzata per ogni utente nel tenant. Per altre informazioni, vedere Integrazione di applicazioni con Microsoft Entra ID.
  9. Selezionare Certificati & segreti>+ Nuovo segreto client e generare un nuovo segreto. Assicurarsi di copiarlo in un luogo sicuro perché non sarà possibile accedervi di nuovo.

Ottenere dati dall'API 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 funzionalità dell'API, sul modello di dati OData sottostante e sulla risoluzione dei problemi di connessione alle risorse 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

Per effettuare una chiamata REST tramite Postman sono necessarie le informazioni seguenti:

Attributo Descrizione Esempio
Callback URL 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 Azure. Il processo genera il token in modo da poter effettuare una chiamata all'API Data Warehouse. Portatore
URL di autenticazione Questo è l'URL usato per l'autenticazione. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
URL del token di accesso Questo è l'URL usato per concedere il token. https://login.microsoftonline.com/common/oauth2/token
ID client È stato creato e annotato questo aspetto durante la creazione dell'app nativa in Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
Segreto client È stato creato e annotato questo aspetto durante la creazione dell'app nativa in Azure. Ksml3dhDJs+jfK1f8Mwc8
Ambito (facoltativo) È possibile lasciare vuoto il campo.

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

SCOPE = ['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 Microsoft Intune.
  2. Aprire il riquadro Data Warehouse selezionando Reports>Data warehouse.
  3. Copiare l'URL del feed personalizzato nel feed OData per il servizio di report. Dovrebbe avere 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à dates ha un aspetto simile al 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 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 usate per richiedere il token

  1. Scaricare Postman se non è 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. Dovrebbe avere 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. Scorrere verso il basso fino alla sezione Configura nuovo token .

  6. Digitare Bearer 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. Dovrebbe avere 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. Dovrebbe avere 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. Dovrebbe avere un aspetto simile al seguente:

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

  12. Aggiungere il segreto client generato dall'interno dell'app nativa creata in Azure. Dovrebbe avere un aspetto simile al seguente:

    Ksml3dhDJs+jfK1f8Mwc8

  13. Selezionare Recupera nuovo token di accesso.

    Informazioni per il token di accesso.

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

  15. Selezionare Usa token. L'elenco di intestazioni contiene il nuovo valore della chiave 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 postman.

    Lo stato del client Postman è uguale a 200 OK.

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

L'esempio seguente contiene un client REST semplice. Il codice usa la classe httpClient della libreria .NET. Dopo che il client ottiene le credenziali per Microsoft Entra ID, il client costruisce una chiamata GET REST per recuperare l'entità dates dall'API Data Warehouse.

Nota

È possibile accedere all'esempio di codice seguente in GitHub. Fare riferimento al repository GitHub per le modifiche e gli aggiornamenti più recenti all'esempio.

  1. Aprire Microsoft Visual Studio.

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

  3. Assegnare al progetto IntuneDataWarehouseSamplesil nome , passare alla posizione in cui si vuole salvare il progetto e quindi selezionare OK.

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

    Nota

    È necessario usare Microsoft Authentication Library (MSAL). Per altre informazioni, vedere Aggiornare le applicazioni per l'uso di Microsoft Authentication Library (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. Aprire Program.cs dal Esplora soluzioni.

    Program.cs e Esplora soluzioni in Visual Studio.

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

    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. Aggiornare la classe TODOnell'esempio di codice.

  10. Premere CTRL+F5 per compilare ed eseguire il Intune. Client DataWarehouseAPIClient in modalità debug.

    Entità data recuperata in formato JSON.

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

Passaggi successivi

Per informazioni dettagliate sull'autorizzazione, sulla struttura dell'URL dell'API e sugli endpoint OData, vedere Usare l'API Intune Data Warehouse.

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