Obtener datos de la API de Data Warehouse de Microsoft Intune con un cliente REST

Puede acceder al modelo de datos de Intune Data Warehouse a través de puntos de conexión RESTful. Para obtener acceso a los datos, el cliente debe autorizar con Microsoft Entra ID mediante OAuth 2.0. Para habilitar el acceso, configure primero una aplicación nativa en Azure y conceda permisos a la API de Microsoft Intune. El cliente local obtiene autorización y, a continuación, el cliente puede comunicarse con los puntos de conexión de Data Warehouse a través de la aplicación nativa.

Los pasos para configurar un cliente para obtener datos de la API de Data Warehouse requieren lo siguiente:

  1. Create una aplicación cliente como una aplicación nativa en Azure
  2. Conceder acceso a la aplicación cliente a la API de Microsoft Intune
  3. Create un cliente REST local para obtener los datos

Siga estos pasos para obtener información sobre cómo autorizar y acceder a la API con un cliente REST. En primer lugar, examinará el uso de un cliente REST genérico mediante Postman. Postman es una herramienta que se usa habitualmente para solucionar problemas y desarrollar clientes REST para trabajar con las API. Para obtener más información sobre Postman, consulte el sitio de Postman . A continuación, puede ver un ejemplo de código de C#. El ejemplo proporciona un ejemplo para autorizar un cliente y obtener datos de la API.

Create una aplicación cliente como una aplicación nativa en Azure

Create una aplicación nativa en Azure. Esta aplicación nativa es la aplicación cliente. El cliente que se ejecuta en la máquina local hace referencia a la API de Intune Data Warehouse cuando el cliente local solicita credenciales.

  1. Inicie sesión en el Centro de administración Microsoft Entra.
  2. Elija Microsoft Entra ID>Registros de aplicaciones para abrir el panel de Registros de aplicaciones.
  3. Seleccione Nuevo registro de aplicación.
  4. Escriba los detalles de la aplicación.
    1. Escriba un nombre descriptivo, como "Intune Data Warehouse cliente" para el nombre.
    2. Seleccione Solo cuentas en este directorio organizativo (solo Microsoft: inquilino único) para los tipos de cuenta admitidos.
    3. Escriba una dirección URL para el URI de redirección. El URI de redirección dependerá del escenario específico, pero si planea usar Postman, escriba https://www.getpostman.com/oauth2/callback. Usará la devolución de llamada para el paso de autenticación de cliente al autenticarse en Microsoft Entra ID.
  5. Seleccione Registrar.
  6. Tenga en cuenta el identificador de aplicación (cliente) de esta aplicación. Usará el identificador en la sección siguiente.

Conceder acceso a la aplicación cliente a la API de Microsoft Intune

Ahora tiene una aplicación definida en Azure. Conceda acceso desde la aplicación nativa a la API de Microsoft Intune.

  1. Inicie sesión en el Centro de administración Microsoft Entra.
  2. Elija Microsoft Entra ID>Registros de aplicaciones para abrir el panel de Registros de aplicaciones.
  3. Seleccione la aplicación a la que necesita conceder acceso. Ha denominado a la aplicación algo como Intune Data Warehouse Cliente.
  4. Seleccione Permisos>de API Agregar un permiso.
  5. Busque y seleccione la API de Intune. Se denomina MICROSOFT INTUNE API.
  6. Seleccione el cuadro Permisos delegados y haga clic en el cuadro Obtener información de almacenamiento de datos de Microsoft Intune.
  7. Haga clic en Agregar permisos.
  8. Opcionalmente, seleccione Conceder consentimiento de administrador para Microsoft en el panel Permisos configurados y, a continuación, seleccione . Esto concederá acceso a todas las cuentas del directorio actual. Esto impedirá que aparezca el cuadro de diálogo de consentimiento para cada usuario del inquilino. Para obtener más información, consulte Integración de aplicaciones con Microsoft Entra ID.
  9. Seleccione Certificados & secretos>+ Nuevo secreto de cliente y genere un nuevo secreto. Asegúrese de copiarlo en algún lugar seguro porque no podrá acceder a él de nuevo.

