Microsoft Graph'ta Intune API'lerine erişmek için Microsoft Entra ID kullanma

Microsoft Graph API artık belirli API'ler ve izin rolleriyle Microsoft Intune desteklemektedir. Microsoft Graph API kimlik doğrulaması ve erişim denetimi için Microsoft Entra ID kullanır.
Microsoft Graph'ta Intune API'lerine erişim şunları gerektirir:

  • Uygulama kimliği:

    • Microsoft Entra ID ve Microsoft Graph API'lerini çağırma izni.
    • Belirli uygulama görevleriyle ilgili izin kapsamları.
  • Kullanıcı kimlik bilgileri:

    • Uygulamayla ilişkili Microsoft Entra kiracısına erişim izni.
    • Uygulama izin kapsamlarını desteklemek için gereken rol izinleri.
  • Son kullanıcı, Azure kiracısı için uygulama görevlerini gerçekleştirmek üzere uygulamaya izin verir.

Bu makale:

  • Microsoft Graph API ve ilgili izin rollerine erişimi olan bir uygulamayı kaydetmeyi gösterir.

  • Intune API izin rollerini açıklar.

  • C# ve PowerShell için Intune API kimlik doğrulama örnekleri sağlar.

  • Birden çok kiracıyı desteklemeyi açıklar.

Daha fazla bilgi için şu makalelere bakın:

Microsoft Graph API kullanmak için uygulamaları kaydetme

Microsoft Graph API kullanmak üzere bir uygulamayı kaydetmek için:

  1. Yönetim kimlik bilgilerini kullanarak Microsoft Intune yönetim merkezinde oturum açın.

    Uygun şekilde şunları kullanabilirsiniz:

    • Kiracı yönetici hesabı.
    • Kullanıcılar uygulamaları kaydedebilir ayarının etkinleştirildiği bir kiracı kullanıcı hesabı.
  2. Tüm hizmetler>M365 Microsoft Entra ID>Microsoft Entra ID>Uygulama kayıtları'ı seçin.

    Uygulama kayıtları menü komutu
  3. Yeni bir uygulama oluşturmak için Yeni kayıt'ı seçin veya mevcut bir uygulamayı seçin. (Mevcut bir uygulamayı seçerseniz sonraki adımı atlayın.)

  4. Uygulama kaydetme bölmesinde aşağıdakileri belirtin:

  5. Uygulama bölmesinden:

    1. Uygulama (istemci) Kimliği değerini not edin.

    2. API izinleri'ne tıklayın.

  6. API izinleri bölmesinde İzin ekle>Microsoft API'leri>Microsoft Graph'ı seçin. Ardından, uygulamanızın gerektirdiği izin türünü seçin.

    İlgili adların soluna bir onay işareti koyarak uygulamanız için gereken rolleri seçin. Belirli Intune izin kapsamları hakkında bilgi edinmek için bkz. Intune izin kapsamları. Diğer Graph API izin kapsamları hakkında bilgi edinmek için bkz. Microsoft Graph izin başvurusu.

    En iyi sonuçları elde etmek için uygulamanızı uygulamak için gereken en az rolü seçin.

Veri ambarı ve raporlama izinleri

Microsoft Entra yönetim merkezi aracılığıyla bir uygulama eklediğinizde, uygulamanızın gereksinimlerine göre Intune API izinlerini seçebilirsiniz.

İş ortağı çözümü API'leri

