Microsoft Graph’ta Intune API’lerine erişmek için Azure AD kullanma

Microsoft Graph API’si artık belirli API’ler ve izin rolleriyle Microsoft Intune’u destekliyor. Microsoft Graph API’si, kimlik doğrulama ve erişim denetimi için Azure Active Directory (Azure AD) kullanır.
Microsoft Graph’ta Intune API’lerine erişmek için Azure AD kullanma gereksinimleri şu şekildedir:

  • Aşağıdakileri içeren bir uygulama kimliği:

    • Azure AD ve Microsoft Graph API’lerini çağırma izni.
    • Belirli uygulama görevleri ile ilgili izin kapsamları.
  • Aşağıdaki özelliklere sahip kimlik bilgilerini kullanın:

    • Uygulama ile ilişkili Azure AD kiracısına erişim izni.
    • Rol izinleri, uygulama izin kapsamlarını desteklemek için gereklidir.
  • Son kullanıcı Azure kiracısı için uygulama görevleri gerçekleştirmesi üzere uygulamaya izin verir.

Bu makalede:

  • Microsoft Graph API’si ve ilgili izin rollerine erişimi olan bir uygulamanın nasıl kaydedileceği gösterilir.

  • Intune API’si izin rolleri açıklanır.

  • C# ve PowerShell için Intune API’si kimlik doğrulama örnekleri verilir.

  • Birden çok kiracının nasıl destekleneceği açıklanır.

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

Uygulamaları Microsoft Graph API kullanmak üzere kaydetme

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

  1. yönetici kimlik bilgilerini kullanarak Microsoft Endpoint Manager yönetim merkezinde oturum açın.

    Uygun olacak şekilde şunları kullanabilirsiniz:

    • Kiracı yönetici hesabı.
    • Kullanıcılar uygulamaları kaydedebilir ayarı etkin şekilde bir kiracı kullanıcı hesabı.
  2. tüm hizmetler > M365 Azure Active Directory > Azure Active Directory > Uygulama kayıtları' yı seçin.

    The App registrations menu command
  3. Yeni bir uygulama oluşturmak veya mevcut bir uygulamayı seçmek için Yeni kayıt seçeneğini belirleyin. (Mevcut bir uygulamayı seçerseniz, sonraki adımı atlayın.)

  4. Bir uygulamayı kaydet bölmesinde, aşağıdakileri belirtin:

  5. Uygulama bölmesinden:

    1. Uygulama (istemci) kimliği değerini aklınızda edin.

    2. API izinleri' ni seçin.

  6. apı izinleri bölmesinden, > Microsoft apı 'leri > Microsoft Graph izin ekle ' yi seçin. Ardından, uygulamanız için gereken izin türünü seçin.

    İlgili adların soluna 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'si izin kapsamları hakkında bilgi edinmek için bkz. Microsoft Graph izinleri başvurusu.

    En iyi sonuçlar için, uygulamanızı uygulamak için gereken en düşük rolü seçin.

Veri ambarı ve raporlama izinleri

Azure Active Directory yönetim merkezi aracılığıyla bir uygulama eklediğinizde, uygulamanızın gereksinimlerine bağlı olarak ıntune apı izinlerini seçebilirsiniz.

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

Azure Active Directory yönetim merkezi aracılığıyla bir uygulama eklerken aşağıdaki ıntune apı izinleri mevcuttur:

  • get_device_compliance -bu apı 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ştirme.
  • manage_partner_compliance_policy -bu API izni, Microsoft Intune iş ortağı uyumluluk ilkelerini yönetmek için kullanılır. bu apı izni, uygulamanın, oturum açmış bir kullanıcı olmadan iş ortağı uyumluluk ilkelerini ve Azure AD grup atamasını Microsoft Intune 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ı için ıNTUNE 'a PFX sertifikaları 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 Içeri aktarma PowerShell.
  • scep_challenge_provider -bu API izni, sertifika isteği doğrulaması için ıNTUNE 'a SCEP sorunları göndermek için kullanılır. Sertifika yetkilisi iş ortakları tarafından kullanılır. Daha fazla bilgi için bkz. Iş ortağı sertifika yetkilisi.
  • send_data_usage -bu API izni, Telekom gider yönetimi eşiklerine göre cihazların ilke değişikliklerini tetiklemek için kullanılır. Telekom gider yönetimi iş ortağı tümleştirmeleri için kullanılır. Daha fazla bilgi için bkz. Intune 'Da Telekom gider yönetimi.
  • update_device_attributes -bu API izni cihaz uyumluluk ve mobil tehdit savunma Iş ortaklarından Intune 'a cihaz bilgilerini göndermek için kullanılır. Daha fazla bilgi için bkz. Intune ve üçüncü taraf cihaz uyumluluk ortaklarıyla Mobil tehdit savunması tümleştirmesi .
  • update_device_health -bu API izni, mobil tehdit savunma ortaklarından Intune 'a cihaz sistem durumu ve tehdit durum bilgilerini göndermek için kullanılır. Daha fazla bilgi için bkz. Intune Ile mobil tehdit savunma tümleştirmesi.

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

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

