Como utilizar o Azure AD para aceder às APIs do Intune no Microsoft Graph

A Microsoft Graph API suporta agora o Microsoft Intune com APIs específicas e funções de permissão. A API do Microsoft Graph utiliza o Azure Active Directory (Azure AD) para a autenticação e o controlo de acesso.
O acesso às APIs do Intune no Microsoft Graph exige:

  • Um ID de aplicação com:

    • Permissão para chamar o Azure AD e as APIs do Microsoft Graph.
    • Âmbitos de permissão relevantes para as tarefas da aplicação específica.
  • Credenciais de utilizador com:

    • Permissão para aceder ao inquilino do Azure AD associado à aplicação.
    • Permissões de função necessárias para suportar os âmbitos de permissão da aplicação.
  • O utilizador final para conceder permissão à aplicação para executar as tarefas de aplicações para o respetivo inquilino do Azure.

Este artigo:

  • Mostra como registar uma aplicação com acesso à API do Microsoft Graph e às funções de permissão relevantes.

  • Descreve as funções de permissão da API do Intune.

  • Fornece exemplos de autenticação da API do Intune para o C# e o PowerShell.

  • Descreve como suportar vários inquilinos.

Para saber mais, veja:

Registar aplicações para utilizar a API do Microsoft Graph

Para registar uma aplicação para utilizar a API do Microsoft Graph:

  1. Inscreva-se no centro de administração Microsoft Endpoint Manager usando credenciais administrativas.

    Conforme adequado, pode utilizar:

    • A conta de administrador de inquilino.
    • Uma conta de utilizador inquilino com a definição Os utilizadores podem registar aplicações ativada.
  2. Selecione Todos os serviços > M365 Azure Ative Directory > Azure Ative Directory > Registos da App.

    The App registrations menu command
  3. Escolha novo registo para criar uma nova aplicação ou escolha uma aplicação existente. (Se escolher uma aplicação existente, avance o próximo passo.)

  4. No painel de inscrição do Registo, especifique o seguinte:

  5. Do painel de aplicações:

    1. Note o valor de ID de aplicação (cliente).

    2. Selecione permissões API.

  6. A partir do painel de permissões da API, escolha Adicionar uma permissão > microsoft APIs > Microsoft Graph. Em seguida, selecione o tipo de permissões que a sua aplicação requer.

    Escolha as funções necessárias para a sua aplicação ao colocar uma marca de verificação à esquerda dos nomes relevantes. Para saber mais sobre os âmbitos de permissão específicos do Intune, veja Âmbitos de permissão do Intune. Para saber mais sobre outros âmbitos de permissão da Graph API, veja Microsoft Graph permissions reference (Referência de permissões do Microsoft Graph).

    Para obter melhores resultados, escolha as funções mínimas necessárias para implementar a sua aplicação.

Permissões de armazém de dados e de reporte

Quando adiciona uma aplicação através do centro de administração Azure Ative Directory, pode escolher as permissões intune da API com base nos requisitos da sua aplicação.

  • get_data_warehouse - Utilize esta permissão da API para conceder acesso à API do armazém de dados Intune a partir de Microsoft Intune. Para obter mais informações, consulte utilizar o Microsoft Intune Data Warehouse.

APIs de solução de parceiro