Microsoft Entra yönetim merkezi aracılığıyla uygulama eklerken aşağıdaki Intune API izinleri kullanılabilir:

  • get_device_compliance - Bu API izni, Microsoft Intune cihaz durumu ve uyumluluk bilgilerini almak için kullanılır. Bu API izni Ağ Access Control iş ortakları tarafından kullanılır. Daha fazla bilgi için bkz. Intune ile ağ Access Control tümleştirmesi.
  • manage_partner_compliance_policy - Bu API izni, Microsoft Intune ile iş ortağı uyumluluk ilkelerini yönetmek için kullanılır. Bu API izni, uygulamanın iş ortağı uyumluluk ilkelerini ve Microsoft Entra grup atamasını oturum açmış bir kullanıcı olmadan Microsoft Intune göndermesine olanak tanır. Cihaz uyumluluk iş ortakları tarafından kullanılır. Daha fazla bilgi için bkz . Üçüncü taraf cihaz uyumluluk iş ortakları.
  • pfx_cert_provider - Bu API izni, belirli bir kullanıcının PfX sertifikalarını Intune'a göndermek için kullanılır. Intune, sertifikayı kullanıcı tarafından kaydedilen tüm cihazlara teslim eder. Daha fazla bilgi için bkz. PFX Import PowerShell.
  • scep_challenge_provider - Bu API izni, sertifika isteği doğrulaması için Intune'a SCEP sınamaları göndermek için kullanılır. Sertifika Yetkilisi iş ortakları tarafından kullanılır. Daha fazla bilgi için bkz. İş Ortağı Sertifika Yetkilisi.
  • update_device_attributes - Bu API izni, cihaz uyumluluğu ve mobil tehdit savunma iş ortaklarından Intune'a cihaz bilgileri göndermek için kullanılır. Daha fazla bilgi için bkz. Intune ve Üçüncü taraf cihaz uyumluluk iş ortaklarıile Mobile Threat Defense tümleştirmesi.
  • update_device_health - Bu API izni, mobil tehdit savunma iş ortaklarından Intune'a cihaz durumu ve tehdit durumu bilgileri göndermek için kullanılır. Daha fazla bilgi için bkz. Intune ile Mobile Threat Defense tümleştirmesi.

Bu API izinlerini kullanarak Intune ile tümleştirmeyle ilgilenen bir iş ortağıysanız, bilgi için Microsoft Intelligent Security Association] ekibine başvurun.

İşiniz bittiğinde, değişikliklerinizi kaydetmek için İzin ekle'yi seçin.

Bu noktada şunları da yapabilir:

  • Tüm kiracı hesaplarına kimlik bilgileri sağlamadan uygulamayı kullanma izni vermeyi seçin.

    Bunu yapmak için izinler verebilir ve onay istemini kabul edebilirsiniz.

    Uygulamayı ilk kez çalıştırdığınızda, uygulamaya seçili rolleri gerçekleştirme izni vermeniz istenir.

  • Uygulamayı kiracınızın dışındaki kullanıcıların kullanımına açın. (Bu genellikle yalnızca birden çok kiracıyı/kuruluşu destekleyen iş ortakları için gereklidir.)

    Bunu yapmak için:

    1. Uygulama bölmesinden Bildirim'i seçin.

      Bildirimi düzenle dikey penceresi
    2. Ayarın availableToOtherTenants değerini olarak truedeğiştirin.

    3. Değişikliklerinizi kaydedin.

Uygulama listeleme

Graph API kullanırken uygulama listeleme isteğinde bulunurken büyük miktarda veri alırsanız 503 Hizmet Kullanılamıyor hatasıyla karşılaşabilirsiniz. 20 veya daha az öğe gibi daha küçük bir sayfa boyutuyla yeniden denemenizi öneririz.

Intune izin kapsamları

Microsoft Entra ID ve Microsoft Graph, şirket kaynaklarına erişimi denetlemek için izin kapsamlarını kullanır.

İzin kapsamları ( OAuth kapsamları olarak da adlandırılır) belirli Intune varlıklarına ve özelliklerine erişimi denetler. Bu bölümde, Intune API özelliklerinin izin kapsamları özetlenmiştir.

Daha fazla bilgi edinmek için:

Microsoft Graph'a izin verdiğinizde, Intune özelliklerine erişimi denetlemek için aşağıdaki kapsamları belirtebilirsiniz: Aşağıdaki tabloda Intune API'sinin izin kapsamları özetlenmiştir. İlk sütun, Microsoft Intune yönetim merkezinde görüntülenen özelliğin adını gösterir ve ikinci sütun izin kapsamı adını sağlar.