Bu noktada, ayrıca:

  • Uygulamanın kimlik bilgileri sağlamadan kullanılabilmesi için tüm kiracı hesaplarına izin vermeyi seçebilirsiniz.

    Bunu yapmak için izinler verebilir ve onay istemi 'ni kabul edebilirsiniz.

    Uygulamayı ilk kez çalıştırdığınızda, seçili rolleri gerçekleştirmek için uygulama izni vermeniz istenir.

  • Uygulamayı kiracınızın dışındaki kullanıcılar için kullanılabilir hale getirin. (Bu genellikle yalnızca birden çok kiracı/kuruluş destekleyen iş ortakları için gereklidir.)

    Bunun için:

    1. Uygulama bölmesinden bildirim ' ı seçin.

      The Edit manifest blade
    2. availableToOtherTenants ayarının değerini true olarak değiştirin.

    3. Yaptığınız değişiklikleri kaydedin.

Intune izin kapsamları

Azure AD ve Microsoft Graph, kurumsal kaynaklara erişimi denetlemek için izin kapsamlarını kullanır.

İzin kapsamları (OAuth kapsamları olarak da bilinir) belirli Intune varlıkları ve bunların özelliklerine erişimi denetler. Bu bölümde Intune API’si özellikleri için izin kapsamları özetlenir.

Daha fazlasını öğrenin:

Microsoft Graph’a izin verdiğinizde, Intune özelliklerine erişimi denetlemek için aşağıdaki kapsamları belirtebilirsiniz: Intune API’si izin kapsamları aşağıdaki tabloda özetlenmiştir. ilk sütunda, Microsoft Endpoint Manager yönetim merkezinde gösterildiği gibi özelliğin adı gösterilir ve ikinci sütun izin kapsam adını sağlar.

Erişimi Etkinleştir ayarı Kapsam adı
Microsoft Intune cihazlarında kullanıcıları 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ı okuma 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 İlkelerini okuma DeviceManagementConfiguration. Read. All
Microsoft Intune yapılandırmasını okuma ve yazma DeviceManagementServiceConfig.ReadWrite.All
Microsoft Intune yapılandırmasını okuma DeviceManagementServiceConfig.Read.All

tablo, Microsoft Endpoint Manager yönetim merkezindegöründükleri gibi ayarları listeler. Aşağıdaki bölümlerde kapsamlar alfabetik sırayla açıklanır.

Şu anda tüm Intune izin kapsamları yönetici erişimi gerektirir. Başka bir deyişle, Intune API’si kaynaklarına erişen uygulamaları veya betikleri çalıştırırken ilgili kimlik bilgilerine sahip olmanız gerekir.

DeviceManagementApps.Read.All

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

  • Aşağıdaki varlık özelliklerine ve durumuna okuma erişimi 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 değişiklik yapmaya 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ı ve ilkelerini okuma

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

    • Cihaz Yapılandırması
    • Cihaz Uyumluluğu İlkesi
    • Bildirim İletileri

DeviceManagementConfiguration.ReadWrite.All

  • Erişimi Etkinleştir ayarı: Microsoft Intune cihaz yapılandırması 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 Uyumluluğu İlkesi
    • Bildirim İletileri

