PowerShell'de Microsoft Graph Modülü Nasıl Kurulur


Microsoft Graph API, tüm Microsoft hizmetleriyle tek bir kaynak üzerinden etkileşim kurmamıza olanak tanır. Bunu PowerShell'den yapabilmek için her zaman farklı modüller kurmamız ve farklı bağlantılar yapmamız gerekiyordu. PowerShell için Microsoft Graph SDK Modülünde bu artık gerekli değildir.

Invoke-Webrequests çağrılarının yardımıyla Graph API'yi zaten kullanabiliyorduk, ancak bununla çalışmak gerçekten kolay değildi. Yeni Microsoft Graph Modülü, hizmetlerle etkileşimi çok daha kolay hale getirmek için birçok cmdlet'le birlikte gelir.

Bu yazımda Microsoft Graph Modülünün nasıl kurulacağını ve farklı izinler kullanılarak ona nasıl bağlanılacağını anlatacağım.

Microsoft Graph PowerShell SDK'sı

Graph modülü aslında Microsoft Graph PowerShell SDK olarak adlandırılır ve tüm Microsoft Graph API'leri için bir sarmalayıcıdır. Şu anda yalnızca Azure AD modülünün yerini alacak gibi görünüyor. Microsoft 365 ile etkileşimde bulunmak için kullandığımız diğer modüllerin yerini şu anda alacak gibi görünmüyor.

30 Haziran 2022'de Azure AD Graph uç noktası kullanımdan kaldırılacaktır. Bu, Azure AD Modülü ile yapılan çağrıların artık yanıt almayacağı anlamına gelir. Bu nedenle, Azure AD Modülünü kullanan tüm betiklerinizi Microsoft Graph modülüne yeniden yazmanız önemlidir.

Bahsedildiği gibi Microsoft Graph PowerShell SDK, Microsoft'un tüm API'leriyle etkileşim kurmamıza olanak tanır. Bu, modülü SharePoint, Exchange Online, Uyumluluk vb. ile etkileşimde bulunmak için de kullanabileceğimiz anlamına gelir.

Modülün bir diğer avantajı ise PowerShell 7 ve üzerini desteklemesidir. Örneğin Azure AD Modülü PowerShell 7'de çalışmaz.

Microsoft Graph Modülünü PowerShell'e Yükleme

Microsoft Graph SDK Modülü şu anda 38 modülden oluşmaktadır. Hepsini aynı anda kurabiliriz ancak yalnızca gerçekten ihtiyacınız olan modülleri kurmayı düşünebilirsiniz.

Not

Bireysel modülleri kurarken en azından Microsoft.Graph.Authentication modülünü kurduğunuzdan emin olun.

Mevcut tüm modülleri aşağıdaki komutla görüntüleyebilirsiniz:

Find-Module Microsoft.Graph*