Erişimi Etkinleştir ayarı Kapsam adı
Microsoft Intune cihazlarda kullanıcıyı etkileyen uzak eylemler gerçekleştirme DeviceManagementManagedDevices.PrivilegedOperations.All
Microsoft Intune cihazları okuma ve yazma DeviceManagementManagedDevices.ReadWrite.All
Microsoft Intune cihazları okuma DeviceManagementManagedDevices.Read.All
RBAC ayarlarını okuma ve yazma Microsoft Intune DeviceManagementRBAC.ReadWrite.All
RBAC ayarlarını Microsoft Intune okuma DeviceManagementRBAC.Read.All
Microsoft Intune uygulamalarını okuma ve yazma DeviceManagementApps.ReadWrite.All
uygulamaları Microsoft Intune okuma DeviceManagementApps.Read.All
Cihaz Yapılandırması ve İlkeleri Microsoft Intune okuma ve yazma DeviceManagementConfiguration.ReadWrite.All
Okuma Microsoft Intune Cihaz Yapılandırması ve İlkeleri DeviceManagementConfiguration.Read.All
Microsoft Intune yapılandırması okuma ve yazma DeviceManagementServiceConfig.ReadWrite.All
Okuma Microsoft Intune yapılandırması DeviceManagementServiceConfig.Read.All

Tablo, ayarları Microsoft Intune yönetim merkezinde göründükleri şekilde listeler. Aşağıdaki bölümlerde kapsamlar alfabetik sırada açıklanmaktadır.

Şu anda tüm Intune izin kapsamları yönetici erişimi gerektirir. Bu, Intune API kaynaklarına erişen uygulamaları veya betikleri çalıştırırken ilgili kimlik bilgilerine ihtiyacınız olduğu anlamına gelir.

DeviceManagementApps.Read.All

  • Erişimi Etkinleştir ayarı: Uygulamaları okuma Microsoft Intune

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimine izin verir:

    • İstemci Uygulamaları
    • Mobil Uygulama Kategorileri
    • Uygulama Koruma İlkeleri
    • Uygulama Yapılandırmaları

DeviceManagementApps.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Uygulamaları okuma ve yazma Microsoft Intune

  • DeviceManagementApps.Read.All ile aynı işlemlere izin verir

  • Ayrıca aşağıdaki varlıklarda yapılan değişikliklere de izin verir:

    • İstemci Uygulamaları
    • Mobil Uygulama Kategorileri
    • Uygulama Koruma İlkeleri
    • Uygulama Yapılandırmaları

DeviceManagementConfiguration.Read.All

  • Erişimi Etkinleştir ayarı: Microsoft Intune cihaz yapılandırmasını ve ilkelerini okuma

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimine izin verir:

    • Cihaz Yapılandırması
    • Cihaz Uyumluluk İlkesi
    • Bildirim İletileri

DeviceManagementConfiguration.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Cihaz yapılandırması ve ilkeleri Microsoft Intune okuma ve yazma

  • DeviceManagementConfiguration.Read.All ile aynı işlemlere izin verir

  • Uygulamalar ayrıca aşağıdaki varlıkları oluşturabilir, atayabilir, silebilir ve değiştirebilir:

    • Cihaz Yapılandırması
    • Cihaz Uyumluluk İlkesi
    • Bildirim İletileri

DeviceManagementManagedDevices.PrivilegedOperations.All

  • Erişimi Etkinleştir ayarı: Microsoft Intune cihazlarda kullanıcıyı etkileyen uzak eylemler gerçekleştirme

  • Yönetilen cihazda aşağıdaki uzak eylemlere izin verir:

    • Devre Dışı Bırakma
    • Silme
    • Geçiş Kodunu Sıfırlama/Kurtarma
    • Uzaktan Kilitleme
    • Kayıp Modunu Etkinleştirme/Devre Dışı Bırakma
    • Bilgisayarı temizle
    • Yeni -den başlatma
    • Paylaşılan Cihazdan Kullanıcı Silme

DeviceManagementManagedDevices.Read.All

  • Erişimi Etkinleştir ayarı: Microsoft Intune cihazları okuma

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimine izin verir:

    • Yönetilen Cihaz
    • Cihaz Kategorisi
    • Algılanan Uygulama
    • Uzak eylemler
    • Kötü amaçlı yazılım bilgileri

