Obter dados da API do Data Warehouse do Intune com um cliente RESTGet data from the Intune Data Warehouse API with a REST client

Esta página é útil?

Você pode acessar o modelo de dados do Data Warehouse do Intune por meio de pontos de extremidade RESTful.You can access the Intune Data Warehouse data model through RESTful endpoints. Para obter acesso aos seus dados, seu cliente deve ser autorizado no Microsoft Azure Active Directory (Azure AD) usando OAuth 2.0.To gain access to your data, your client must authorize with Microsoft Azure Active Directory (Azure AD) using OAuth 2.0. Para habilitar o acesso, primeiro configure um aplicativo nativo no Azure e conceda permissões para a API do Microsoft Intune.To enable access, first set up a native app in Azure and grant permissions to the Microsoft Intune API. O cliente local é autorizado e, em seguida, ele pode se comunicar com os pontos de extremidade do Data Warehouse por meio do aplicativo nativo.Your local client gets authorization, and then the client can communicate with the Data Warehouse endpoints through the native app.

As etapas para configurar um cliente para obter dados da API do Data Warehouse requerem:The steps to set up a client to get data from the Data Warehouse API require you to:

  1. Criar um aplicativo cliente como um aplicativo nativo no AzureCreate a client app as a native app in Azure
  2. Conceder ao cliente o acesso de aplicativo à API do Microsoft IntuneGrant the client app access to the Microsoft Intune API
  3. Criar um cliente REST local para obter os dadosCreate a local REST client to get the data

Siga as etapas abaixo para saber como autorizar e acessar a API com um cliente REST.Use the following steps to learn how to authorize and access the API with a REST client. Primeiro, você examinará usando um cliente REST genérico usando o Postman.First, you will look at using a generic REST client using Postman. O Postman é uma ferramenta bastante usada para solucionar problemas e desenvolver clientes REST para trabalhar com APIs.Postman is a commonly used tool troubleshooting and developing REST clients to work with APIs. Para obter mais informações sobre o Postman, consulte o site Postman.For more information about Postman, see the Postman site. Em seguida, é possível examinar um exemplo de código C#.Then you can look at a C# code sample. O exemplo fornece uma amostra de como autorizar um cliente e obter dados da API.The sample provides an example for authorizing a client and getting data from the API.

Criar um aplicativo cliente como um aplicativo nativo no AzureCreate a client app as a native app in Azure

Crie um aplicativo nativo no Azure.Create a native app in Azure. Este aplicativo nativo é o aplicativo cliente.This native app is the client app. O cliente em execução no seu computador local referencia a API do Data Warehouse do Intune quando o cliente local solicita credenciais.The client running on your local machine references the Intune Data Warehouse API when the local client requests credentials.

  1. Entre no portal do Azure do seu locatário.Sign in to the Azure portal for your tenant. Escolha Azure Active Directory > Registros de aplicativo para abrir o painel Registros de aplicativos.Choose Azure Active Directory > App Registrations to open the App registrations pane.

  2. Selecione Novo registro de aplicativo.Select New app registration.

  3. Digite os detalhes do aplicativo.Type the app details.

    1. Digite um nome amigável, como Cliente do Data Warehouse do Intune, em Nome.Type a friendly name, such as Intune Data Warehouse Client, for the Name.
    2. Selecione Nativo para o Tipo de aplicativo.Select Native for the Application type.
    3. Digite uma URL em URL de logon.Type a URL for the Sign-on URL. A URL de logon dependerá do cenário específico, no entanto, se você planeja usar o Postman, digite https://www.getpostman.com/oauth2/callback.The Sign-on URL will depend on the specific scenario, however if you plan on using Postman, type https://www.getpostman.com/oauth2/callback. Você usará o retorno de chamada para a etapa de autenticação do cliente ao autenticar no Azure AD.You will use the callback for client authentication step when authenticating to Azure AD.
  4. Selecione Criar.Select Create.

    Aplicativo cliente do Intune Data Warehouse

  5. Anote a ID do aplicativo desse aplicativo.Note the Application ID of this app. Você usará a ID na próxima seção.You will use the ID in the next section.

Conceder ao cliente o acesso de aplicativo à API do Microsoft IntuneGrant the client app access to the Microsoft Intune API

