Jak używać Tożsamość Microsoft Entra do uzyskiwania dostępu do interfejsów API Intune w programie Microsoft Graph
Usługa Microsoft interfejs Graph API obsługuje teraz Microsoft Intune z określonymi interfejsami API i rolami uprawnień. Usługa Microsoft interfejs Graph API używa Tożsamość Microsoft Entra do uwierzytelniania i kontroli dostępu.
Dostęp do interfejsów API Intune w programie Microsoft Graph wymaga:
Identyfikator aplikacji z:
- Uprawnienie do wywoływania Tożsamość Microsoft Entra i interfejsów API programu Microsoft Graph.
- Zakresy uprawnień związane z określonymi zadaniami aplikacji.
Poświadczenia użytkownika z:
- Uprawnienie dostępu do dzierżawy Microsoft Entra skojarzonej z aplikacją.
- Uprawnienia roli wymagane do obsługi zakresów uprawnień aplikacji.
Użytkownik końcowy udziela aplikacji uprawnień do wykonywania zadań aplikacji dla dzierżawy platformy Azure.
Ten artykuł:
Pokazuje, jak zarejestrować aplikację z dostępem do interfejs Graph API firmy Microsoft i odpowiednich ról uprawnień.
Opisuje role uprawnień interfejsu API Intune.
Zawiera przykłady uwierzytelniania interfejsu API Intune dla języka C# i programu PowerShell.
W tym artykule opisano sposób obsługi wielu dzierżaw.
Aby dowiedzieć się więcej, zobacz:
- Autoryzowanie dostępu do aplikacji internetowych przy użyciu protokołu OAuth 2.0 i Tożsamość Microsoft Entra
- Rozpoczynanie pracy z uwierzytelnianiem Microsoft Entra
- Integrowanie aplikacji z Tożsamość Microsoft Entra
- Omówienie protokołu OAuth 2.0
Rejestrowanie aplikacji w celu korzystania z usługi Microsoft interfejs Graph API
Aby zarejestrować aplikację w celu korzystania z usługi Microsoft interfejs Graph API:
Zaloguj się do centrum administracyjnego Microsoft Intune przy użyciu poświadczeń administracyjnych.
W razie potrzeby możesz użyć:
- Konto administratora dzierżawy.
- Konto użytkownika dzierżawy z włączonym ustawieniem Użytkownicy mogą rejestrować aplikacje .
Wybierz pozycję Wszystkie usługi>M365 Tożsamość Microsoft Entra>Tożsamość Microsoft Entra>Rejestracje aplikacji.
Wybierz pozycję Nowa rejestracja , aby utworzyć nową aplikację, lub wybierz istniejącą aplikację. (Jeśli wybierzesz istniejącą aplikację, pomiń następny krok).
W okienku Rejestrowanie aplikacji określ następujące elementy:
Nazwa aplikacji (wyświetlana podczas logowania użytkowników).
Obsługiwany typ konta.
Wartość identyfikatora URI przekierowania . Ta wartość jest opcją.
Uwaga
Azure AD interfejs Graph API jest w fazie przejścia na emeryturę. Aby uzyskać więcej informacji, zobacz Aktualizowanie aplikacji w celu używania biblioteki Microsoft Authentication Library (MSAL) i microsoft interfejs Graph API.
Aby dowiedzieć się więcej, zobacz Scenariusze uwierzytelniania dla Tożsamość Microsoft Entra.
W okienku aplikacji:
Zanotuj wartość identyfikatora aplikacji (klienta ).
Wybierz pozycję Uprawnienia interfejsu API.
W okienku Uprawnienia interfejsu API wybierz pozycję Dodaj uprawnienie>Interfejsy> API firmyMicrosoft Microsoft Graph. Następnie wybierz typ uprawnień wymaganych przez aplikację.
Wybierz role wymagane dla aplikacji, umieszczając znacznik wyboru po lewej stronie odpowiednich nazw. Aby dowiedzieć się więcej o określonych zakresach uprawnień Intune, zobacz Intune zakresy uprawnień. Aby dowiedzieć się więcej o innych zakresach uprawnień interfejs Graph API, zobacz Dokumentacja uprawnień programu Microsoft Graph.
Aby uzyskać najlepsze wyniki, wybierz najmniejszą liczbę ról potrzebnych do zaimplementowania aplikacji.
Uprawnienia magazynu danych i raportowania
Po dodaniu aplikacji za pośrednictwem centrum administracyjne Microsoft Entra możesz wybrać uprawnienia interfejsu API Intune na podstawie wymagań aplikacji.
- get_data_warehouse — użyj tego uprawnienia interfejsu API, aby udzielić dostępu do interfejsu API magazynu danych Intune z Microsoft Intune. Aby uzyskać więcej informacji, zobacz Korzystanie z Microsoft Intune Data Warehouse.
Interfejsy API rozwiązania partnerskiego
Podczas dodawania aplikacji za pośrednictwem centrum administracyjne Microsoft Entra są dostępne następujące uprawnienia interfejsu API Intune:
- get_device_compliance — to uprawnienie interfejsu API służy do pobierania informacji o stanie urządzenia i zgodności z Microsoft Intune. To uprawnienie interfejsu API jest używane przez partnerów Access Control sieci. Aby uzyskać więcej informacji, zobacz Network Access Control integration with Intune (Integracja Access Control sieci z Intune).
- manage_partner_compliance_policy — to uprawnienie interfejsu API służy do zarządzania zasadami zgodności partnerów za pomocą Microsoft Intune. To uprawnienie interfejsu API umożliwia aplikacji wysyłanie zasad zgodności partnera i jej Microsoft Entra przypisania grupy do Microsoft Intune bez zalogowanego użytkownika. Jest on używany przez partnerów ds. zgodności urządzeń. Aby uzyskać więcej informacji, zobacz Partnerzy zgodności urządzeń innych firm.
- pfx_cert_provider — to uprawnienie interfejsu API służy do wysyłania certyfikatów PFX do Intune dla określonego użytkownika. Intune dostarcza certyfikat do wszystkich urządzeń zarejestrowanych przez użytkownika. Aby uzyskać więcej informacji, zobacz PFX Import PowerShell (Importowanie programu PowerShell w formacie PFX).
- scep_challenge_provider — to uprawnienie interfejsu API służy do wysyłania wyzwań protokołu SCEP do Intune w celu weryfikacji żądania certyfikatu. Jest on używany przez partnerów urzędu certyfikacji. Aby uzyskać więcej informacji, zobacz Urząd certyfikacji partnera.
- update_device_attributes — to uprawnienie interfejsu API służy do wysyłania informacji o urządzeniu do Intune od partnerów ds. zgodności urządzeń i ochrony przed zagrożeniami mobilnymi. Aby uzyskać więcej informacji, zobacz Mobile Threat Defense integration with Intune and Third party device compliance partners (Integracja usługi Mobile Threat Defense z Intune i partnerami zgodności urządzeń innych firm).
- update_device_health — to uprawnienie interfejsu API służy do wysyłania informacji o kondycji urządzenia i stanie zagrożenia do Intune od partnerów ochrony przed zagrożeniami mobilnymi. Aby uzyskać więcej informacji, zobacz Mobile Threat Defense integration with Intune (Integracja usługi Mobile Threat Defense z usługą Intune).
Jeśli jesteś partnerem zainteresowanym integracją z Intune przy użyciu tych uprawnień interfejsu API, skontaktuj się z zespołem Microsoft Intelligent Security Association], aby uzyskać informacje.
Po zakończeniu wybierz pozycję Dodaj uprawnienia , aby zapisać zmiany.
W tym momencie możesz również:
Wybierz, aby udzielić uprawnień dla wszystkich kont dzierżawy do korzystania z aplikacji bez podawania poświadczeń.
W tym celu możesz udzielić uprawnień i zaakceptować monit o potwierdzenie.
Po pierwszym uruchomieniu aplikacji zostanie wyświetlony monit o przyznanie aplikacji uprawnień do wykonywania wybranych ról.
Udostępnij aplikację użytkownikom spoza dzierżawy. (Zwykle jest to wymagane tylko w przypadku partnerów obsługujących wiele dzierżaw/organizacji).
W tym celu:
Wybierz pozycję Manifest w okienku aplikacji.
Zmień wartość ustawienia na
availableToOtherTenants
true
.Zapisz zmiany.
Lista aplikacji
Jeśli podczas korzystania z interfejs Graph API otrzymujesz dużą ilość danych podczas żądania listy aplikacji, może wystąpić błąd 503 Usługa niedostępna. Zalecamy ponowienie próby przy mniejszym rozmiarze strony, takim jak 20 lub mniej elementów.
Intune zakresy uprawnień
Tożsamość Microsoft Entra i Microsoft Graph używają zakresów uprawnień do kontrolowania dostępu do zasobów firmowych.
Zakresy uprawnień (nazywane również zakresami OAuth) kontrolują dostęp do określonych jednostek Intune i ich właściwości. W tej sekcji podsumowano zakresy uprawnień dla funkcji interfejsu API Intune.
Aby dowiedzieć się więcej:
Po udzieleniu uprawnień do programu Microsoft Graph można określić następujące zakresy kontroli dostępu do funkcji Intune: Poniższa tabela zawiera podsumowanie zakresów uprawnień interfejsu API Intune. Pierwsza kolumna zawiera nazwę funkcji wyświetlaną w centrum administracyjnym Microsoft Intune, a druga zawiera nazwę zakresu uprawnień.
Ustawienie Włącz dostęp | Nazwa zakresu |
---|---|
Wykonywanie akcji zdalnych wpływających na użytkownika na urządzeniach Microsoft Intune | DeviceManagementManagedDevices.PrivilegedOperations.All |
Odczyt i zapis urządzeń Microsoft Intune | DeviceManagementManagedDevices.ReadWrite.All |
Urządzenia odczytu Microsoft Intune | DeviceManagementManagedDevices.Read.All |
Odczyt i zapis ustawień kontroli dostępu opartej na rolach Microsoft Intune | DeviceManagementRBAC.ReadWrite.All |
Odczyt ustawień kontroli dostępu opartej na rolach Microsoft Intune | DeviceManagementRBAC.Read.All |
Odczytywanie i zapisywanie aplikacji Microsoft Intune | DeviceManagementApps.ReadWrite.All |
Odczytywanie aplikacji Microsoft Intune | DeviceManagementApps.Read.All |
Odczyt i zapis Microsoft Intune Konfiguracja urządzenia i zasady | DeviceManagementConfiguration.ReadWrite.All |
Odczyt Microsoft Intune konfiguracji urządzeń i zasad | DeviceManagementConfiguration.Read.All |
Konfiguracja Microsoft Intune odczytu i zapisu | DeviceManagementServiceConfig.ReadWrite.All |
Konfiguracja Microsoft Intune odczytu | DeviceManagementServiceConfig.Read.All |
Tabela zawiera listę ustawień wyświetlanych w centrum administracyjnym Microsoft Intune. W poniższych sekcjach opisano zakresy w kolejności alfabetycznej.
Obecnie wszystkie zakresy uprawnień Intune wymagają dostępu administratora. Oznacza to, że podczas uruchamiania aplikacji lub skryptów, które uzyskują dostęp do Intune zasobów interfejsu API, potrzebne są odpowiednie poświadczenia.
DeviceManagementApps.Read.All
Ustawienie Włącz dostęp: odczytywanie aplikacji Microsoft Intune
Zezwala na dostęp do odczytu do następujących właściwości i stanu jednostki:
- Aplikacje klienckie
- Kategorie aplikacji mobilnych
- Zasady ochrony aplikacji
- Konfiguracje aplikacji
DeviceManagementApps.ReadWrite.All
Ustawienie Włącz dostęp: odczyt i zapis aplikacji Microsoft Intune
Zezwala na te same operacje co DeviceManagementApps.Read.All
Zezwala również na zmiany w następujących jednostkach:
- Aplikacje klienckie
- Kategorie aplikacji mobilnych
- Zasady ochrony aplikacji
- Konfiguracje aplikacji
DeviceManagementConfiguration.Read.All
Ustawienie Włącz dostęp: Odczyt Microsoft Intune konfiguracji urządzenia i zasad
Zezwala na dostęp do odczytu do następujących właściwości i stanu jednostki:
- Konfiguracja urządzenia
- Zasady zgodności urządzeń
- Komunikaty powiadomień
DeviceManagementConfiguration.ReadWrite.All
Ustawienie Włącz dostęp: Odczyt i zapis Microsoft Intune konfiguracji urządzenia i zasad
Zezwala na te same operacje co DeviceManagementConfiguration.Read.All
Aplikacje mogą również tworzyć, przypisywać, usuwać i zmieniać następujące jednostki:
- Konfiguracja urządzenia
- Zasady zgodności urządzeń
- Komunikaty powiadomień
DeviceManagementManagedDevices.PrivilegedOperations.All
Ustawienie Włącz dostęp: wykonywanie akcji zdalnych wpływających na użytkownika na urządzeniach Microsoft Intune
Zezwala na następujące akcje zdalne na zarządzanym urządzeniu:
- Wycofaj
- Wyczyść dane
- Resetowanie/odzyskiwanie kodu dostępu
- Zdalne blokowanie
- Włączanie/wyłączanie trybu utraty
- Czysty komputer
- Ponowny rozruch
- Usuwanie użytkownika z urządzenia udostępnionego
DeviceManagementManagedDevices.Read.All
Ustawienie Włącz dostęp: odczyt urządzeń Microsoft Intune
Zezwala na dostęp do odczytu do następujących właściwości i stanu jednostki:
- Urządzenie zarządzane
- Kategoria urządzenia
- Wykryta aplikacja
- Akcje zdalne
- Informacje o złośliwym oprogramowaniu
DeviceManagementManagedDevices.ReadWrite.All
Ustawienie Włącz dostęp: urządzenia odczytu i zapisu Microsoft Intune
Zezwala na te same operacje co DeviceManagementManagedDevices.Read.All
Aplikacje mogą również tworzyć, usuwać i zmieniać następujące jednostki:
- Urządzenie zarządzane
- Kategoria urządzenia
Dozwolone są również następujące akcje zdalne:
- Lokalizowanie urządzeń
- Wyłączanie blokady aktywacji
- Żądanie pomocy zdalnej
DeviceManagementRBAC.Read.All
Ustawienie Włącz dostęp: odczyt Microsoft Intune ustawień kontroli dostępu opartej na rolach
Zezwala na dostęp do odczytu do następujących właściwości i stanu jednostki:
- Przypisania ról
- Definicje ról
- Operacje zasobów
DeviceManagementRBAC.ReadWrite.All
Ustawienie Włącz dostęp: odczyt i zapis Microsoft Intune ustawień kontroli dostępu opartej na rolach
Zezwala na te same operacje co DeviceManagementRBAC.Read.All
Aplikacje mogą również tworzyć, przypisywać, usuwać i zmieniać następujące jednostki:
- Przypisania ról
- Definicje ról
DeviceManagementServiceConfig.Read.All
Ustawienie Włącz dostęp: konfiguracja Microsoft Intune odczytu
Zezwala na dostęp do odczytu do następujących właściwości i stanu jednostki:
- Rejestrowanie urządzeń
- Apple Push Notification Certificate
- Apple Device Enrollment Program
- Program zakupów zbiorczych firmy Apple
- Exchange Connector
- Warunki i postanowienia
- PKI w chmurze
- Marki
- Ochrona przed zagrożeniami mobilnymi
DeviceManagementServiceConfig.ReadWrite.All
Ustawienie Włącz dostęp: konfiguracja odczytu i zapisu Microsoft Intune
Umożliwia wykonywanie tych samych operacji co DeviceManagementServiceConfig.Read.All_
Aplikacje mogą również skonfigurować następujące funkcje Intune:
- Rejestrowanie urządzeń
- Apple Push Notification Certificate
- Apple Device Enrollment Program
- Program zakupów zbiorczych firmy Apple
- Exchange Connector
- Warunki i postanowienia
- PKI w chmurze
- Marki
- Ochrona przed zagrożeniami mobilnymi
przykłady uwierzytelniania Microsoft Entra
W tej sekcji pokazano, jak włączyć Tożsamość Microsoft Entra do projektów języka C# i programu PowerShell.
W każdym przykładzie należy określić identyfikator aplikacji, który ma co najmniej DeviceManagementManagedDevices.Read.All
zakres uprawnień (omówiony wcześniej).
Podczas testowania dowolnego przykładu mogą wystąpić błędy stanu HTTP 403 (Zabronione) podobne do następujących:
{
"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"
}
}
}
W takim przypadku sprawdź, czy:
Identyfikator aplikacji został zaktualizowany do identyfikatora autoryzowanego do korzystania z interfejs Graph API firmy Microsoft i zakresu
DeviceManagementManagedDevices.Read.All
uprawnień.Poświadczenia dzierżawy obsługują funkcje administracyjne.
Kod jest podobny do wyświetlonych przykładów.
Uwierzytelnianie Tożsamość Microsoft Entra w języku C#
W tym przykładzie pokazano, jak pobrać listę urządzeń skojarzonych z kontem Intune przy użyciu języka C#.
Uwaga
Azure AD interfejs Graph API jest w fazie przejścia na emeryturę. Aby uzyskać więcej informacji, zobacz Aktualizowanie aplikacji w celu używania biblioteki Microsoft Authentication Library (MSAL) i microsoft interfejs Graph API.
Uruchom program Visual Studio, a następnie utwórz nowy projekt aplikacji konsolowej Visual C# (.NET Framework).
Wprowadź nazwę projektu i podaj inne szczegóły zgodnie z potrzebami.
Użyj Eksplorator rozwiązań, aby dodać pakiet NuGet msal firmy Microsoft do projektu:
- Kliknij prawym przyciskiem myszy Eksplorator rozwiązań.
- Wybierz pozycję Zarządzaj pakietami NuGet...>Przeglądaj.
- Wybierz,
Microsoft.Identity.Client
a następnie wybierz pozycję Zainstaluj.
Dodaj następujące instrukcje na początku Program.cs:
using Microsoft.Identity.Client; using System.Net.Http;
Dodaj metodę, aby utworzyć nagłówek autoryzacji:
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();
Pamiętaj, aby zmienić wartość , aby była zgodna z
application_ID
wartością przyznaną co najmniej zakres uprawnieńDeviceManagementManagedDevices.Read.All
, zgodnie z wcześniejszym opisem.Dodaj metodę pobierania listy urządzeń:
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"); }
Zaktualizuj pozycję Main , aby wywołać element GetMyManagedDevices:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
Skompiluj i uruchom program.
Po pierwszym uruchomieniu programu powinny zostać wyświetlone dwa monity. Pierwszy żąda poświadczeń, a drugi udziela uprawnień do managedDevices
żądania.
Aby uzyskać więcej informacji, oto ukończony program:
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");
}
}
}
Uwierzytelnianie Tożsamość Microsoft Entra przy użyciu programu Microsoft Graph PowerShell
Skrypty programu PowerShell mogą używać modułu Programu PowerShell programu Microsoft Graph do uwierzytelniania. Aby dowiedzieć się więcej, zobacz Microsoft Graph PowerShell i Intune przykłady programu PowerShell.
Obsługa wielu dzierżaw i partnerów
Jeśli Twoja organizacja obsługuje organizacje z własnymi dzierżawami Microsoft Entra, możesz zezwolić klientom na korzystanie z aplikacji z odpowiednimi dzierżawami.
W tym celu:
Sprawdź, czy konto klienta istnieje w dzierżawie Microsoft Entra docelowej.
Sprawdź, czy konto dzierżawy umożliwia użytkownikom rejestrowanie aplikacji (zobacz Ustawienia użytkownika).
Ustanawianie relacji między każdą dzierżawą.
Aby to zrobić, wykonaj jedną z następujących czynności:
a. Użyj Centrum partnerskiego firmy Microsoft , aby zdefiniować relację z klientem i jego adresem e-mail.
b. Zaproś użytkownika, aby został gościem twojej dzierżawy.
Aby zaprosić użytkownika do roli gościa dzierżawy:
Wybierz pozycję Dodaj użytkownika-gościa z panelu Szybkie zadania .
Wprowadź adres e-mail klienta i (opcjonalnie) dodaj spersonalizowaną wiadomość dla zaproszenia.
Wybierz pozycję Zaproś.
Spowoduje to wysłanie zaproszenia do użytkownika.
Aby zaakceptować zaproszenie, użytkownik musi wybrać link Wprowadzenie .
Po ustanowieniu relacji (lub zaakceptowaniu zaproszenia) dodaj konto użytkownika do roli Katalog.
Pamiętaj, aby w razie potrzeby dodać użytkownika do innych ról. Aby na przykład umożliwić użytkownikowi zarządzanie ustawieniami Intune, musi on być co najmniej administratorem usługi Intune.
Też:
Służy https://admin.microsoft.com do przypisywania licencji Intune do konta użytkownika.
Zaktualizuj kod aplikacji, aby uwierzytelnić się w domenie dzierżawy Microsoft Entra klienta, a nie w twojej własnej.
Załóżmy na przykład, że domeną dzierżawy jest
contosopartner.onmicrosoft.com
domena dzierżawy, a domeną dzierżawy klienta jestnorthwind.onmicrosoft.com
, aby zaktualizować kod w celu uwierzytelnienia w dzierżawie klienta.Aby to zrobić w aplikacji języka C# na podstawie wcześniejszego przykładu, należy zmienić wartość zmiennej
authority
:string authority = "https://login.microsoftonline.com/common/";
do
string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";