Jak używać Tożsamość Microsoft Entra do uzyskiwania dostępu do interfejsów API usługi 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 usługi 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 usługi Intune.

  • Zawiera przykłady uwierzytelniania interfejsu API usługi 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:

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:

  1. 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 .
  2. Wybierz pozycję Wszystkie usługi>M365 Tożsamość Microsoft Entra>Tożsamość Microsoft Entra>Rejestracje aplikacji.

    Polecenie menu Rejestracje aplikacji
  3. Wybierz pozycję Nowa rejestracja , aby utworzyć nową aplikację, lub wybierz istniejącą aplikację. (Jeśli wybierzesz istniejącą aplikację, pomiń następny krok).

  4. W okienku Rejestrowanie aplikacji określ następujące elementy:

  5. W okienku aplikacji:

    1. Zanotuj wartość identyfikatora aplikacji (klienta ).

    2. Wybierz pozycję Uprawnienia interfejsu API.

  6. 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ń usługi Intune, zobacz Zakresy uprawnień usługi Intune. 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 usługi Intune na podstawie wymagań aplikacji.

  • get_data_warehouse — użyj tego uprawnienia interfejsu API, aby udzielić dostępu do interfejsu API magazynu danych usługi 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 usługi 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 usługą 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 usługi Intune dla określonego użytkownika. Usługa 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 usługi 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 usługi Intune od partnerów ds. zgodności urządzeń i ochrony przed zagrożeniami mobilnymi. Aby uzyskać więcej informacji, zobacz Integracja usługi Mobile Threat Defense z usługą 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 usługi Intune od partnerów ochrony przed zagrożeniami mobilnymi. Aby uzyskać więcej informacji, zobacz Integracja usługi Mobile Threat Defense z usługą Intune.

Jeśli jesteś partnerem zainteresowanym integracją z usługą Intune przy użyciu tych uprawnień interfejsu API, skontaktuj się z zespołem Microsoft Intelligent Security Association] w celu uzyskania informacji.

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:

    1. Wybierz pozycję Manifest w okienku aplikacji.

      Blok Edytowanie manifestu
    2. Zmień wartość ustawienia na availableToOtherTenantstrue.

    3. 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.

Zakresy uprawnień usługi Intune

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 usługi Intune i ich właściwości. W tej sekcji podsumowano zakresy uprawnień dla funkcji interfejsu API usługi 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 usługi Intune: Poniższa tabela zawiera podsumowanie zakresów uprawnień interfejsu API usługi 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ń usługi Intune wymagają dostępu administratora. Oznacza to, że podczas uruchamiania aplikacji lub skryptów uzyskujących dostęp do zasobów interfejsu API usługi Intune 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
    • Ponownie obuwać
    • 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 usługi 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 usługi 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.

  1. Uruchom program Visual Studio, a następnie utwórz nowy projekt aplikacji konsolowej Visual C# (.NET Framework).

  2. Wprowadź nazwę projektu i podaj inne szczegóły zgodnie z potrzebami.

    Tworzenie projektu aplikacji konsolowej w języku C# w programie Visual Studio
  3. Użyj Eksplorator rozwiązań, aby dodać pakiet NuGet msal firmy Microsoft do projektu:

    1. Kliknij prawym przyciskiem myszy Eksplorator rozwiązań.
    2. Wybierz pozycję Zarządzaj pakietami NuGet...>Przeglądaj.
    3. Wybierz, Microsoft.Identity.Client a następnie wybierz pozycję Zainstaluj.
  4. Dodaj następujące instrukcje na początku Program.cs:

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. 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.

  6. 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");
    }
    
  7. Zaktualizuj pozycję Main , aby wywołać element GetMyManagedDevices:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. 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 przykłady programu PowerShell usługi Intune.

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:

  1. Sprawdź, czy konto klienta istnieje w dzierżawie Microsoft Entra docelowej.

  2. Sprawdź, czy konto dzierżawy umożliwia użytkownikom rejestrowanie aplikacji (zobacz Ustawienia użytkownika).

  3. 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:

  1. Wybierz pozycję Dodaj użytkownika-gościa z panelu Szybkie zadania .

    Dodawanie użytkownika-gościa przy użyciu szybkich zadań
  2. Wprowadź adres e-mail klienta i (opcjonalnie) dodaj spersonalizowaną wiadomość dla zaproszenia.

    Zapraszanie użytkownika zewnętrznego jako gościa
  3. Wybierz pozycję Zaproś.

Spowoduje to wysłanie zaproszenia do użytkownika.

Przykładowe zaproszenie gościa

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 zezwolić użytkownikowi na zarządzanie ustawieniami usługi Intune, musi być administratorem globalnym lub administratorem usługi Intune.

Również:

  • Użyj polecenia https://admin.microsoft.com , aby przypisać licencję usługi 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 jest northwind.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/";