Agora você tem um aplicativo definido no Azure.You now have an app defined in Azure. Conceda acesso do aplicativo nativo à API do Microsoft Intune.Grant access from the native app to the Microsoft Intune API.

  1. Selecione o aplicativo nativo.Select the native app. Você nomeou o aplicativo como algo semelhante a Cliente do Data Warehouse do Intune.You named the app something such as Intune Data Warehouse Client.

  2. Selecione Permissões necessárias no painel ConfiguraçõesSelect Required permissions from the Settings pane

  3. Selecione Adicionar no painel Permissões necessárias.Select Add in the Required permissions pane.

  4. Selecione Selecionar uma API.Select Select an API.

  5. Pesquise o nome do aplicativo Web.Search for the web app name. Seu nome é API do Microsoft Intune.It is named Microsoft Intune API.

  6. Selecione o aplicativo na lista.Select the app in the list.

  7. Selecione Selecionar.Select Select.

  8. Marque a caixa Permissões Delegadas para adicionar Obter informações do data warehouse do Microsoft Intune.Check the Delegated Permissions box to add Get data warehouse information from Microsoft Intune.

    Habilitar o acesso – API do Microsot Intune

  9. Selecione Selecionar.Select Select.

  10. Selecione Concluído.Select Done.

  11. Opcionalmente, selecione Conceder Permissões no painel Permissões necessárias.Optionally, Select Grant Permissions in the Required permissions pane. Essa opção concede acesso a todas as contas no diretório atual.This will grant access to all accounts in the current directory. Isso impedirá que a caixa de diálogo de consentimento apareça para cada usuário no locatário.This will prevent the consent dialog box from appearing for every user in the tenant. Para obter mais informações, consulte Integrando aplicativos com o Azure Active Directory.For more information, see Integrating applications with Azure Active Directory.

  12. Selecione Sim.Select Yes.

Obter dados da API do Microsoft Intune com o PostmanGet data from the Microsoft Intune API with Postman

Você pode trabalhar com a API do Data Warehouse do Intune com um cliente REST genérico como o Postman.You can work with the Intune Data Warehouse API with a generic REST client such as Postman. O Postman pode fornecer informações sobre os recursos da API, o modelo de dados OData subjacente e solucionar problemas de conexão para os recursos da API.Postman can provide insight into the features of the API, the underlying OData data model, and troubleshoot your connection to the API resources. Nesta seção, você pode encontrar informações de como gerar um token Auth2.0 para seu cliente local.In this section, you can find information about generating an Auth2.0 token for your local client. O cliente precisará do token para autenticar-se no Azure AD e acessar os recursos da API.The client will need the token to authenticate with Azure AD and access the API resources.

Informações necessárias para fazer a chamadaInformation you will need to make the call

Você precisa das seguintes informações para fazer uma chamada à REST usando o Postman:You need the following information to make a REST call using Postman:

AtributoAttribute DescriçãoDescription ExemploExample
URL de Retorno de ChamadaCallback URL Defina como a URL de retorno de chamada na página de configurações do aplicativo.Set this as the callback URL in your app settings page. https://www.getpostman.com/oauth2/callback
Nome do TokenToken Name Uma cadeia de caracteres usada para passar as credenciais para o aplicativo do Azure.A string used to pass the credentials to the Azure app. O processo gera o token que permite fazer uma chamada à API do Data Warehouse.The process generates your token so you can make a call to the Data Warehouse API. PortadorBearer
URL de AutenticaçãoAuth URL Esta é a URL usada para a autenticação.This is the URL used to authenticate. https://login.microsoftonline.com/common/oauth2/authorize?resource=https://api.manage.microsoft.com/
URL do Token de AcessoAccess Token URL Esta é a URL usada para conceder o token.This is the URL used to grant the token. https://login.microsoftonline.com/common/oauth2/token
ID do ClienteClient ID Você criou e anotou essa ID quando criou o aplicativo nativo no Azure.You created, and noted this when creating the native app in Azure. 4184c61a-e324-4f51-83d7-022b6a81b9914184c61a-e324-4f51-83d7-022b6a81b991
Escopo (opcional)Scope (Optional) Em BrancoBlank Você pode deixar o campo em branco.You can leave the field blank.
Tipo de ConcessãoGrant Type O token é um código de autorização.The token is an authorization code. Código de AutorizaçãoAuthorization code

Ponto de extremidade ODataOData endpoint