DeviceManagementManagedDevices.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Microsoft Intune cihazları okuma ve yazma

  • DeviceManagementManagedDevices.Read.All ile aynı işlemlere izin verir

  • Uygulamalar ayrıca aşağıdaki varlıkları oluşturabilir, silebilir ve değiştirebilir:

    • Yönetilen Cihaz
    • Cihaz Kategorisi
  • Aşağıdaki uzak eylemlere de izin verilir:

    • Cihazları bulma
    • Etkinleştirme Kilidini Devre Dışı Bırak
    • Uzaktan yardım isteme

DeviceManagementRBAC.Read.All

  • Erişimi Etkinleştir ayarı: Okuma Microsoft Intune RBAC ayarları

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimine izin verir:

    • Rol Atamaları
    • Rol Tanımları
    • Kaynak İşlemleri

DeviceManagementRBAC.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Okuma ve yazma Microsoft Intune RBAC ayarları

  • DeviceManagementRBAC.Read.All ile aynı işlemlere izin verir

  • Uygulamalar ayrıca aşağıdaki varlıkları oluşturabilir, atayabilir, silebilir ve değiştirebilir:

    • Rol Atamaları
    • Rol Tanımları

DeviceManagementServiceConfig.Read.All

  • Erişimi Etkinleştir ayarı: Okuma Microsoft Intune yapılandırması

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimine izin verir:

    • Cihaz Kaydı
    • Apple Anında İletme Bildirimi Sertifikası
    • Apple Cihaz Kayıt Programı
    • Apple Volume Purchase Program
    • Exchange Bağlayıcısı
    • Hüküm ve Koşullar
    • Bulut PKI
    • Marka
    • Mobil Tehdit Savunması

DeviceManagementServiceConfig.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Okuma ve yazma Microsoft Intune yapılandırması

  • DeviceManagementServiceConfig.Read.All_ ile aynı işlemlere izin verir

  • Uygulamalar aşağıdaki Intune özelliklerini de yapılandırabilir:

    • Cihaz Kaydı
    • Apple Anında İletme Bildirimi Sertifikası
    • Apple Cihaz Kayıt Programı
    • Apple Volume Purchase Program
    • Exchange Bağlayıcısı
    • Hüküm ve Koşullar
    • Bulut PKI
    • Marka
    • Mobil Tehdit Savunması

Microsoft Entra kimlik doğrulaması örnekleri

Bu bölümde, C# ve PowerShell projelerinize Microsoft Entra ID nasıl dahil etmek gösterilmektedir.

Her örnekte, en az DeviceManagementManagedDevices.Read.All izin kapsamına sahip bir uygulama kimliği belirtmeniz gerekir (daha önce ele alınmıştır).

Her iki örneği de test ederken aşağıdakine benzer HTTP durumu 403 (Yasak) hataları alabilirsiniz:

{
  "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"
    }
  }
}

Böyle bir durumda şunları doğrulayın:

  • Uygulama kimliğini Microsoft Graph API ve izin kapsamını kullanmak için yetkili bir kimlikle DeviceManagementManagedDevices.Read.All güncelleştirdiniz.

  • Kiracı kimlik bilgileriniz yönetim işlevlerini destekler.

  • Kodunuz görüntülenen örneklere benzer.

C'de Microsoft Entra ID kimliğini doğrulama#