As seguintes permissões intune API estão disponíveis ao adicionar uma aplicação através do centro de administração Azure Ative Directory:

  • get_device_compliance - Esta permissão da API é usada para obter informações de estado do dispositivo e conformidade de Microsoft Intune. Esta permissão API é utilizada pelos parceiros de Controlo de Acesso à Rede. Para obter mais informações, consulte a integração do Controlo de Acesso à Rede com o Intune.
  • manage_partner_compliance_policy - Esta permissão da API é usada para gerir políticas de conformidade de parceiros com Microsoft Intune. Esta permissão da API permite que a app envie políticas de conformidade dos parceiros e a sua atribuição do Grupo AD Azure para Microsoft Intune sem um utilizador inscrito. É utilizado por parceiros de conformidade do dispositivo. Para obter mais informações, consulte parceiros de conformidade com dispositivos de terceiros.
  • pfx_cert_provider - Esta permissão API é utilizada para enviar certificados PFX para o Intune para um utilizador específico. A Intune entrega o certificado a todos os dispositivos matriculados pelo utilizador. Para mais informações, consulte a PFX Import Powershell.
  • scep_challenge_provider - Esta permissão da API é utilizada para enviar desafios SCEP ao Intune para validação de pedido de certificado. É utilizado por parceiros da Autoridade de Certificação. Para mais informações, consulte a Autoridade de Certificação de Parceiros.
  • send_data_usage - Esta permissão da API é usada para desencadear alterações de política para dispositivos baseados em limiares de gestão de despesas de telecomunicações. É utilizado para integrações de parceiros de gestão de despesas de telecomunicações. Para obter mais informações, consulte a gestão de despesas da Telecom no Intune.
  • update_device_attributes - Esta permissão da API é usada para enviar informações do dispositivo para o Intune a partir da conformidade do dispositivo e parceiros de defesa de ameaças móveis. Para obter mais informações, consulte a integração da Mobile Threat Defense com parceiros de conformidade do dispositivo Intune e terceiros.
  • update_device_health - Esta permissão da API é usada para enviar informações sobre saúde e estado de ameaça do dispositivo à Intune de parceiros de defesa de ameaças móveis. Para mais informações, consulte a integração da Mobile Threat Defense com o Intune.

Se você é um parceiro interessado em integrar-se com Intune usando estas permissões API, contacte a equipa da Microsoft Intelligent Security Association] para obter informações.

Quando terminar, escolha Adicionar permissões para poupar-lhe alterações.

Neste ponto, também poderá:

  • Escolher conceder permissão a todas as contas de inquilinos para utilizar a aplicação sem fornecer credenciais.

    Para tal, pode conceder permissões e aceitar o pedido de confirmação.

    Quando executar a aplicação pela primeira vez, será pedido para conceder a permissão de aplicação para executar as funções selecionadas.

  • Tornar a aplicação disponível para utilizadores fora do seu inquilino. (Normalmente, tal é apenas necessário para suportar vários inquilinos/organizações.)

    Para tal:

    1. Escolha Manifesto no painel de aplicações.

      The Edit manifest blade
    2. Altere o valor da definição availableToOtherTenants para true.

    3. Guarde as alterações.

Âmbitos de permissão do Intune

O Azure AD e o Microsoft Graph utilizam âmbitos de permissão para controlarem o acesso aos recursos empresariais.

Os âmbitos de permissão (também chamados âmbitos do OAuth) controlam o acesso a entidades específicas do Intune e às respetivas propriedades. Esta secção resume os âmbitos de permissão das funcionalidades da API do Intune.

Para saber mais:

Quando concede permissão ao Microsoft Graph, pode especificar os seguintes âmbitos para controlar o acesso às funcionalidades do Intune: a tabela seguinte resume os âmbitos de permissão da API do Intune. A primeira coluna mostra o nome da função exibida no centro de administração Microsoft Endpoint Manager e a segunda coluna fornece o nome do âmbito de permissão.

Definição Ativar Acesso Nome do âmbito
Executar ações remotas que afetam o utilizador em dispositivos do Microsoft Intune DeviceManagementManagedDevices.Operações privilegiadas.Todas as operações
Leitura e escrita de dispositivos do Microsoft Intune DeviceManagementManagedDevices.ReadWrite.all
Leitura de dispositivos do Microsoft Intune DeviceManagementManagedDevices.Read.All
Leitura e escrita de definições de RBAC do Microsoft Intune DeviceManagementRBAC.ReadWrite.All
Leitura de definições de RBAC do Microsoft Intune DeviceManagementRBAC.Read.All
Leitura e escrita de aplicações do Microsoft Intune DeviceManagementApps.ReadWrite.All
Leitura de aplicações do Microsoft Intune DeviceManagementApps.Read.All
Leitura e escrita da Configuração e Políticas de Dispositivos do Microsoft Intune DeviceManagementConfiguration.ReadWrite.All
Leitura da Configuração e Políticas de Dispositivos do Microsoft Intune Configuração de Gestão de Dispositivos.Ler.Todos
Leitura e escrita da configuração do Microsoft Intune DeviceManagementServiceConfig.ReadWrite.All
Leitura da configuração do Microsoft Intune DeviceManagementServiceConfig.Read.All