Você também precisa do ponto de extremidade.You also need the endpoint. Para obter seu ponto de extremidade de Data Warehouse, será necessária a URL do feed personalizada.To get your Data Warehouse endpoint, you will need the custom feed URL. É possível obter o ponto de extremidade OData no painel do Data Warehouse.You can get the OData endpoint from the Data Warehouse pane.

  1. Conecte-se ao Intune.Sign in to Intune.
  2. Abra o painel do Data Warehouse do Intune selecionando o link do Data Warehouse em Outras tarefas, no lado direito da folha Microsoft Intune – Visão geral.Open the Intune Data Warehouse pane by selecting the Data Warehouse link under Other tasks on the right side of the Microsoft Intune - Overview blade.
  3. Copie a URL do feed personalizado em Usar serviços de relatório de terceiros.Copy the custom feed url under Use third-party reporting services. Deverá ser semelhante a: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0It should look something like: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService?api-version=v1.0

O ponto de extremidade segue este formato: https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}The endpoint follows the following format: https://fef.{yourtenant}.manage.microsoft.com/ReportingService/DataWarehouseFEService/{entity}?api-version={verson-number}

Por exemplo, a entidade datas tem a aparência: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0For example, the dates entity looks like: https://fef.tenant.manage.microsoft.com/ReportingService/DataWarehouseFEService/dates?api-version=v1.0

Para obter mais informações, consulte Intune Data Warehouse API endpoint (Ponto de extremidade da API do Data Warehouse do Intune).For more information, see Intune Data Warehouse API endpoint.

Fazer a chamada à RESTMake the REST call

Para obter um novo token de acesso do Postman, você deve adicionar a URL de autorização do Azure AD, adicionar a ID do cliente e o Segredo do cliente.To get a new access token for Postman, you must add the Azure AD authorization URL, add your Client ID, and Client Secret. O Postman carregará a página de autorização na qual você poderá digitar suas credenciais.Postman will load the authorization page where you will type your credentials.

Adicionar as informações usadas para solicitar o tokenAdd the information used to request the token

  1. Baixe o Postman se ele ainda não estiver instalado.Download Postman if you do not already have it installed. Para baixar o Postman, acesse www.getpostman.To download Postman, see www.getpostman.

  2. Abra o Postman.Open Postman. Escolha a operação HTTP GET.Choose the HTTP operation GET.

  3. Cole a URL do ponto de extremidade no endereço.Paste the endpoint URL into the address. Deverá ser semelhante a:It should look something like:

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

  4. Escolha a guia Autorização e selecione OAuth 2.0 na lista Tipo.Choose the Authorization tab, and select OAuth 2.0 from the Type list.

  5. Selecione Obter novo token de acesso.Select Get New Access Token.

  6. Verifique se você já adicionou a URL de retorno de chamada em seu aplicativo no Azure.Verify that you have already added the Callback URL to your app in Azure. A URL de retorno de chamada é https://www.getpostman.com/oauth2/callback.The Callback URL is https://www.getpostman.com/oauth2/callback.

  7. Digite Portador para o Nome do Token.Type Bearer for the Token Name.

  8. Adicione a URL do Auth.Add the Auth URL. Deverá ser semelhante a:It should look something like:

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

  9. Adicione a URL do Token de Acesso.Add the Access Token URL. Deverá ser semelhante a:It should look something like:

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

  10. Adicione a ID do Cliente do aplicativo nativo que você criou no Azure e nomeou como Intune Data Warehouse Client.Add the Client ID from the native app that you created in Azure and named Intune Data Warehouse Client. Deverá ser semelhante a:It should look something like:

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

  11. Selecione o Código de Autorização e Solicitar token de acesso localmente.Select Authorization Code, and Request access token locally.

  12. Selecione Solicitar token.Select Request Token.

    Informações do token de acesso

  13. Digite as credenciais na página de autorização do AD ativo.Type your credentials in the Active AD authorization page. Agora a lista de tokens no Postman contém o token chamado Bearer.The list of tokens in Postman now contains the token named Bearer.

  14. Selecione Usar token.Select Use Token. A lista de cabeçalhos contém o novo valor da chave de Autorização e o valor Bearer <your-authorization-token>.The list of headers contains the new key value of Authorization and the value Bearer <your-authorization-token>.