DeviceManagementManagedDevices.PrivilegedOperations.All

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

  • Aşağıdaki uzak eylemlere yönetilen bir cihazda izin verir:

    • Devre Dışı Bırakma
    • Silme
    • Geçiş Kodu Sıfırlama/Kurtarma
    • Uzaktan Kilitleme
    • Kayıp Modunu Etkinleştirme/Devre Dışı Bırakma
    • Bilgisayarı Temizleme
    • Yeniden 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şimi 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:

    • Cihaz bulma
    • Etkinleştirme Kilidini Devre Dışı Bırakma
    • 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şimi 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şimi verir:

    • Cihaz Kaydetme
    • Apple Anında İletilen Bildirim Servisi Sertifikası
    • Apple Cihaz Kaydı Programı
    • Apple Volume Purchase Program
    • Exchange Connector
    • Hüküm ve Koşullar
    • Telekom Gider Yönetimi
    • Bulut PKI
    • Marka
    • Mobile Threat Defense

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 Kaydetme
    • Apple Anında İletilen Bildirim Servisi Sertifikası
    • Apple Cihaz Kaydı Programı
    • Apple Volume Purchase Program
    • Exchange Connector
    • Hüküm ve Koşullar
    • Telekom Gider Yönetimi
    • Bulut PKI
    • Marka
    • Mobile Threat Defense

Azure AD kimlik doğrulaması örnekleri

Bu bölümde Azure AD’nin C# ve PowerShell projelerinize nasıl dahil edileceği gösterilir.

Her örnekte, en az DeviceManagementManagedDevices.Read.All izni kapsamına (daha önce açıklanmıştır) sahip bir uygulama kimliği belirtmeniz gerekir.

Her iki örnek sınanırken, 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"
    }
  }
}

Bu durumda, aşağıdakileri doğrulayın:

  • Uygulama kimliğini, Microsoft Graph API’si ve DeviceManagementManagedDevices.Read.All izni kapsamını kullanmaya yetkili biri için güncelleştirdiniz.

  • Kiracı kimlik bilgileriniz yönetimsel işlevleri destekliyor.

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

Azure AD kimlik doğrulamasını C# içinde gerçekleştirme

Bu örnek, Intune hesabınızla ilişkili cihazların bir listesini almak için C#’nin nasıl kullanılacağını gösterir.

Not

Azure Active Directory (azure ad) kimlik doğrulama kitaplığı (ADAL) ve Azure ad Graph API kullanım dışı bırakılacak. Daha fazla bilgi için bkz. Microsoft kimlik doğrulama kitaplığı 'nı (msal) ve Microsoft Graph API 'sini kullanacak şekilde uygulamalarınızı güncelleştirme.

  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 diğer ayrıntıları istediğiniz gibi sağlayın.

    Creating a C# console app project in Visual Studio
  3. Microsoft ADAL NuGet paketini projeye eklemek için Çözüm Gezgini kullanın:

    1. Çözüm Gezgini’ne sağ tıklayın.
    2. NuGet Paketlerini Yönet...’i seçin >İnceleyin.
    3. Microsoft.IdentityModel.Clients.ActiveDirectory seçeneğini belirleyin ve Yükle’yi seçin.
    Selecting the Azure AD identity model module
  4. Aşağıdaki deyimleri Program.cs’nin en üst kısmına ekleyin:

    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using System.Net.Http;
    
  5. Yetkilendirme üst bilgisi 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();
    

    Daha önce açıklandığı gibi, en az DeviceManagementManagedDevices.Read.All izin kapsamı iznine sahip olan biriyle eşleştirmek üzere application_ID değerini 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. Ana’yı güncelleştirerek GetMyManagedDevices’ı çağırın:

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

Programınızı ilk kez çalıştırdığınızda, iki istem almanız gerekir. İlk istem kimlik bilgilerinizi ister ve ikincisi managedDevices isteği için izinler verir.

Başvuru için tamamlanmış program şöyledir:

using Microsoft.IdentityModel.Clients.ActiveDirectory;
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");
        }
    }
}

Azure AD Kimlik Doğrulaması (PowerShell)

Aşağıdaki PowerShell betiği, kimlik doğrulaması için AzureAD PowerShell modülü kullanır. Daha fazla bilgi için bkz. Azure Active Directory PowerShell Sürüm 2 ve Intune PowerShell örnekleri.

Bu örnekte, geçerli bir uygulama kimliği eşleştirmek için $clientID değerini güncelleştirin.