A tabela lista as definições tal como aparecem no centro de administração Microsoft Endpoint Manager. As secções a seguir descrevem os âmbitos por ordem alfabética.

Neste momento, todos os âmbitos de permissão do Intune exigem acesso de administrador. Isto significa que precisa de ter credenciais correspondentes ao executar aplicações ou scripts que acedam aos recursos da API do Intune.

DeviceManagementApps.Read.All

  • Definição Ativar Acesso: leitura de aplicações do Microsoft Intune

  • Permite o acesso de leitura às seguintes propriedades e estado da entidade:

    • Aplicações Cliente
    • Categorias de Aplicações Móveis
    • Políticas de Proteção de Aplicações
    • Configurações de Aplicações

DeviceManagementApps.ReadWrite.All

  • Definição Ativar Acesso: leitura e escrita de aplicações do Microsoft Intune

  • Permite as mesmas operações de DeviceManagementApps.Read.All

  • Também permite alterações às entidades a seguir:

    • Aplicações Cliente
    • Categorias de Aplicações Móveis
    • Políticas de Proteção de Aplicações
    • Configurações de Aplicações

DeviceManagementConfiguration.Read.All

  • Definição Ativar Acesso: leitura da configuração e políticas de dispositivos do Microsoft Intune

  • Permite o acesso de leitura às seguintes propriedades e estado da entidade:

    • Configuração do Dispositivo
    • Política de Conformidade de Dispositivos
    • Mensagens de Notificação

DeviceManagementConfiguration.ReadWrite.All

  • Definição Ativar Acesso: leitura e escrita da configuração e políticas de dispositivos do Microsoft Intune

  • Permite as mesmas operações de DeviceManagementConfiguration.Read.All

  • As aplicações também podem criar, atribuir, eliminar e alterar as entidades a seguir:

    • Configuração do Dispositivo
    • Política de Conformidade de Dispositivos
    • Mensagens de Notificação

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Definição Ativar Acesso: Executar ações remotas que afetam o utilizador em dispositivos do Microsoft Intune

  • Permite as seguintes ações remotas num dispositivo gerido:

    • Extinguir
    • Eliminação
    • Repor/Recuperar Código de Acesso
    • Bloqueio Remoto
    • Ativar/Desativar o Modo Perdido
    • Limpar o PC
    • Reiniciar
    • Eliminar o Utilizador do Dispositivo Partilhado

DeviceManagementManagedDevices.Read.All

  • Definição Ativar Acesso: leitura de dispositivos do Microsoft Intune

  • Permite o acesso de leitura às seguintes propriedades e estado da entidade:

    • Dispositivo Gerido
    • Categoria de Dispositivo
    • Aplicação Detetada
    • Ações remotas
    • Informações de malware

DeviceManagementManagedDevices.ReadWrite.All

  • Definição Ativar Acesso: leitura e escrita de dispositivos do Microsoft Intune

  • Permite as mesmas operações de DeviceManagementManagedDevices.Read.All

  • As aplicações também podem criar, eliminar e alterar as entidades a seguir:

    • Dispositivo Gerido
    • Categoria de Dispositivo
  • As seguintes ações remotas também são permitidas:

    • Localizar dispositivos
    • Desativar o Bloqueio de Ativação
    • Pedir assistência remota

DeviceManagementRBAC.Read.All

  • Definição Ativar Acesso: leitura de definições de RBAC do Microsoft Intune

  • Permite o acesso de leitura às seguintes propriedades e estado da entidade:

    • Atribuições de Funções
    • Definições de Função
    • Operações de Recursos

