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:
- OAuth 2.0 ve Microsoft Entra Id kullanarak web uygulamalarına erişimi yetkilendirme
- Microsoft Entra kimlik doğrulamayı kullanmaya başlama
- Uygulamaları Microsoft Entra Id ile tümleştirme
- OAuth 2.0'i anlama
Microsoft Graph API'sini kullanmak için uygulamaları kaydetme
Bir uygulamayı Microsoft Graph API'sini kullanacak şekilde kaydetmek için:
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ı.
Tüm hizmetler>M365 Microsoft Entra ID>Microsoft Entra ID>Uygulama kayıtları'ı seçin.
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.)
Uygulama kaydetme bölmesinde aşağıdakileri belirtin:
Uygulama için bir Ad (kullanıcılar oturum açarken görüntülenir).
Desteklenen hesap türü.
Yeniden Yönlendirme URI değeri. Bu değer seçenektir.
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.
Daha fazla bilgi edinmek için bkz. Microsoft Entra Id için Kimlik Doğrulama Senaryoları.
Uygulama bölmesinden:
Uygulama (istemci) Kimliği değerini not edin.
API izinleri'ne tıklayın.
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.
- get_data_warehouse - Microsoft Intune'dan Intune veri ambarı API'sine erişim vermek için bu API iznini kullanın. Daha fazla bilgi için bkz. Microsoft Intune Veri Ambarı'nı kullanma.
İş 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:
Uygulama bölmesinden Bildirim'i seçin.
Ayarın
availableToOtherTenants
değerini olaraktrue
değiştirin.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.
Visual Studio'yu başlatın ve yeni bir Visual C# Konsol uygulaması (.NET Framework) projesi oluşturun.
Projeniz için bir ad girin ve istediğiniz diğer ayrıntıları sağlayın.
Microsoft MSAL NuGet paketini projeye eklemek için Çözüm Gezgini'ni kullanın:
- Çözüm Gezgini'ne sağ tıklayın.
- NuGet Paketlerini Yönet... öğesini seçin.>Gözat'ı seçin.
- Öğesini ve
Microsoft.Identity.Client
ardından Yükle'yi seçin.
Aşağıdaki deyimleri Program.cs en üstüne ekleyin:
using Microsoft.Identity.Client; using System.Net.Http;
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ındanDeviceManagementManagedDevices.Read.All
izin kapsamı verilen değerle eşleşecek şekilde değiştirmeyi unutmayın.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"); }
GetMyManagedDevices'i çağırmak için Main'ı güncelleştirin:
string devices = GetMyManagedDevices().GetAwaiter().GetResult(); Console.WriteLine(devices);
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:
İstemci hesabının hedef Microsoft Entra kiracısında mevcut olduğunu doğrulayın.
Kiracı hesabınızın kullanıcıların uygulamaları kaydetmesine izin verdiğinden emin olun (bkz . Kullanıcı ayarları).
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:
Hızlı görevler panelinde Konuk kullanıcı ekle'yi seçin.
İstemcinin e-posta adresini girin ve (isteğe bağlı olarak) davet için kişiselleştirilmiş bir ileti ekleyin.
Davet Et'i seçin.
Bu, kullanıcıya bir davet gönderir.
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ğununorthwind.onmicrosoft.com
varsayalı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/";