Enviar a chamada para o ponto de extremidade usando o PostmanSend the call to the endpoint using Postman

  1. Selecione Enviar.Select Send.

  2. Os dados de retorno são exibidos no corpo da resposta do Postman.The return data appears in the Postman response body.

    O status do cliente do Postman é igual a 200 OK

Criar um cliente REST (C#) para obter dados do Data Warehouse do IntuneCreate a REST client (C#) to get data from the Intune Data Warehouse

O exemplo a seguir contém um cliente REST simples.The following sample contains a simple REST client. O código usa a classe httpClient da biblioteca do .Net.The code uses the httpClient class from the .Net library. Depois de obter as credenciais para o Azure AD, o cliente cria uma chamada GET REST para recuperar a entidade de datas da API do Data Warehouse.Once the client gains credentials to Azure AD, the client constructs a GET REST call to retrieve the dates entity from the Data Warehouse API.

Observação

Você pode acessar o exemplo de código a seguir no GitHub.You can access the following code sample on GitHub. Consulte o repositório do GitHub para obter as alterações e atualizações mais recentes para o exemplo.Refer to the GitHub repo for the latest changes and updates to the sample.

  1. Abra o Microsoft Visual Studio.Open Microsoft Visual Studio.

  2. Escolha Arquivo > Novo Projeto.Choose File > New Project. Expanda Visual C# e escolha Aplicativo de Console (.Net Framework) .Expand Visual C#, and choose Console App (.Net Framework).

  3. Nomeie o projeto como IntuneDataWarehouseSamples, navegue até onde deseja salvar o projeto e, em seguida, selecione OK.Name the project IntuneDataWarehouseSamples, browse to where you would like to save the project, and then select OK.

  4. Clique com o botão direito do mouse no nomes da solução no Gerenciador de Soluções e, em seguida, selecione Gerenciar Pacotes NuGet para a Solução.Right-click the name of the solution in the Solution Explorer, and then select Manage NuGet Packages for Solution. Selecione Procurar e, em seguida, digite Microsoft.IdentityModel.Clients.ActiveDirectory na caixa de pesquisa.Select Browse, and then type Microsoft.IdentityModel.Clients.ActiveDirectory in the search box.

  5. Escolha o pacote, selecione o projeto IntuneDataWarehouseSamples em Gerenciar Pacotes da sua Solução e, em seguida, selecione Instalar.Choose the package, select the IntuneDataWarehouseSamples project under Manage Packages for Your Solution, and then select Install.

  6. Selecione Eu Aceito para aceitar a licença do pacote NuGet.Select I Accept to accept the NuGet package license.

  7. Abra Program.cs no Gerenciador de Soluções.Open Program.cs from the Solution Explorer.

    Program.cs e Gerenciador de Soluções no Visual Studio

  8. Substitua o código em Program.cs pelo código a seguir:Replace the code in Program.cs with the following code:

    namespace IntuneDataWarehouseSamples
    {
    using System;
    using System.Net.Http;
    using System.Net.Http.Headers;
    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    
    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 Azure portal.
    *
    * 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 adalContext = new AuthenticationContext("https://login.windows.net/common/oauth2/token");
    AuthenticationResult authResult = adalContext.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. Atualize os TODOs no exemplo de código.Update the TODOs in the code sample.

  10. Pressione Ctrl + F5 para compilar e executar o cliente Intune.DataWarehouseAPIClient no modo de depuração.Press Ctrl + F5 to build and execute the Intune.DataWarehouseAPIClient client in Debug mode.

    Entidade de data recuperada no formato JSON.

  11. Examine a saída do console.Review the console output. A saída contém dados no formato JSON extraídos da entidade datas em seu locatário do Intune.The output contains data in a JSON format pulled from the dates entity in your Intune tenant.

Próximas etapasNext steps

Você pode encontrar detalhes sobre a autorização, a estrutura da URL da API e os pontos de extremidade do OData em Usar a API do Data Warehouse do Intune.You can find details on authorization, the API URL structure, and OData endpoints in Use the Intune Data Warehouse API.

Você também pode consultar o modelo de dados do Data Warehouse do Intune para localizar as entidades de dados contidas na API.You can also refer to the Intune Data Warehouse Data Model to find the data entities contained in the API. Para obter mais informações, consulte Modelo de dados da API do Data Warehouse do IntuneFor more information, see Intune Data Warehouse API Data Model