DeviceManagementRBAC.ReadWrite.All

  • Definição Ativar Acesso: leitura e escrita de definições de RBAC do Microsoft Intune

  • Permite as mesmas operações de DeviceManagementRBAC.Read.All

  • As aplicações também podem criar, atribuir, eliminar e alterar as entidades a seguir:

    • Atribuições de Funções
    • Definições de Função

DeviceManagementServiceConfig.Read.All

  • Definição Ativar Acesso: leitura da configuração do Microsoft Intune

  • Permite o acesso de leitura às seguintes propriedades e estado da entidade:

    • Inscrição de Dispositivos
    • Certificado Apple Push Notification
    • Programa de Inscrição de Dispositivos Apple
    • Apple Volume Purchase Program
    • Exchange Connector
    • Terms and Conditions
    • Gestão de Despesas de Telecomunicações
    • PKI na Cloud
    • Imagem corporativa
    • Defesa Contra Ameaças para Dispositivos Móveis

DeviceManagementServiceConfig.ReadWrite.All

  • Definição Ativar Acesso: leitura e escrita da configuração do Microsoft Intune

  • Permite as mesmas operações que o DeviceManagementServiceConfig.Read.All

  • As aplicações também podem configurar as seguintes funcionalidades do Intune:

    • Inscrição de Dispositivos
    • Certificado Apple Push Notification
    • Programa de Inscrição de Dispositivos Apple
    • Apple Volume Purchase Program
    • Exchange Connector
    • Terms and Conditions
    • Gestão de Despesas de Telecomunicações
    • PKI na Cloud
    • Imagem corporativa
    • Defesa Contra Ameaças para Dispositivos Móveis

Exemplos de autenticação do Azure AD

Esta secção mostra como incorporar o Azure AD com seus projetos do C# e PowerShell.

Em cada exemplo, precisará de especificar um ID de aplicação que tenha pelo menos o DeviceManagementManagedDevices.Read.All âmbito de permissão (discutido anteriormente).

Ao testar o exemplo, poderá receber erros de estado HTTP 403 (Proibido) semelhantes ao seguinte:

{
  "error": {
    "code": "Forbidden",
    "message": "Application is not authorized to perform this operation - Operation ID " +
       "(for customer support): 00000000-0000-0000-0000-000000000000 - " +
       "Activity ID: cc7fa3b3-bb25-420b-bfb2-1498e598ba43 - " +
       "Url: https://example.manage.microsoft.com/" +
       "Service/Resource/RESTendpoint?" +
       "api-version=2017-03-06 - CustomApiErrorPhrase: ",
    "innerError": {
      "request-id": "00000000-0000-0000-0000-000000000000",
      "date": "1980-01-0112:00:00"
    }
  }
}

Caso tal aconteça, verifique se:

  • Atualizou o ID da aplicação para um autorizado para utilizar a API do Microsoft Graph e o âmbito de permissão DeviceManagementManagedDevices.Read.All.

  • As suas credenciais de inquilino suportam funções administrativas.

  • O seu código é semelhante aos exemplos apresentados.

Autenticação do Azure AD no C#

Este exemplo mostra como utilizar o C# para recuperar uma lista de dispositivos associados à sua conta do Intune.

Nota