Microsoft Graph modülünü yalnızca mevcut kullanıcı için kuracağız. Tüm kullanıcılar için de yüklemek mümkündür ancak daha sonra PowerShell'i yükseltilmiş izinlerle açmanız gerekecektir.

  1. PowerShell veya Windows Terminalini açın

    - Başlat'a sağ tıklayın veya Windows Tuşu + X tuşlarına basın
    - Windows PowerShell'i veya Windows Terminali'ni seçin (Win 11'de)

  2. SDK'yı yükleyin

    Modülü yüklemek için PowerShell'de aşağıdaki komutu girin:

    Install-Module Microsoft.Graph -Scope CurrentUser

  3. Güvenilmeyen Depoyu Kabul Edin

    Güvenilmeyen Depodan yüklemek için Y yazın

  4. Yüklemenin bitmesini bekleyin

    Tüm modülleri kurarken kurulumun tamamlanması birkaç dakika sürebilir

Beta sürümünü de kullanmak istiyorsanız beta modüllerini ayrıca yüklemeniz gerekir:

Install-Module Microsoft.Graph.Beta -Scope CurrentUser

PowerShell'den Microsoft Graph'a bağlanma

Microsoft Graph'a bağlanırken önemli olan iki şey var; kapsamı tanımlamanız gerekecek ve MgGraph'ın beta sürümü var. Varsayılan olarak modül, API'nin kararlı sürümünü kullanacaktır. Ancak yeni özellikler ilk olarak cmdlet'lerin beta sürümlerinde yayınlanmaktadır.

Diğer önemli adım ise kullanmak istediğiniz kapsamları belirtmeniz gerekmesidir. MgGraph, Microsoft'un tüm API'lerine erişim sunar. Dolayısıyla, örneğin Azure AD kullanıcılarını dışa aktarmak veya görüntülemek istediğinizde yalnızca User.Read.All iznine sahip olmanız gerekir.

Microsoft Graph Kapsamlarını Bulma

Doğru kapsamı bulmak başlangıçta biraz zor olabilir. Ancak hangi kapsamları belirtmeniz gerektiğini belirlemek için kullanabileceğiniz bazı seçenekler vardır:

  • Microsoft Grafik Gezgini
  • Microsoft Graph Rest API Referansı
  • Find-MgGraphPermission cmdlet'i

Microsoft Graph Explorer, Microsoft Graph'a yapılan API çağrılarını test etmek için harika bir araçtır. Başlamanıza yardımcı olacak birçok örnek çağrıyla birlikte gelir. Ancak aynı zamanda arama için gerekli izni de listeleyecektir.

  1. Grafik Gezgini'ni açın
  2. Sol taraftan bir Örnek Sorgu seçin
  3. İzinleri Değiştir sekmesini tıklayın

PowerShell'de MS Graph'a bağlanırken İzin sekmesinde belirtilen kapsamlardan en az birine ihtiyacınız olacaktır.

Diğer seçenek ise Rest API Referansını kullanmaktır. Soldaki menüden çalışmak istediğiniz varlıklardan birini seçip gerekli izinleri görüntüleyebilirsiniz. Tüm kapsamları eklemenize gerek yoktur; kapsamlar en az ayrıcalıklıdan en ayrıcalıklıya doğru listelenir.

Son seçenek, Find-MgGraphPermission veya Find-MgGraphCommand cmdlet'lerini kullanmaktır. Her iki cmdlet de belirli bir MgGraph cmdlet'i için gerekli izni aramanıza olanak tanır:

Find-MgGraphCommand -Command "Get-MgUserAuthenticationMethod" | select -ExpandProperty Permissions | Select -Unique name

# Or 
Find-MgGraphPermission AuthenticationMethod

PowerShell'de MgGraph'a bağlanma

Hangi kapsamları kullanmanız gerektiğini biliyorsanız Microsoft Graph'a bağlanabilirsiniz. Yerel olarak çalışırken harika olan normal etkileşimli yöntemi kullanacağız. Ancak betikleri zamanlamak veya bir Azure Runbook içinde Microsoft Graph'ı kullanmak istediğinizde diğer kimlik doğrulama seçeneklerinden birini kullanmanız gerekecektir.

Örneğin User.Read.All ve Group.ReadWrite.All kapsamlarıyla Microsoft Graph'a bağlanın:

Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

Kimlik doğrulamanız ve izin vermeniz gerekecek. Bazı kapsamlar kuruluşunuz adına izin vermenizi gerektirir.

Artık Grafik API'sini kullanabilirsiniz. PowerShell'de Graph ile çalışırken, yeni izinlerle tekrar Connect-MsGraph komutunu kullanarak oturumunuza ek kapsamlar ekleyebilirsiniz.

Beta cmdlet'i kullanmak istiyorsanız cmdlet'in kaynak adından önce beta önekini eklemeniz yeterlidir. Örneğin, Get-MgUser'un beta cmdlet'ini kullanmak için Get-MgBetaUser'ı kullanabilirsiniz.

Microsoft Graph Modülünü Güncelleyin

Microsoft Graph modülü düzenli olarak eklenen yeni özelliklerle geliştirilmeye devam etmektedir. Bu nedenle, PowerShell komut dosyalarınızda en son Graph cmdlet'lerini kullanabilmeniz için modülünüzü güncel tutmanız önemlidir.

Modülü güncellemek için PowerShell'deki Update-Module cmdlet'ini ve ardından modül adını kullanabiliriz:

Update-Module Microsoft.Graph

Kapanış

Microsoft Graph SDK Modülünün doğru cmdlet'lerini bulmak biraz zor olabilir, ancak tek bir modülün tüm Microsoft hizmetleriyle etkileşim kurmamıza izin vermesi harika. Yazma sırasında dokümantasyon hala biraz zayıf, bu yüzden onunla senaryo yazmak çok fazla deneme yanılma gerektiriyor.

Umarım bu makale MgGraph modülüne başlamanıza yardımcı olmuştur. Herhangi bir sorunuz varsa aşağıya bir yorum bırakmanız yeterli.

İlgili makaleler