Condividi tramite


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

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

I passaggi per configurare un client per ottenere i dati dall'API 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

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.

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 Data Warehouse di Intune quando il client locale richiede le credenziali.

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra.
  2. ScegliereRegistrazioni dell'appMicrosoft Entra ID> 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 data warehouse di Intune" 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. Si userà il callback per il passaggio di autenticazione client durante l'autenticazione a Microsoft Entra ID.
  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 di Microsoft Intune

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

  1. Accedere all'interfaccia di amministrazione di Microsoft Entra.
  2. ScegliereRegistrazioni dell'appMicrosoft Entra ID> per aprire il riquadro Registrazioni app.
  3. Selezionare l'app a cui è necessario concedere l'accesso. L'app è stata denominata, ad esempio Client data warehouse di Intune.
  4. Selezionare Autorizzazioni> APIAggiungere un'autorizzazione.
  5. Trovare e selezionare l'API di Intune. È denominata API di 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 l'ID Microsoft Entra.
  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 Data Warehouse di Intune 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 l'ID Microsoft Entra e accedere alle risorse DELL'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 di 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 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 Endpoint API data warehouse di Intune.

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 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.

Creare un client REST (C#) per ottenere dati da 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 l'ID Microsoft Entra, 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 in 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 usare Microsoft Authentication Library (MSAL) e l'API Microsoft 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 da Esplora soluzioni.

    Program.cs ed 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 client Intune.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 di Intune.

Passaggi successivi

Per informazioni dettagliate sull'autorizzazione, la struttura dell'URL dell'API e gli endpoint OData, vedere Usare l'API data warehouse di Intune.

È anche possibile fare riferimento al modello di dati del data warehouse di Intune per trovare le entità dati contenute nell'API. Per altre informazioni, vedere Modello di dati api data warehouse di Intune.