Azure Ative Directory (Azure AD) Authentication Library (ADAL) e Azure AD Graph API serão depreciadas. Para obter mais informações, consulte Update your applications to use Microsoft Authentication Library (MSAL) and Microsoft Graph API.

  1. Inicie o Visual Studio e, em seguida, crie um novo projeto de aplicação da Consola do Visual C# (.NET Framework).

  2. Introduza um nome para o seu projeto e forneça outros detalhes conforme pretendido.

    Creating a C# console app project in Visual Studio
  3. Utilize o Solution Explorer para adicionar o pacote Microsoft ADAL NuGet ao projeto:

    1. Clique com o botão direito do rato no Explorador de Soluções.
    2. Escolha Gerir Pacotes NuGet... >Procurar.
    3. Selecione Microsoft.IdentityModel.Clients.ActiveDirectory e, em seguida, Instalar.
    Selecting the Azure AD identity model module
  4. Adicione as seguintes instruções para a parte superior do Program.cs:

    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using System.Net.Http;
    
  5. Adicione um método para criar o cabeçalho de autorização:

    private static async Task<string> GetAuthorizationHeader()
    {
        string applicationId = "<Your Application ID>";
        string authority = "https://login.microsoftonline.com/common/";
        Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
        AuthenticationContext context = new AuthenticationContext(authority);
        AuthenticationResult result = await context.AcquireTokenAsync(
            "https://graph.microsoft.com",
            applicationId, redirectUri,
            new PlatformParameters(PromptBehavior.Auto));
        return result.CreateAuthorizationHeader();
    

    Lembre-se de alterar o valor de application_ID para corresponder a pelo menos um DeviceManagementManagedDevices.Read.All âmbito de permissão concedido, conforme descrito anteriormente.

  6. Adicione um método para recuperar a lista de dispositivos:

    private static async Task<string> GetMyManagedDevices()
    {
        string authHeader = await GetAuthorizationHeader();
        HttpClient graphClient = new HttpClient();
        graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
        return await graphClient.GetStringAsync(
            "https://graph.microsoft.com/beta/me/managedDevices");
    }
    
  7. Atualize Principal para chamar GetMyManagedDevices:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Compile e execute o programa.

Ao executar o programa pela primeira vez, deve receber dois pedidos. O primeiro pede as suas credenciais e o segundo concede permissões para o managedDevices pedido.

Para referência, eis o programa concluído:

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace IntuneGraphExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string devices = GetMyManagedDevices().GetAwaiter().GetResult();
            Console.WriteLine(devices);
        }

        private static async Task<string> GetAuthorizationHeader()
        {
            string applicationId = "<Your Application ID>";
            string authority = "https://login.microsoftonline.com/common/";
            Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
            AuthenticationContext context = new AuthenticationContext(authority);
            AuthenticationResult result = await context.AcquireTokenAsync("https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
            return result.CreateAuthorizationHeader();
        }

        private static async Task<string> GetMyManagedDevices()
        {
            string authHeader = await GetAuthorizationHeader();
            HttpClient graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
            return await graphClient.GetStringAsync("https://graph.microsoft.com/beta/me/managedDevices");
        }
    }
}

Autenticar o Azure AD (PowerShell)

O script do PowerShell a seguir utiliza o módulo AzureAD PowerShell para autenticação. Para saber mais, veja Azure Active Directory PowerShell Version 2 (Versão 2 do Azure Active Directory PowerShell) e os Exemplos do Intune PowerShell.

Neste exemplo, atualize o valor de $clientID para corresponder a um ID de aplicação válido.

