Microsoft Graph PowerShell SDK'sına giriş
Microsoft 365 yönetimine Birleşik Bir Yaklaşım
Microsoft Graph API bir süredir piyasada ve Microsoft, daha fazla yönetim işlevini (Azure AD Hesapları için Lisans Yönetimi gibi) platforma taşıyor. Microsoft bir işlevi Grafiğe aktardığında kuruluşların PowerShell komut dosyalarını güncellemesi gerekebilir.
Graph API'yi kullanmaya başlamak, özellikle REST tabanlı hizmetlerle ilgili deneyiminiz yoksa göz korkutucu bir görev olabilir. Biraz pratik yaparak ve Grafik belgelerini okumak için harcanan zamanla, Microsoft 365 Kiracı Geçiş Değerlendirmesi gibi araçların nasıl bir araya getirildiğini görmek ve Grafiği kullanmanın değerini anlamaya başlamak mümkündür.
Grafikten yararlanmanın daha tanıdık bir yolunu istiyorsanız, Microsoft Graph PowerShell SDK süreci basitleştirir ve (nispeten) basit bir PowerShell modülünde paketler. PowerShell SDK'yı kullanarak Microsoft Graph'a bağlanmanın iniş çıkışları vardır ancak bu, kiracı yöneticileri için Graph API'yi öğrenme ve benimseme sürecini kolaylaştırır.
Microsoft Graph PowerShell SDK'nın kullanımıyla ilgili serinin ilk bölümünde SDK'nın ne olduğunu ve başlarken nelere dikkat edilmesi gerektiğini anlatıyorum.
Microsoft Graph API'si nedir?
Microsoft Graph API'sine (veya herhangi bir Graph API'sine) bakmanın bir yolu, mantıksal bir ağaç yapısındaki bir dizi düğümdür. İstek, erişmek istediğiniz verileri temsil eden uç noktaya gönderilir.
Örneğin, kullanıcılar uç noktası (https://graph.microsoft.com/v1.0) kiracıdaki tüm kullanıcıları döndürür, ancak belirli bir kullanıcıya (örneğin, kullanici1@contoso.com) ilişkin verileri almak için https://graph.microsoft.com/v1.0/user1@contoso.com uç noktasını sorgularız.
Bu mantık, Şekil 1'de gösterilen yapı boyunca devam eder. Örneğin, https://graph.microsoft.com/v1.0/user1@contoso.com/Messages uç noktası, e-posta iletilerini döndürür. user1@contoso.com, uç nokta ise https://graph.microsoft.com/v1.0/user1@contoso.com/<İleti Kimliği> ayrıntıları döndürür bireysel bir mesajın
Microsoft Graph Explorer, farklı uç noktaları ve bunların döndürdüğü bilgileri keşfetmenin yararlı bir yoludur. Ayrıca, araca üretim kiracınıza bağlanmadan önce aşina olabilmeniz için sorgulanacak örnek bir veri kümesiyle birlikte gelir. Şekil 2'de AdeleV kullanıcısının yönetici uç noktası için Graph Explorer sonuçlarını görüyoruz.
Grafik sorgularının sonuçları, farklı türdeki değerleri ve iç içe geçmiş nesneleri hesaba katacak kadar esnek olan JSON formatında döndürülür.
Grafik API'lerini kullanırken göz önünde bulundurmanız gereken diğer bir nokta da çalıştırdığınız her uç nokta ve işlem için gereken izinlerdir. Microsoft Graph API'sindeki izinler hakkında daha fazla bilgi edinmek için Hangi Microsoft Graph İzinlerine İhtiyacınız Olduğunu Nasıl Anlayabilirsiniz başlıklı bu makaleye göz atın.
PowerShell SDK'sı nasıl yardımcı olur?
Graph API ile çalışmak birçok kiracı yöneticisi için yeni bir kavramdır ve ustalaşmanız gereken bir öğrenme eğrisi vardır. PowerShell SDK, PowerShell konusunda daha rahat olan yöneticilerin, kimlik doğrulama belirteçleri ve biçimlendirme istekleri gibi ayrıntılar hakkında endişelenmeden Grafiği kullanmalarının bir yoludur.
SDK bunu sizin adınıza Graph çağrılarını yayınlayan PowerShell cmdlet'lerini sağlayarak yapar. Örneğin, Şekil 3'te, PowerShell SDK'sındaki Get-MgGroup cmdlet'inin https://graph.microsoft.com/v1.0/groups uç noktasına bir GET isteği yayınladığını görüyoruz. . Bu isteği doğrudan Invoke-WebRequest kullanarak göndermek mümkün olsa da, daha tanıdık bir cmdlet ve parametre kümesine sahip olmak, Grafikle çalışmayı önemli ölçüde kolaylaştırır.
Graph aracılığıyla yeni nesneler oluştururken veya mevcut nesneleri güncellerken, yeni veya güncellenen nesnenin parametrelerini tanımlamak için bir JSON verisi gerekir. Bu veri, her nesne türü için doğru şekilde elde edilmesi zor olabilecek önceden tanımlanmış bir şemayı takip eder. SDK cmdlet'leri, cmdlet parametrelerine göre yükü otomatik olarak biçimlendirir. Örneğin, Şekil 4'te New-MgUser cmdlet'i, yeni bir kullanıcı oluşturmak için Graph API'nin gerektirdiği JSON verilerini iletir.
Microsoft Graph PowerShell SDK Cmdlet'leri için -Debug parametresini kullanmak, SDK'nın arka planda ne yaptığına ilişkin görünürlük elde etmenin ve Graph API'sine gönderilen istekleri görüntülemenin iyi bir yoludur.
Active Directory için Siber Güvenlik Risk Yönetimi
Bu Siber Güvenlik Risk Yönetimi Çözümleri aracılığıyla AD saldırılarını nasıl önleyeceğinizi ve bu saldırılardan nasıl kurtulacağınızı keşfedin.
PowerShell SDK'yı yükleme
Microsoft Graph PowerShell SDK'sı PowerShell Galerisi'nde mevcuttur. SDK'yı yüklemek için PSGallery deposunun kaydedilmesi gerekir, bu olmadan kurulum Şekil 5'te gösterildiği gibi başarısız olur. Eksikse depoyu kaydetmek için Register-PSRepository -Default, cmdlet'ini çalıştırın. ve kurulum daha sonra çalışmalıdır.
SDK kurulduktan sonra 39 yeni modül mevcuttur (yazma sırasında sayım doğruydu).
SDK'yı güncellemek, Update-Module Microsoft.Graph cmdlet'ini yönetici olarak çalıştırmak ve PowerShell'i yeniden başlatmak nispeten sorunsuzdur. SDK aylık olarak güncellenir ve en son sürümün kullanılması önemlidir.
Azure Otomasyonunu Kullanma
Otomasyon PowerShell için önemli bir faktördür. Görevlerin otomatikleştirilmesi, yöneticilerin başka yerlere değer katmaya odaklanmasına olanak tanıdığı için Microsoft 365 kiracısının günlük çalışması açısından genellikle çok önemlidir. SDK, bir Windows sunucusundan zamanlanmış bir görev olarak mükemmel bir şekilde çalışırken Azure Otomasyonu, otomatikleştirilmiş görevlere ekstra düzeyde güvenlik ve kullanılabilirlik ekler.
Azure Otomasyonu ile PowerShell için Microsoft Graph SDK'sını Kullanma hakkındaki bu makalede, Graph SDK'nın Azure Otomasyonu'nda çalışmasını sağlamaya yönelik gereksinimler açıklanmaktadır.
Yetki Verilen ve Uygulama İzinleri
Microsoft Graph iki tür izni destekler: Yetki Verilen ve Uygulama. Yüksek düzeyde, devredilen izinler sanki bir kullanıcı mevcutmuş gibi çalışır ve genellikle kullanıcının etkileşimli olarak kimlik doğrulamasını ve bir erişim belirtecini almasını gerektirir. Temsilci izinler genellikle Graph'a son kullanıcılar adına bağlanan istemci uygulamaları için kullanılır ve PowerShell SDK ve Graph Explorer için varsayılan yöntemdir. Yetki verilen izinleri kullanan uygulamalar, oturum açan kullanıcının kullanabileceği izinlerle sınırlıdır; bu nedenle, SDK'yı kullanan yönetici olmayan bir kullanıcı yalnızca kendi hesabının gerçekleştirme iznine sahip olduğu görevleri gerçekleştirebilir.
Uygulama izinleri uygulama kaydı olarak çalışır ve etkileşimli olmayan kimlik doğrulamayı destekler. Uygulama izinleri genellikle otomatik görevler veya etkileşimli kimlik doğrulamayı kullanamayan uygulamalar için kullanılır. Grafik SDK'sına yönelik uygulama izinlerini yapılandırmak, Azure AD'de kayıtlı bir uygulamanın kullanılmasını gerektirir. Uygulama izinleri geçerli kullanıcı olarak çalışmadığından, devredilen izinlerin izin kısıtlamalarına tabi değildir. Uygulama izinlerini kullanırken, özellikle de istemci sırrını veya sertifikasını saklama konusunda dikkatli olun.
Yetki verilen izinler ile uygulama izinleri arasında seçim yaparken göz önünde bulundurulması gereken bir diğer husus işlevselliktir. Microsoft 365'te kullanıcı tarafından yapılması gereken görevler vardır. Örneğin, Microsoft PowerShell Grafik SDK'sıyla Yeni Bir Microsoft 365 Grubu Oluşturma hakkındaki bu makale, bir Microsoft 365 Grubunun nasıl kurulacağını ve bir duyarlılık etiketinin nasıl atanacağını gösterir ve bu, temsilci izinler kullanıldığında iyi çalışır. Aynısını uygulama izinleriyle yapmaya çalışmak, Yalnızca Uygulama belirteciyle desteklenmediğinden başarısız olur (Şekil 6).
İhtiyaç duyulan izinlerin türünü etkileyen bunun gibi birçok nüans vardır. Kodunuzu planlarken, sorunu nerede bulabileceğinizi belirlemek için belgeleri kontrol etmeniz önemlidir.
SDK'yı kullanarak Grafiğe bağlanma
Cmdlet'leri nasıl kullanmak istediğinize bağlı olarak SDK'yı kullanarak Graph API'ye bağlanmanın birden fazla yolu vardır. Bağlantı için en yaygın senaryolar şunlardır:
- Yetki verilen izinlerle etkileşimli olarak bağlanın
- Uygulama izinleri ve sertifikayla etkileşimli olmayan bir şekilde bağlanın
- Uygulama izinleri ve istemci sırrı ile etkileşimli olmayan bir şekilde bağlanın
- Azure Otomasyonu ve yönetilen kimlik kullanarak bağlanın
Yetki verilen izinlerle bağlantı kurmak büyük olasılıkla insanların deneyeceği ilk ve yapılması en kolay yöntemdir. Connect-MgGraph cmdlet'ini çalıştırmak ve istediğiniz kapsamları belirtmek, Şekil 7'de gösterildiği gibi Microsoft Graph PowerShell uygulamasına oturum açmanızı ve izin vermenizi ister.
Grafik uygulaması izinlerini bir betikle kullanmak, gerekli izinleri kullanma iznine sahip kayıtlı bir Azure AD uygulamasının olmasını gerektirir. Birçok kez tartışıldığı için (Outlook Kişilerini Graph API ile Önceden Doldurma hakkındaki bu makalede olduğu gibi) burada bir uygulama kaydı oluşturma konusunu ele almayacağım, ancak bir uygulama kaydı mevcut olduğunda Connect-MgGraph cmdlet'i hem İstemci Sertifikası hem de Erişim Belirteci parametrelerini kabul eder.
Microsoft Graph PowerShell SDK ile Sertifika Tabanlı Kimlik Doğrulamayı Kullanma hakkındaki bu makalede gösterildiği gibi İstemci Sertifikası'nı kullanmak, PowerShell SDK ile görevleri güvenli bir şekilde otomatikleştirmenin harika bir yoludur (sertifikayı sakladığınızdan emin olduğunuz sürece) Azure Key Vault gibi güvenli bir konumda).
İstemci Sırrı'nı kullanmak için öncelikle bir erişim jetonu almanız gerekir. Grafik API'si için erişim belirteci almanın birden çok yöntemi vardır ancak kolay bir yöntem, PowerShell ile Exchange Çevrimiçi Verilerini İşlemek için Azure Otomasyonunu Kullanma başlıklı bu makalede belirtildiği gibi Microsoft Kimlik Doğrulama Kitaplığı PowerShell Modülünü (MSAL.PS) kullanmaktır.
Şekil 8 her iki yöntemi de çalışırken göstermektedir.
Azure Otomasyonu ile PowerShell için Microsoft Graph SDK'sını kullanmak, uzun süredir çalışan veya karmaşık betikleri otomatikleştirmenin iyi bir yoludur. Microsoft Graph SDK, Azure Otomasyonu aracılığıyla Yönetilen Kimlikleri de kullanabilir, yönetilen kimliğin hizmet sorumlusuna izinler atayabilir ve bunları doğrudan Otomasyon Hesabında kullanılabilir hale getirebilir.
Özet
Bu yazımda Microsoft Graph PowerShell SDK'nın Microsoft Graph API üzerinden Microsoft 365 yönetimini nasıl basitleştirdiğini anlatıyorum. Ayrıca çeşitli senaryolarda SDK kullanarak Graph'a nasıl bağlanılacağını da gösteriyorum. Grafik ile çalışırken bağlantı kurmak ve gereksinimleri anlamak, birçok yöneticinin kodlarını güncellemeye çalışırken karşılaştığı ilk büyük zorluktur.
Bu serinin ikinci bölümünde, Microsoft Graph'ı SDK aracılığıyla kullanmaya daha derinlemesine bakacağız ve otomasyon ve toplu işleme yoluyla zamandan ve emekten nasıl tasarruf edebileceğinizi gösteren bazı örneklere bakacağız.