function Get-AuthToken {
    [cmdletbinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        $User
    )

    $userUpn = New-Object "System.Net.Mail.MailAddress" -ArgumentList $User
    $tenant = $userUpn.Host

    Write-Host "Checking for AzureAD module..."

    $AadModule = Get-Module -Name "AzureAD" -ListAvailable
    if ($AadModule -eq $null) {
        Write-Host "AzureAD PowerShell module not found, looking for AzureADPreview"
        $AadModule = Get-Module -Name "AzureADPreview" -ListAvailable
    }

    if ($AadModule -eq $null) {
        write-host
        write-host "AzureAD Powershell module not installed..." -f Red
        write-host "Install by running 'Install-Module AzureAD' or 'Install-Module AzureADPreview' from an elevated PowerShell prompt" -f Yellow
        write-host "Script can't continue..." -f Red
        write-host
        exit
    }

    # Getting path to ActiveDirectory Assemblies
    # If the module count is greater than 1 find the latest version

    if ($AadModule.count -gt 1) {
        $Latest_Version = ($AadModule | select version | Sort-Object)[-1]
        $aadModule = $AadModule | ? { $_.version -eq $Latest_Version.version }
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    else {
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null
    [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null

    $clientId = "<Your Application ID>"
    $redirectUri = "urn:ietf:wg:oauth:2.0:oob"
    $resourceAppIdURI = "https://graph.microsoft.com"
    $authority = "https://login.microsoftonline.com/$Tenant"

    try {
        $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
        # https://msdn.microsoft.com/library/azure/microsoft.identitymodel.clients.activedirectory.promptbehavior.aspx
        # Change the prompt behaviour to force credentials each time: Auto, Always, Never, RefreshSession
        $platformParameters = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters" -ArgumentList "Auto"
        $userId = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier" -ArgumentList ($User, "OptionalDisplayableId")
        $authResult = $authContext.AcquireTokenAsync($resourceAppIdURI, $clientId, $redirectUri, $platformParameters, $userId).Result
        # If the accesstoken is valid then create the authentication header
        if ($authResult.AccessToken) {
            # Creating header for Authorization token
            $authHeader = @{
                'Content-Type' = 'application/json'
                'Authorization' = "Bearer " + $authResult.AccessToken
                'ExpiresOn' = $authResult.ExpiresOn
            }
            return $authHeader
        }
        else {
            Write-Host
            Write-Host "Authorization Access Token is null, please re-run authentication..." -ForegroundColor Red
            Write-Host
            break
        }
    }
    catch {
        write-host $_.Exception.Message -f Red
        write-host $_.Exception.ItemName -f Red
        write-host
        break
    }   
}

$authToken = Get-AuthToken -User "<Your AAD Username>"

try {
    $uri = "https://graph.microsoft.com/beta/me/managedDevices"
    Write-Verbose $uri
    (Invoke-RestMethod -Uri $uri –Headers $authToken –Method Get).Value
}
catch {
    $ex = $_.Exception
    $errorResponse = $ex.Response.GetResponseStream()
    $reader = New-Object System.IO.StreamReader($errorResponse)
    $reader.BaseStream.Position = 0
    $reader.DiscardBufferedData()
    $responseBody = $reader.ReadToEnd();
    Write-Host "Response content:`n$responseBody" -f Red
    Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"
    write-host
    break
}

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

Kuruluşunuz, kuruluşları kendi Azure AD kiracıları ile destekliyorsa, istemcilerinize uygulamanızı ilgili kiracıları ile kullanacakları şekilde izin vermek isteyebilirsiniz.

Bunun için:

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

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

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

    Bunu yapmak için aşağıdaki seçeneklerden birini kullanın:

    a. İstemciniz ve e-posta adresi arasında 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 panelinden Konuk kullanıcı ekle’yi seçin.

    Use Quick Tasks to add a guest user
  2. İstemcinin e-posta adresini girin ve (isteğe bağlı olarak) davet için kişisel bir ileti ekleyin.

    Inviting an external user as a guest
  3. Davet et’i seçin.

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

A sample guest invitation

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

İlişki oluşturulduğunda (veya davetiniz kabul edildiğinde), kullanıcı hesabını Dizin rolü kısmına ekleyin.

Gerekirse kullanıcıyı diğer rollere de eklemeyi unutmayın. Örneğin, kullanıcının Intune ayarlarını yönetmesine izin vermek için kullanıcıların ya bir Genel Yönetici ya da bir Intune Hizmet yöneticisi olması gerekir.

Ayrıca:

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

  • Uygulama kodunu kendinizin değil, istemcinin Azure AD kiracısı etki alanının kimlik doğrulaması için güncelleştirin.

    Örneğin, kiracı etki alanınızın contosopartner.onmicrosoft.com ve istemcinin kiracı etki alanının northwind.onmicrosoft.com olduğunu varsayalım, kodunuzu istemcinizin kiracı kimlik doğrulaması için güncelleştirmeniz gerekir.

    Önceki örnekte olduğu gibi bir C# uygulamasında bunu yapmak için authority değişkeninin değerini değiştirmeniz gerekir:

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

    kullanıcısı

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