Obtención de datos de la API de Microsoft Intune con Postman

Puede trabajar con la API de Intune Data Warehouse con un cliente REST genérico como Postman. Postman puede proporcionar información sobre las características de la API, el modelo de datos de OData subyacente y solucionar problemas de conexión a los recursos de API. En esta sección, puede encontrar información sobre cómo generar un token de Auth2.0 para el cliente local. El cliente necesitará el token para autenticarse con Microsoft Entra ID y acceder a los recursos de la API.

Información que necesitará para realizar la llamada

Necesita la siguiente información para realizar una llamada REST mediante Postman:

Atributo Descripción Ejemplo
Dirección URL de devolución de llamada Establézcalo como la dirección URL de devolución de llamada en la página de configuración de la aplicación. https://www.getpostman.com/oauth2/callback
Nombre del token Cadena que se usa para pasar las credenciales a la aplicación de Azure. El proceso genera el token para que pueda realizar una llamada a la API de Data Warehouse. Portador
Dirección URL de autenticación Esta es la dirección URL que se usa para autenticarse. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
Dirección URL del token de acceso Esta es la dirección URL que se usa para conceder el token. https://login.microsoftonline.com/common/oauth2/token
Id. de cliente Creó y anotó esto al crear la aplicación nativa en Azure. 4184c61a-e324-4f51-83d7-022b6a81b991
Secreto de cliente Creó y anotó esto al crear la aplicación nativa en Azure. Ksml3dhDJs+jfK1f8Mwc8
Ámbito (opcional) Puede dejar el campo en blanco.

