Come usare l'ID Microsoft Entra per accedere alle API di Intune in Microsoft Graph
L'API Microsoft Graph supporta ora Microsoft Intune con API e ruoli di autorizzazione specifici. L'API Microsoft Graph usa l'ID Microsoft Entra per l'autenticazione e il controllo di accesso.
L'accesso alle API di Intune in Microsoft Graph richiede:
ID applicazione con:
- Autorizzazione per chiamare l'ID Microsoft Entra e le API di Microsoft Graph.
- Ambiti di autorizzazione rilevanti per le attività specifiche dell'applicazione.
Credenziali utente con:
- Autorizzazione per accedere al tenant di Microsoft Entra associato all'applicazione.
- Autorizzazioni dei ruoli necessarie per supportare gli ambiti di autorizzazione dell'applicazione.
L'utente finale deve concedere all'app l'autorizzazione per eseguire attività delle applicazioni per il tenant di Azure.
Questo articolo:
Illustra come registrare un'applicazione con accesso all'API Microsoft Graph e ai ruoli di autorizzazione pertinenti.
Descrive i ruoli di autorizzazione dell'API di Intune.
Fornisce esempi di autenticazione API di Intune per C# e PowerShell.
Descrive come supportare più tenant.
Per altre informazioni, vedere:
- Autorizzare l'accesso alle applicazioni Web tramite OAuth 2.0 e Microsoft Entra ID
- Introduzione all'autenticazione di Microsoft Entra
- Integrazione di applicazioni con l'ID Microsoft Entra
- Informazioni su OAuth 2.0
Registrare le app per usare l'API Microsoft Graph
Per registrare un'app per usare l'API Microsoft Graph:
Accedere all'interfaccia di amministrazione di Microsoft Intune usando le credenziali amministrative.
In base alle esigenze, è possibile usare:
- Account amministratore tenant.
- Un account utente tenant con l'impostazione Utenti può registrare le applicazioni abilitata.
Selezionare Tutti i servizi>M365 Microsoft Entra ID>Microsoft Entra ID>Registrazioni app.
Scegliere Nuova registrazione per creare una nuova applicazione o scegliere un'applicazione esistente. Se si sceglie un'applicazione esistente, ignorare il passaggio successivo.
Nel riquadro Registra un'applicazione specificare quanto segue:
Nome per l'applicazione (visualizzato quando gli utenti accedono).
Tipo di account supportato.
Valore URI di reindirizzamento . Questo valore è un'opzione.
Nota
L'API Graph di Azure AD è in fase di ritiro. Per altre informazioni, vedere Aggiornare le applicazioni per usare Microsoft Authentication Library (MSAL) e l'API Microsoft Graph.
Per altre informazioni, vedere Scenari di autenticazione per l'ID Microsoft Entra.
Dal riquadro dell'applicazione:
Si noti il valore dell'ID applicazione (client).
Selezionare Autorizzazioni API.
Nel riquadro Autorizzazioni API scegliere Aggiungi un'autorizzazione>API> MicrosoftMicrosoft Graph. Selezionare quindi il tipo di autorizzazioni richieste dall'applicazione.
Scegliere i ruoli necessari per l'app inserendo un segno di spunta a sinistra dei nomi pertinenti. Per informazioni sugli ambiti di autorizzazione specifici di Intune, vedere Ambiti di autorizzazione di Intune. Per informazioni su altri ambiti di autorizzazione dell'API Graph, vedere Informazioni di riferimento sulle autorizzazioni di Microsoft Graph.
Per ottenere risultati ottimali, scegliere il minor numero di ruoli necessari per implementare l'applicazione.
Autorizzazioni per data warehouse e creazione di report
Quando si aggiunge un'applicazione tramite l'interfaccia di amministrazione di Microsoft Entra, è possibile scegliere le autorizzazioni dell'API di Intune in base ai requisiti dell'applicazione.
- get_data_warehouse : usare questa autorizzazione API per concedere l'accesso all'API del data warehouse di Intune da Microsoft Intune. Per altre informazioni, vedere Uso di Microsoft Intune Data Warehouse.
API della soluzione partner
Quando si aggiunge un'applicazione tramite l'interfaccia di amministrazione di Microsoft Entra, sono disponibili le autorizzazioni api di Intune seguenti:
- get_device_compliance : questa autorizzazione API viene usata per ottenere informazioni sullo stato del dispositivo e sulla conformità da Microsoft Intune. Questa autorizzazione API viene usata dai partner di controllo di accesso di rete. Per altre informazioni, vedere Integrazione del controllo di accesso alla rete con Intune.
- manage_partner_compliance_policy : questa autorizzazione API viene usata per gestire i criteri di conformità dei partner con Microsoft Intune. Questa autorizzazione API consente all'app di inviare i criteri di conformità dei partner e l'assegnazione del gruppo Microsoft Entra a Microsoft Intune senza un utente connesso. Viene usato dai partner di conformità dei dispositivi. Per altre informazioni, vedere Partner di conformità dei dispositivi di terze parti.
- pfx_cert_provider : questa autorizzazione API viene usata per inviare certificati PFX a Intune per un utente specifico. Intune recapita il certificato a tutti i dispositivi registrati dall'utente. Per altre informazioni, vedere Importazione PFX di PowerShell.
- scep_challenge_provider : questa autorizzazione API viene usata per inviare i problemi SCEP a Intune per la convalida della richiesta di certificato. Viene usato dai partner dell'Autorità di certificazione. Per altre informazioni, vedere Autorità di certificazione partner.
- update_device_attributes : questa autorizzazione API viene usata per inviare informazioni sul dispositivo a Intune da partner di conformità dei dispositivi e protezione dalle minacce mobili. Per altre informazioni, vedere Integrazione di Mobile Threat Defense con Intune e partner di conformità dei dispositivi di terze parti.
- update_device_health : questa autorizzazione API viene usata per inviare informazioni sullo stato di integrità dei dispositivi e minacce a Intune da partner di difesa dalle minacce mobili. Per altre informazioni, vedere Integrazione di Mobile Threat Defense con Intune.
Se si è un partner interessato all'integrazione con Intune usando queste autorizzazioni API, contattare il team di Microsoft Intelligent Security Association] per informazioni.
Al termine, scegliere Aggiungi autorizzazioni per salvare le modifiche.
A questo punto, è anche possibile:
Scegliere di concedere a tutti gli account tenant l'autorizzazione per l'uso dell'app senza specificare le credenziali.
A tale scopo, è possibile concedere le autorizzazioni e accettare la richiesta di conferma.
Quando si esegue l'applicazione per la prima volta, viene richiesto di concedere all'app l'autorizzazione per eseguire i ruoli selezionati.
Rendere l'app disponibile per gli utenti esterni al tenant. Questo è in genere necessario solo per i partner che supportano più tenant/organizzazioni.
A questo scopo:
Scegliere Manifesto nel riquadro dell'applicazione.
Modificare il valore dell'impostazione
availableToOtherTenants
intrue
.Salvare le modifiche.
Presentazione dell'app
Se si riceve una grande quantità di dati durante la richiesta della presentazione dell'app quando si usa l'API Graph, potrebbe verificarsi un errore di servizio 503 non disponibile. È consigliabile riprovare con dimensioni di pagina inferiori, ad esempio 20 o meno elementi.
Ambiti di autorizzazione di Intune
Microsoft Entra ID e Microsoft Graph usano gli ambiti di autorizzazione per controllare l'accesso alle risorse aziendali.
Gli ambiti di autorizzazione (detti anche ambiti OAuth) controllano l'accesso a entità di Intune specifiche e alle relative proprietà. Questa sezione riepiloga gli ambiti di autorizzazione per le funzionalità dell'API di Intune.
Ulteriori informazioni:
Quando si concede l'autorizzazione a Microsoft Graph, è possibile specificare gli ambiti seguenti per controllare l'accesso alle funzionalità di Intune: la tabella seguente riepiloga gli ambiti di autorizzazione dell'API di Intune. La prima colonna mostra il nome della funzionalità come visualizzato nell'interfaccia di amministrazione di Microsoft Intune e la seconda colonna fornisce il nome dell'ambito delle autorizzazioni.
Abilitare l'impostazione di accesso | Nome ambito |
---|---|
Eseguire azioni remote che influiscono sull'utente nei dispositivi Microsoft Intune | DeviceManagementManagedDevices.PrivilegedOperations.All |
Leggere e scrivere dispositivi Microsoft Intune | DeviceManagementManagedDevices.ReadWrite.All |
Leggere i dispositivi Microsoft Intune | DeviceManagementManagedDevices.Read.All |
Leggere e scrivere le impostazioni del controllo degli accessi in base al ruolo di Microsoft Intune | DeviceManagementRBAC.ReadWrite.All |
Leggere le impostazioni del controllo degli accessi in base al ruolo di Microsoft Intune | DeviceManagementRBAC.Read.All |
Leggere e scrivere app di Microsoft Intune | DeviceManagementApps.ReadWrite.All |
Leggere le app di Microsoft Intune | DeviceManagementApps.Read.All |
Leggere e scrivere criteri e configurazione dei dispositivi di Microsoft Intune | DeviceManagementConfiguration.ReadWrite.All |
Leggere i criteri e la configurazione dei dispositivi di Microsoft Intune | DeviceManagementConfiguration.Read.All |
Leggere e scrivere la configurazione di Microsoft Intune | DeviceManagementServiceConfig.ReadWrite.All |
Leggere la configurazione di Microsoft Intune | DeviceManagementServiceConfig.Read.All |
La tabella elenca le impostazioni visualizzate nell'interfaccia di amministrazione di Microsoft Intune. Le sezioni seguenti descrivono gli ambiti in ordine alfabetico.
Al momento, tutti gli ambiti di autorizzazione di Intune richiedono l'accesso amministratore. Ciò significa che sono necessarie credenziali corrispondenti quando si eseguono app o script che accedono alle risorse dell'API di Intune.
DeviceManagementApps.Read.All
Abilitare l'impostazione di accesso : Leggere le app di Microsoft Intune
Consente l'accesso in lettura alle proprietà e allo stato dell'entità seguenti:
- App client
- Categorie di app per dispositivi mobili
- Criteri di protezione delle app
- Configurazioni dell'app
DeviceManagementApps.ReadWrite.All
Abilitare l'impostazione di accesso : Leggere e scrivere app di Microsoft Intune
Consente le stesse operazioni di DeviceManagementApps.Read.All
Consente inoltre di modificare le entità seguenti:
- App client
- Categorie di app per dispositivi mobili
- Criteri di protezione delle app
- Configurazioni dell'app
DeviceManagementConfiguration.Read.All
Abilitare l'impostazione di accesso : Leggere i criteri e la configurazione dei dispositivi di Microsoft Intune
Consente l'accesso in lettura alle proprietà e allo stato dell'entità seguenti:
- Configurazione dispositivo
- Criteri di conformità dei dispositivi
- Messaggi di notifica
DeviceManagementConfiguration.ReadWrite.All
Abilitare l'impostazione di accesso : leggere e scrivere i criteri e la configurazione dei dispositivi di Microsoft Intune
Consente le stesse operazioni di DeviceManagementConfiguration.Read.All
Le app possono anche creare, assegnare, eliminare e modificare le entità seguenti:
- Configurazione dispositivo
- Criteri di conformità dei dispositivi
- Messaggi di notifica
DeviceManagementManagedDevices.PrivilegedOperations.All
Abilitare l'impostazione di accesso : eseguire azioni remote che influiscono sull'utente nei dispositivi Microsoft Intune
Consente le azioni remote seguenti in un dispositivo gestito:
- Ritiro
- Cancellazione
- Reimpostare/ripristinare il passcode
- Blocco remoto
- Abilitare/disabilitare la modalità smarrita
- Pulisci PC
- Riavviare
- Eliminare l'utente dal dispositivo condiviso
DeviceManagementManagedDevices.Read.All
Abilitare l'impostazione di accesso : Leggere i dispositivi Microsoft Intune
Consente l'accesso in lettura alle proprietà e allo stato dell'entità seguenti:
- Dispositivo gestito
- Categoria di dispositivi
- App rilevata
- Azioni remote
- Informazioni sul malware
DeviceManagementManagedDevices.ReadWrite.All
Abilitare l'impostazione di accesso : Lettura e scrittura di dispositivi Microsoft Intune
Consente le stesse operazioni di DeviceManagementManagedDevices.Read.All
Le app possono anche creare, eliminare e modificare le entità seguenti:
- Dispositivo gestito
- Categoria di dispositivi
Sono consentite anche le azioni remote seguenti:
- Individuare i dispositivi
- Disabilitare il blocco dell’attivazione
- Richiedere assistenza remota
DeviceManagementRBAC.Read.All
Abilitare l'impostazione di accesso : Leggere le impostazioni del controllo degli accessi in base al ruolo di Microsoft Intune
Consente l'accesso in lettura alle proprietà e allo stato dell'entità seguenti:
- Assegnazioni di ruolo
- Definizioni di ruolo
- Operazioni delle risorse
DeviceManagementRBAC.ReadWrite.All
Abilitare l'impostazione di accesso : Impostazioni del controllo degli accessi in base al ruolo di Microsoft Intune di lettura e scrittura
Consente le stesse operazioni di DeviceManagementRBAC.Read.All
Le app possono anche creare, assegnare, eliminare e modificare le entità seguenti:
- Assegnazioni di ruolo
- Definizioni di ruolo
DeviceManagementServiceConfig.Read.All
Abilitare l'impostazione di accesso : Leggere la configurazione di Microsoft Intune
Consente l'accesso in lettura alle proprietà e allo stato dell'entità seguenti:
- Registrazione del dispositivo
- Certificato di notifica push Apple
- Apple Device Enrollment Program
- Apple Volume Purchase Program
- Exchange Connector
- Termini e condizioni
- Infrastruttura a chiave pubblica cloud
- Personalizzazione
- Mobile Threat Defense
DeviceManagementServiceConfig.ReadWrite.All
Abilitare l'impostazione di accesso : configurazione di Microsoft Intune di lettura e scrittura
Consente le stesse operazioni di DeviceManagementServiceConfig.Read.All_
Le app possono anche configurare le funzionalità di Intune seguenti:
- Registrazione del dispositivo
- Certificato di notifica push Apple
- Apple Device Enrollment Program
- Apple Volume Purchase Program
- Exchange Connector
- Termini e condizioni
- Infrastruttura a chiave pubblica cloud
- Personalizzazione
- Mobile Threat Defense
Esempi di autenticazione di Microsoft Entra
Questa sezione illustra come incorporare Microsoft Entra ID nei progetti C# e PowerShell.
In ogni esempio è necessario specificare un ID applicazione con almeno l'ambito DeviceManagementManagedDevices.Read.All
di autorizzazione (descritto in precedenza).
Durante il test di uno dei due esempi, è possibile che vengano visualizzati errori di stato HTTP 403 (non consentiti) simili ai seguenti:
{
"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"
}
}
}
In questo caso, verificare che:
L'ID applicazione è stato aggiornato a uno autorizzato a usare l'API Microsoft Graph e l'ambito di
DeviceManagementManagedDevices.Read.All
autorizzazione.Le credenziali del tenant supportano le funzioni amministrative.
Il codice è simile agli esempi visualizzati.
Autenticare l'ID Microsoft Entra in C#
Questo esempio illustra come usare C# per recuperare un elenco di dispositivi associati all'account di Intune.
Nota
L'API Graph di Azure AD è in fase di ritiro. Per altre informazioni, vedere Aggiornare le applicazioni per usare Microsoft Authentication Library (MSAL) e l'API Microsoft Graph.
Avviare Visual Studio e quindi creare un nuovo progetto di app Console Visual C# (.NET Framework).
Immettere un nome per il progetto e specificare altri dettagli in base alle esigenze.
Usare Esplora soluzioni per aggiungere il pacchetto NuGet Microsoft MSAL al progetto:
- Fare clic con il pulsante destro del mouse su Esplora soluzioni.
- Scegliere Gestisci pacchetti NuGet...>Sfoglia.
- Selezionare
Microsoft.Identity.Client
e quindi scegliere Installa.
Aggiungere le istruzioni seguenti all'inizio di Program.cs:
using Microsoft.Identity.Client; using System.Net.Http;
Aggiungere un metodo per creare l'intestazione di autorizzazione:
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();
Ricordarsi di modificare il valore di
application_ID
in modo che corrisponda a uno concesso almeno all'ambito diDeviceManagementManagedDevices.Read.All
autorizzazione, come descritto in precedenza.Aggiungere un metodo per recuperare l'elenco di dispositivi:
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"); }
Aggiornare Main per chiamare GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
Compilare ed eseguire il programma.
Quando si esegue il programma per la prima volta, si riceveranno due richieste. La prima richiede le credenziali e la seconda concede le autorizzazioni per la managedDevices
richiesta.
Per riferimento, ecco il programma completato:
using Microsoft.Identity.Client;
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");
}
}
}
Autenticare l'ID Microsoft Entra con Microsoft Graph PowerShell
Gli script di PowerShell possono usare il modulo PowerShell di Microsoft Graph per l'autenticazione. Per altre informazioni, vedere Microsoft Graph PowerShell e gli esempi di PowerShell di Intune.
Supporto di più tenant e partner
Se l'organizzazione supporta le organizzazioni con i propri tenant di Microsoft Entra, è possibile consentire ai client di usare l'applicazione con i rispettivi tenant.
A questo scopo:
Verificare che l'account client esista nel tenant di Microsoft Entra di destinazione.
Verificare che l'account tenant consenta agli utenti di registrare le applicazioni (vedere Impostazioni utente).
Stabilire una relazione tra ogni tenant.
A tale scopo, eseguire le operazioni seguenti:
a. Usare il Centro per i partner Microsoft per definire una relazione con il client e il relativo indirizzo di posta elettronica.
b. Invitare l'utente a diventare un guest del tenant.
Per invitare l'utente a essere un guest del tenant:
Scegliere Aggiungi un utente guest nel pannello Attività rapide .
Immettere l'indirizzo di posta elettronica del client e (facoltativamente) aggiungere un messaggio personalizzato per l'invito.
Scegliere Invita.
In questo modo viene inviato un invito all'utente.
L'utente deve scegliere il collegamento Get Started per accettare l'invito.
Quando viene stabilita la relazione (o l'invito è stato accettato), aggiungere l'account utente al ruolo Directory.
Ricordarsi di aggiungere l'utente ad altri ruoli in base alle esigenze. Ad esempio, per consentire all'utente di gestire le impostazioni di Intune, deve essere un amministratore globale o un amministratore del servizio Intune.
Anche:
Usare https://admin.microsoft.com per assegnare una licenza di Intune all'account utente.
Aggiornare il codice dell'applicazione per eseguire l'autenticazione al dominio tenant microsoft entra del client, anziché al proprio.
Si supponga, ad esempio, che il dominio tenant sia
contosopartner.onmicrosoft.com
e che il dominio tenant del client sianorthwind.onmicrosoft.com
, è necessario aggiornare il codice per l'autenticazione al tenant del client.A tale scopo, in un'applicazione C# basata sull'esempio precedente, è necessario modificare il valore della
authority
variabile:string authority = "https://login.microsoftonline.com/common/";
a
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";