Aracılığıyla paylaş


Microsoft Graph'ta Intune API'lerine erişmek için Microsoft Entra Kimliğini kullanma

Microsoft Graph API'si artık belirli API'ler ve izin rolleriyle Microsoft Intune'u destekliyor. Microsoft Graph API'si, 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'sine ve ilgili izin rollerine erişimi olan bir uygulamanın nasıl kaydedileceklerini 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'sini kullanmak için uygulamaları kaydetme

Bir uygulamayı Microsoft Graph API'sini kullanacak şekilde kaydetmek için:

  1. Yönetici 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 izinleri 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'dan cihaz durumu ve uyumluluk bilgilerini almak için kullanılır. Bu API izni, Ağ Erişim Denetimi iş ortakları tarafından kullanılır. Daha fazla bilgi için bkz. Intune ile Ağ Erişim Denetimi 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 oturum açmış bir kullanıcı olmadan iş ortağı uyumluluk ilkelerini ve Microsoft Entra grup atamasını Microsoft Intune'a göndermesini sağlar. 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'sini 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 cihazlarında kullanıcıyı etkileyen uzak eylemler gerçekleştirme DeviceManagementManagedDevices.PrivilegedOperations.All
Microsoft Intune cihazlarını okuma ve yazma DeviceManagementManagedDevices.ReadWrite.All
Microsoft Intune cihazlarını okuma DeviceManagementManagedDevices.Read.All
Microsoft Intune RBAC ayarlarını okuma ve yazma DeviceManagementRBAC.ReadWrite.All
Microsoft Intune RBAC ayarlarını okuyun DeviceManagementRBAC.Read.All
Microsoft Intune uygulamalarını okuma ve yazma DeviceManagementApps.ReadWrite.All
Microsoft Intune uygulamalarını okuma DeviceManagementApps.Read.All
Microsoft Intune Cihaz Yapılandırması ve İlkelerini okuma ve yazma DeviceManagementConfiguration.ReadWrite.All
Microsoft Intune Cihaz Yapılandırması ve İlkeleri'ni okuyun DeviceManagementConfiguration.Read.All
Microsoft Intune yapılandırmasını okuma ve yazma DeviceManagementServiceConfig.ReadWrite.All
Microsoft Intune yapılandırmasını okuyun DeviceManagementServiceConfig.Read.All

Tabloda, Microsoft Intune yönetim merkezinde görünen ayarlar listelenir. 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ı: Microsoft Intune uygulamalarını okuma

  • 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ı: Microsoft Intune uygulamalarını okuma ve yazma

  • 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ı: Microsoft Intune cihaz yapılandırmasını ve ilkelerini 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 cihazlarında 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ını 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ını 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ı: Microsoft Intune RBAC ayarlarını okuma

  • 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ı: Microsoft Intune RBAC ayarlarını okuma ve yazma

  • 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ı: Microsoft Intune yapılandırmasını okuma

  • 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'sı
    • Marka
    • Mobil Tehdit Savunması

DeviceManagementServiceConfig.ReadWrite.All

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

  • 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'sı
    • Marka
    • Mobil Tehdit Savunması

Microsoft Entra kimlik doğrulaması örnekleri

Bu bölümde, C# ve PowerShell projelerinize Microsoft Entra Id'nin nasıl dahil olduğu 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'sini ve izin kapsamını kullanma yetkisi olan 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 Kimliğinin 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.

Not

Azure AD Graph API'sini kullanımdan kaldırma aşamasındadır. Daha fazla bilgi için bkz. Uygulamalarınızı Microsoft Kimlik Doğrulama Kitaplığı (MSAL) ve Microsoft Graph API'sini kullanacak şekilde güncelleştirme.

  1. Visual Studio'yu başlatın ve 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'ni kullanın:

    1. Çözüm Gezgini'ne 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 Kimliğinin kimliğini doğrulama

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ına sahip 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.

De:

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

  • Uygulama kodunu, kendi kiracı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/";