NOTA: Algunos SDK, como la Biblioteca de autenticación de Microsoft (MSAL) para Python, pueden necesitar el ámbito definido con barras diagonales dobles (//).

SCOPE = [''https://api.manage.microsoft.com//.default]
Tipo de concesión El token es un código de autorización. Código de autorización

Punto de conexión de OData

También necesita el punto de conexión. Para obtener el punto de conexión de Data Warehouse, necesitará la dirección URL de fuente personalizada. Puede obtener el punto de conexión de OData desde el panel de Data Warehouse.

  1. Inicie sesión en el Centro de administración de Microsoft Intune.
  2. Para abrir el panel Data Warehouse, seleccione Informes>de almacenamiento de datos.
  3. Copie la dirección URL de fuente personalizada en fuente de OData para el servicio de informes. Debería tener un aspecto similar al siguiente: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

El punto de conexión sigue el formato siguiente: https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

Por ejemplo, la entidad dates tiene el siguiente aspecto: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

Para obtener más información, consulte Intune Data Warehouse punto de conexión de API.

Realizar la llamada REST

Para obtener un nuevo token de acceso para Postman, debe agregar la dirección URL de autorización de Microsoft Entra, agregar el identificador de cliente y el secreto de cliente. Postman cargará la página de autorización donde escribirá sus credenciales.

Antes de realizar la llamada, compruebe que ya ha agregado la dirección URL de devolución de llamada a la aplicación en Azure. La dirección URL de devolución de llamada es https://www.getpostman.com/oauth2/callback.

Agregar la información usada para solicitar el token

  1. Descargue Postman si aún no lo tiene instalado. Para descargar Postman, consulte www.getpostman.com.

  2. Abra Postman. Elija la operación HTTP GET.

  3. Pegue la dirección URL del punto de conexión en la dirección . Debería tener un aspecto similar al siguiente:

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

  4. Elija la pestaña Autorización y seleccione OAuth 2.0 en la lista Tipo .

  5. Desplácese hacia abajo hasta la sección Configurar nuevo token .

  6. Escriba Portador para el nombre del token.

  7. Seleccione Código de autorización como Tipo de concesión.

  8. Agregue la dirección URL de devolución de llamada. La dirección URL de devolución de llamada es https://www.getpostman.com/oauth2/callback.

  9. Agregue la dirección URL de autenticación. Debería tener un aspecto similar al siguiente:

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

  10. Agregue la dirección URL del token de acceso. Debería tener un aspecto similar al siguiente:

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

  11. Agregue el identificador de cliente desde la aplicación nativa que creó en Azure y denominado Intune Data Warehouse Client. Debería tener un aspecto similar al siguiente:

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

  12. Agregue el secreto de cliente que generó desde la aplicación nativa que creó en Azure. Debería tener un aspecto similar al siguiente:

    Ksml3dhDJs+jfK1f8Mwc8

  13. Seleccione Obtener nuevo token de acceso.

    Información del token de acceso.

  14. Escriba sus credenciales en la página de autorización de Active AD. La lista de tokens de Postman ahora contiene el token denominado Bearer.

  15. Seleccione Usar token. La lista de encabezados contiene el nuevo valor de clave de Authorization y el valor Bearer <your-authorization-token>.

Envío de la llamada al punto de conexión mediante Postman

  1. Seleccione Enviar.

  2. Los datos devueltos aparecen en el cuerpo de la respuesta de Postman.

    El estado del cliente de Postman es igual a 200 OK.

Create un cliente REST (C#) para obtener datos de la Intune Data Warehouse

El ejemplo siguiente contiene un cliente REST simple. El código usa la clase httpClient de la biblioteca .NET. Una vez que el cliente obtiene credenciales para Microsoft Entra ID, el cliente crea una llamada REST GET para recuperar la entidad dates de la API de Data Warehouse.

Nota:

Puede acceder al siguiente ejemplo de código en GitHub. Consulte el repositorio de GitHub para ver los cambios y actualizaciones más recientes del ejemplo.

  1. Abra Microsoft Visual Studio.

  2. Elija Archivo>nuevo proyecto. Expanda Visual C# y elija Aplicación de consola (.NET Framework).

  3. Asigne al proyecto el nombre IntuneDataWarehouseSamples, vaya al lugar donde desea guardar el proyecto y, a continuación, seleccione Aceptar.

  4. Haga clic con el botón derecho en el nombre de la solución en el Explorador de soluciones y, a continuación, seleccione Administrar paquetes NuGet para la solución. Seleccione Examinar y escriba Microsoft.Identity.Client en el cuadro de búsqueda.

    Nota:

    Debe usar la Biblioteca de autenticación de Microsoft (MSAL). Para obtener más información, consulte Actualizar las aplicaciones para que usen la Biblioteca de autenticación de Microsoft (MSAL) y la API de Microsoft Graph.

  5. Elija el paquete, seleccione el proyecto IntuneDataWarehouseSamples en Administrar paquetes para la solución y, a continuación, seleccione Instalar.

  6. Seleccione Acepto para aceptar la licencia del paquete NuGet.

  7. Abra Program.cs desde el Explorador de soluciones.

    Program.cs y Explorador de soluciones en Visual Studio.

  8. Reemplace el código de Program.cs por el código siguiente:

    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. Actualice los TODOs en el ejemplo de código.

  10. Presione Ctrl + F5 para compilar y ejecutar el Intune. Cliente DataWarehouseAPIClient en modo de depuración.

    Entidad date recuperada en formato JSON.

  11. Revise la salida de la consola. La salida contiene datos en formato JSON extraídos de la entidad dates del inquilino de Intune.

Pasos siguientes

Puede encontrar detalles sobre la autorización, la estructura de direcciones URL de API y los puntos de conexión de OData en Uso de la API de Intune Data Warehouse.

También puede hacer referencia al modelo de datos de Intune Data Warehouse para buscar las entidades de datos contenidas en la API. Para obtener más información, consulte Intune Data Warehouse modelo de datos de API.