Bu örnekte, Intune hesabınızla ilişkili cihazların listesini almak için C# özelliğinin nasıl kullanılacağı gösterilmektedir.

  1. Visual Studio'yu başlatın ve ardından yeni bir Visual C# Konsol uygulaması (.NET Framework) projesi oluşturun.

  2. Projeniz için bir ad girin ve istediğiniz diğer ayrıntıları sağlayın.

    Visual Studio'da C# konsol uygulaması projesi oluşturma
  3. Microsoft MSAL NuGet paketini projeye eklemek için Çözüm Gezgini kullanın:

    1. Çözüm Gezgini sağ tıklayın.
    2. NuGet Paketlerini Yönet... öğesini seçin.>Gözat'ı seçin.
    3. Öğesini ve Microsoft.Identity.Client ardından Yükle'yi seçin.
  4. Aşağıdaki deyimleri Program.cs en üstüne ekleyin:

    using Microsoft.Identity.Client;
    using System.Net.Http;
    
  5. Yetkilendirme üst bilgisini oluşturmak için bir yöntem ekleyin:

    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();
    

    değerini application_ID , daha önce açıklandığı gibi en azından DeviceManagementManagedDevices.Read.All izin kapsamı verilen değerle eşleşecek şekilde değiştirmeyi unutmayın.

  6. Cihaz listesini almak için bir yöntem ekleyin:

    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. GetMyManagedDevices'i çağırmak için Main'ı güncelleştirin:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. Programınızı derleyin ve çalıştırın.

Programınızı ilk çalıştırdığınızda iki istem almalısınız. İlki kimlik bilgilerinizi, ikincisi ise istek için managedDevices izin verir.

Başvuru için tamamlanmış program şu şekildedir:

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");
        }
    }
}

Microsoft Graph PowerShell kullanarak Microsoft Entra ID kimlik doğrulaması

PowerShell betikleri kimlik doğrulaması için Microsoft Graph PowerShell modülünü kullanabilir. Daha fazla bilgi için bkz. Microsoft Graph PowerShell ve Intune PowerShell örnekleri.

Birden çok kiracıyı ve iş ortağını destekleme

Kuruluşunuz kendi Microsoft Entra kiracıları olan kuruluşları destekliyorsa, istemcilerinizin uygulamanızı ilgili kiracılarıyla kullanmasına izin vermek isteyebilirsiniz.

Bunu yapmak için:

  1. İstemci hesabının hedef Microsoft Entra kiracısında mevcut olduğunu doğrulayın.

  2. Kiracı hesabınızın kullanıcıların uygulamaları kaydetmesine izin verdiğinden emin olun (bkz . Kullanıcı ayarları).

  3. Her kiracı arasında bir ilişki oluşturun.

    Bunu yapmak için:

    a. İstemcinizle ve onların e-posta adresiyle bir ilişki tanımlamak için Microsoft İş Ortağı Merkezi'ni kullanın.

    b. Kullanıcıyı kiracınızın konuğu olmaya davet edin.

Kullanıcıyı kiracınızın konuğu olmaya davet etmek için:

  1. Hızlı görevler panelinde Konuk kullanıcı ekle'yi seçin.

    Konuk kullanıcı eklemek için Hızlı Görevler'i kullanma
  2. İstemcinin e-posta adresini girin ve (isteğe bağlı olarak) davet için kişiselleştirilmiş bir ileti ekleyin.

    Dış kullanıcıyı konuk olarak davet etme
  3. Davet Et'i seçin.

Bu, kullanıcıya bir davet gönderir.

Örnek konuk daveti

Kullanıcının davetinizi kabul etmek için Başlarken bağlantısını seçmesi gerekir.

İlişki kurulduğunda (veya davetiniz kabul edildiğinde), kullanıcı hesabını Dizin rolüne ekleyin.

Gerektiğinde kullanıcıyı diğer rollere eklemeyi unutmayın. Örneğin, kullanıcının Intune ayarlarını yönetmesine izin vermek için Genel Yönetici veya Intune Hizmeti yöneticisi olması gerekir.

Tesis:

  • Kullanıcı hesabınıza bir Intune lisansı atamak için kullanın https://admin.microsoft.com .

  • Uygulama kodunu, kendi kiracı etki alanınız yerine istemcinin Microsoft Entra kiracı etki alanında kimlik doğrulaması yapmak için güncelleştirin.

    Örneğin, kiracı etki alanınızın ve istemcinizin kiracı etki contosopartner.onmicrosoft.com alanının olduğunu northwind.onmicrosoft.comvarsayalım. İstemcinizin kiracısına kimlik doğrulaması yapmak için kodunuzu güncelleştirebilirsiniz.

    Önceki örneği temel alan bir C# uygulamasında bunu yapmak için değişkeninin authority değerini değiştirmeniz gerekir:

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

    Hedef

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