function Get-AuthToken {
    [cmdletbinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        $User
    )

    $userUpn = New-Object "System.Net.Mail.MailAddress" -ArgumentList $User
    $tenant = $userUpn.Host

    Write-Host "Checking for AzureAD module..."

    $AadModule = Get-Module -Name "AzureAD" -ListAvailable
    if ($AadModule -eq $null) {
        Write-Host "AzureAD PowerShell module not found, looking for AzureADPreview"
        $AadModule = Get-Module -Name "AzureADPreview" -ListAvailable
    }

    if ($AadModule -eq $null) {
        write-host
        write-host "AzureAD Powershell module not installed..." -f Red
        write-host "Install by running 'Install-Module AzureAD' or 'Install-Module AzureADPreview' from an elevated PowerShell prompt" -f Yellow
        write-host "Script can't continue..." -f Red
        write-host
        exit
    }

    # Getting path to ActiveDirectory Assemblies
    # If the module count is greater than 1 find the latest version

    if ($AadModule.count -gt 1) {
        $Latest_Version = ($AadModule | select version | Sort-Object)[-1]
        $aadModule = $AadModule | ? { $_.version -eq $Latest_Version.version }
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    else {
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null
    [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null

    $clientId = "<Your Application ID>"
    $redirectUri = "urn:ietf:wg:oauth:2.0:oob"
    $resourceAppIdURI = "https://graph.microsoft.com"
    $authority = "https://login.microsoftonline.com/$Tenant"

    try {
        $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
        # https://msdn.microsoft.com/library/azure/microsoft.identitymodel.clients.activedirectory.promptbehavior.aspx
        # Change the prompt behaviour to force credentials each time: Auto, Always, Never, RefreshSession
        $platformParameters = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters" -ArgumentList "Auto"
        $userId = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier" -ArgumentList ($User, "OptionalDisplayableId")
        $authResult = $authContext.AcquireTokenAsync($resourceAppIdURI, $clientId, $redirectUri, $platformParameters, $userId).Result
        # If the accesstoken is valid then create the authentication header
        if ($authResult.AccessToken) {
            # Creating header for Authorization token
            $authHeader = @{
                'Content-Type' = 'application/json'
                'Authorization' = "Bearer " + $authResult.AccessToken
                'ExpiresOn' = $authResult.ExpiresOn
            }
            return $authHeader
        }
        else {
            Write-Host
            Write-Host "Authorization Access Token is null, please re-run authentication..." -ForegroundColor Red
            Write-Host
            break
        }
    }
    catch {
        write-host $_.Exception.Message -f Red
        write-host $_.Exception.ItemName -f Red
        write-host
        break
    }   
}

$authToken = Get-AuthToken -User "<Your AAD Username>"

try {
    $uri = "https://graph.microsoft.com/beta/me/managedDevices"
    Write-Verbose $uri
    (Invoke-RestMethod -Uri $uri –Headers $authToken –Method Get).Value
}
catch {
    $ex = $_.Exception
    $errorResponse = $ex.Response.GetResponseStream()
    $reader = New-Object System.IO.StreamReader($errorResponse)
    $reader.BaseStream.Position = 0
    $reader.DiscardBufferedData()
    $responseBody = $reader.ReadToEnd();
    Write-Host "Response content:`n$responseBody" -f Red
    Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"
    write-host
    break
}

Suportar vários inquilinos e parceiros

Se a sua organização suportar organizações com os seus próprios inquilinos do Azure AD, poderá querer permitir que os seus clientes utilizem a sua aplicação com os respetivos inquilinos.

Para tal:

  1. Verifique se a conta de cliente existe no inquilino do Azure AD de destino.

  2. Verifique se a sua conta de inquilino permite que os utilizadores registem aplicações (consulte Configurações do utilizador).

  3. Estabeleça uma relação entre cada inquilino.

    Para tal:

    a. Utilize o Microsoft Partner Center para definir uma relação com o cliente e o respetivo endereço de e-mail.

    b. Convide utilizadores para se tornarem um convidado do seu inquilino.

Para convidar o utilizador para ser um convidado do seu inquilino:

  1. Escolha Adicionar um utilizador convidado no painel Tarefas rápidas.

    Use Quick Tasks to add a guest user
  2. Introduza o endereço de e-mail do cliente e (opcionalmente) adicione uma mensagem personalizada para o convite.

    Inviting an external user as a guest
  3. Escolha Convidar.

Este procedimento envia um convite ao utilizador.

A sample guest invitation

O utilizador precisa de escolher a ligação Começar Agora para aceitar o convite.

Quando a relação for estabelecida (ou o seu convite tiver sido aceite), adicione a conta de utilizador à Função de diretório.

Lembre-se de adicionar o utilizador a outras funções, conforme necessário. Por exemplo, para permitir ao utilizador gerir as definições do Intune, aquele precisa de ser um Administrador Global ou um Administrador de Serviço do Intune.

Além disso:

  • Utilize https://admin.microsoft.com para atribuir uma licença do Intune à sua conta de utilizador.

  • Atualize o código da aplicação para autenticar o domínio de inquilino do Azure AD do cliente em vez do seu próprio.

    Por exemplo, suponha que o seu domínio de inquilino é contosopartner.onmicrosoft.com e o domínio de inquilino do cliente é northwind.onmicrosoft.com, deve atualizar o seu código para autenticar o inquilino do cliente.

    Para fazer isso numa aplicação do C# com base no exemplo anterior, altere o valor da variável authority:

    string authority = "https://login.microsoftonline.com/common/";
    

    para

    string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";