Azure Otomasyonu ve Microsoft Graph aracılığıyla Microsoft Entra Kimlik Yönetimi görevleri otomatikleştirme
Azure Otomasyonu, yaygın veya tekrarlanan sistem yönetimi ve süreçlerini otomatikleştirmenizi sağlayan bir Azure bulut hizmetidir. Microsoft Graph, dizindeki kullanıcıları, grupları, erişim paketlerini, erişim gözden geçirmelerini ve diğer kaynakları yöneten Microsoft Entra özellikleri için Microsoft birleşik API uç noktasıdır. Microsoft Graph PowerShell SDK'sını kullanarak PowerShell komut satırından Microsoft Entra Id'yi büyük ölçekte yönetebilirsiniz. Microsoft Entra görevlerini basit bir betikten otomatikleştirebilmeniz için Azure Otomasyonu'da PowerShell tabanlı bir runbook'tan Microsoft Graph PowerShell cmdlet'lerini de ekleyebilirsiniz.
Azure Otomasyonu ve PowerShell Graph SDK'sı sertifika tabanlı kimlik doğrulamasını ve uygulama izinlerini desteklediğinden, Azure Otomasyonu runbook'ların kullanıcı bağlamı gerekmeden Microsoft Entra ID'de kimlik doğrulamasından geçirmesini sağlayabilirsiniz.
Bu makalede, Microsoft Graph PowerShell aracılığıyla yetkilendirme yönetimini sorgulayan basit bir runbook oluşturarak Microsoft Entra Kimlik Yönetimi için Azure Otomasyonu kullanmaya nasıl başlandığınız gösterilmektedir.
Azure Otomasyonu hesabı oluşturma
Bahşiş
Bu makaledeki adımlar, başladığınız portala göre biraz değişiklik gösterebilir.
Azure Otomasyonu runbook yürütmesi için bulutta barındırılan bir ortam sağlar. Bu runbook'lar bir zamanlamaya göre otomatik olarak başlatılabilir veya web kancaları veya Logic Apps tarafından tetiklenebilir.
Azure Otomasyonu kullanmak için bir Azure aboneliğiniz olması gerekir.
Önkoşul rolü: Azure aboneliği veya kaynak grubu sahibi
Azure portalında oturum açın. Azure Otomasyonu hesabının bulunacağı aboneliğe veya kaynak grubuna erişiminiz olduğundan emin olun.
Aboneliği veya kaynak grubunu seçin ve Oluştur'u seçin. Otomasyon yazın, Microsoft'tan Otomasyon Azure hizmetini ve ardından Oluştur'u seçin.
Azure Otomasyonu hesabı oluşturulduktan sonra Erişim denetimi (IAM) öğesini seçin. Ardından Bu kaynağa erişimi görüntüle'de Görüntüle'yi seçin. Bu kullanıcılar ve hizmet sorumluları daha sonra bu Azure Otomasyonu hesabında oluşturulacak betikler aracılığıyla Microsoft hizmetiyle etkileşime geçebilecektir.
Burada listelenen kullanıcıları ve hizmet sorumlularını gözden geçirin ve yetkili olduklarından emin olun. Yetkisi olmayan tüm kullanıcıları kaldırın.
Bilgisayarınızda otomatik olarak imzalanan anahtar çifti ve sertifika oluşturma
Kişisel kimlik bilgilerinize gerek kalmadan çalışabilmesi için, oluşturduğunuz Azure Otomasyonu hesabının bir sertifikayla Microsoft Entra Id'de kimliğini doğrulaması gerekir.
Hizmetinizin kimliğini Microsoft Entra Id'ye doğrulamak için zaten bir anahtar çiftiniz ve bir sertifika yetkilisinden aldığınız bir sertifikanız varsa, sonraki bölüme geçin.
Otomatik olarak imzalanan bir sertifika oluşturmak için,
Özel anahtarıyla bir sertifika oluşturmak ve dışarı aktarmak için otomatik olarak imzalanan bir sertifika (seçenek 2) oluşturma yönergelerini izleyin.
Sertifikanın parmak izini görüntüleyin.
$cert | ft Thumbprint
Dosyaları dışarı aktardıktan sonra sertifikayı ve anahtar çiftini yerel kullanıcı sertifika deponuzdan kaldırabilirsiniz. Sonraki adımlarda sertifika ve özel anahtar Azure Otomasyonu ve Microsoft Entra hizmetlerine yüklendikten sonra ve
.crt
dosyalarını da kaldırırsınız.pfx
.
Anahtar çiftini Azure Otomasyonu'a yükleme
Azure Otomasyonu'daki runbook'unuz dosyadan .pfx
özel anahtarı alır ve Microsoft Graph'ta kimlik doğrulaması yapmak için kullanır.
Azure Otomasyonu hesabının Azure portalında Sertifikalar'ı ve Sertifika ekle'yi seçin.
.pfx
Daha önce oluşturulan dosyayı karşıya yükleyin ve dosyayı oluştururken sağladığınız parolayı yazın.Özel anahtar karşıya yüklendikten sonra sertifikanın son kullanma tarihini kaydedin.
Artık dosyayı yerel bilgisayarınızdan silebilirsiniz
.pfx
. Ancak, sonraki bir adımda bu dosyaya.crt
ihtiyacınız olduğundan dosyayı henüz silmeyin.
Azure Otomasyonu hesabınıza Microsoft Graph modülleri ekleme
Varsayılan olarak, Azure Otomasyonu Microsoft Graph için önceden yüklenmiş powershell modülü yoktur. Galeriden Otomasyon hesabınıza Microsoft.Graph.Authentication ve ardından ek modüller eklemeniz gerekir.
Azure Otomasyonu hesabının Azure portalında Modüller'i ve ardından Galeriye gözat'ı seçin.
Arama çubuğuna Microsoft.Graph.Authentication yazın. Modülü seçin, İçeri Aktar'ı seçin ve Tamam'ı seçerek Microsoft Entra ID'nin modülü içeri aktarmaya başlamasını sağlayın. Tamam'ı seçtikten sonra modülü içeri aktarmak birkaç dakika sürebilir. Diğer modüllerde önkoşul olarak Microsoft.Graph.Authentication olduğundan, Microsoft.Graph.Authentication modülü içeri aktarma işlemi tamamlanana kadar daha fazla Microsoft Graph modülü eklemeyi denemeyin.
Modüller listesine dönün ve Yenile'yi seçin. Microsoft.Graph.Authentication modülünün Durumu Kullanılabilir olarak değiştirildikten sonra sonraki modülü içeri aktarabilirsiniz.
Yetkilendirme yönetimi gibi Microsoft Entra Kimlik Yönetimi özellikleri için cmdlet'leri kullanıyorsanız Microsoft.Graph.Identity.Governance modülü için içeri aktarma işlemini yineleyin.
Betiğinizin gerektirebileceği microsoft.graph.users gibi diğer modülleri içeri aktarabilirsiniz. Örneğin, Microsoft Entra Kimlik Koruması kullanıyorsanız Microsoft.Graph.Identity.SignIns modülünü içeri aktarmak isteyebilirsiniz.
Uygulama kaydı oluşturma ve izinleri atama
Ardından, Microsoft Entra Id'de bir uygulama kaydı oluşturarak Microsoft Entra Id'nin Azure Otomasyonu runbook'unuzun sertifikasını kimlik doğrulaması için tanımasını sağlarsınız.
- Microsoft Entra yönetim merkezinde en az Bir Uygulama Yöneticisi olarak oturum açın.
- Kimlik>Uygulamaları'na> göz atın Uygulama kayıtları.
- Yeni kayıt'ı seçin.
- Uygulama için bir ad yazın ve Kaydet'i seçin.
- Uygulama kaydı oluşturulduktan sonra, daha sonra bu öğelere ihtiyacınız olduğu için Uygulama (istemci) Kimliği ve Dizin (kiracı) kimliğini not alın.
- Sertifikalar ve Gizli Dizi>Sertifikaları>Sertifikayı karşıya yükle'yi seçin.
.crt
Daha önce oluşturulan dosyayı karşıya yükleyin.
- API izinleri>İzin ekle'yi seçin.
- Microsoft Graph>Uygulaması izinleri'ne tıklayın.
Azure Otomasyonu hesabınızın gerektirdiği izinlerden her birini seçin ve ardından İzin ekle'yi seçin.
- Runbook'unuz yalnızca tek bir katalog içinde sorgular veya güncelleştirmeler gerçekleştiriyorsa, bunu kiracı genelinde uygulama izinleri atamanız gerekmez; bunun yerine hizmet sorumlusunu kataloğun Katalog sahibine veya Katalog okuyucu rolüne atayabilirsiniz.
- Runbook'unuz yalnızca yetkilendirme yönetimi için sorgular gerçekleştiriyorsa, EntitlementManagement.Read.All iznini kullanabilir.
- Runbook'unuz yetkilendirme yönetiminde, örneğin birden çok katalogda atama oluşturmak için değişiklik yapıyorsa, EntitlementManagement.ReadWrite.All iznini kullanın.
- Diğer API'ler için gerekli iznin eklendiğinden emin olun. Örneğin, Microsoft Entra Kimlik Koruması için IdentityRiskyUser.Read.All izni gerekebilir.
Yönetici onayı verme
Önceki bölümde oluşturulan uygulamanın, en azından Ayrıcalıklı Rol Yöneticisi rolüne sahip birinin istendiği gibi çalışmadan önce onaylamasını gerektiren izinleri vardır.
- Microsoft Entra yönetim merkezinde en az Ayrıcalıklı Rol Yöneticisi olarak oturum açın.
- Kimlik>Uygulamaları> Uygulama kayıtları> Tüm uygulamalar'a göz atın.
- Önceki bölümde oluşturulan uygulamayı seçin.
- API izinleri'ni seçin ve gerekli izinleri gözden geçirin.
- Uygunsa, uygulamaya bu izinleri vermek için "Kiracı Adınız" için yönetici onayı ver'i seçin.
Azure Otomasyonu değişkenleri oluşturma
Bu adımda, Azure Otomasyonu hesabında runbook'un Microsoft Entra Kimliği'nde kimlik doğrulaması yapmak için kullandığı üç değişken oluşturursunuz.
Azure portalında Azure Otomasyonu hesabına dönün.
Değişkenler'i ve Değişken ekle'yi seçin.
Parmak İzi adlı bir değişken oluşturun. Değişkenin değeri olarak, daha önce oluşturulan sertifika parmak izini yazın.
ClientId adlı bir değişken oluşturun. Değişkenin değeri olarak, Microsoft Entra Id'de kayıtlı uygulamanın istemci kimliğini yazın.
TenantId adlı bir değişken oluşturun. Değişkenin değeri olarak, uygulamanın kaydedildiği dizinin kiracı kimliğini yazın.
Graph'ı kullanabilen bir Azure Otomasyonu PowerShell runbook'u oluşturma
Bu adımda ilk runbook'u oluşturursunuz. Daha önce oluşturulan sertifikayı kullanarak kimlik doğrulamasının başarılı olduğunu doğrulamak için bu runbook'u tetikleyebilirsiniz.
Runbook'lar'ı ve Runbook oluştur'u seçin.
Runbook'un adını yazın, oluşturulacak runbook türü olarak PowerShell'i seçin ve Oluştur'u seçin.
Runbook oluşturulduktan sonra, runbook'un PowerShell kaynak kodunu yazmanız için bir metin düzenleme bölmesi görüntülenir.
Metin düzenleyicisine aşağıdaki PowerShell'i yazın.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
Connect-MgGraph -clientId $ClientId -tenantId $TenantId -certificatethumbprint $Thumbprint
Test bölmesi'ni ve ardından Başlat'ı seçin. Runbook betiğinizin Azure Otomasyonu işlenmesinin tamamlanması için birkaç saniye bekleyin.
Runbook'unuzun çalıştırılması başarılı olursa Microsoft Graph'a Hoş Geldiniz! iletisi görüntülenir.
Artık runbook'unuzun Microsoft Graph'ta kimlik doğrulaması yapabileceklerini doğruladığınıza göre, Microsoft Entra özellikleriyle etkileşime geçmek için cmdlet'ler ekleyerek runbook'unuzu genişletin.
Yetkilendirme Yönetimi'ni kullanmak için runbook'u genişletme
Runbook'unuzun uygulama kaydında EntitlementManagement.Read.All veya EntitlementManagement.ReadWrite.All izinleri varsa yetkilendirme yönetimi API'lerini kullanabilir.
- Örneğin, Microsoft Entra yetkilendirme yönetimi erişim paketlerinin listesini almak için, yukarıda oluşturulan runbook'u güncelleştirebilir ve metni aşağıdaki PowerShell ile değiştirebilirsiniz.
Import-Module Microsoft.Graph.Authentication
$ClientId = Get-AutomationVariable -Name 'ClientId'
$TenantId = Get-AutomationVariable -Name 'TenantId'
$Thumbprint = Get-AutomationVariable -Name 'Thumbprint'
$auth = Connect-MgGraph -clientId $ClientId -tenantid $TenantId -certificatethumbprint $Thumbprint
Import-Module Microsoft.Graph.Identity.Governance
$ap = @(Get-MgEntitlementManagementAccessPackage -All -ErrorAction Stop)
if ($null -eq $ap -or $ap.Count -eq 0) {
ConvertTo-Json @()
} else {
$ap | Select-Object -Property Id,DisplayName | ConvertTo-Json -AsArray
}
Test bölmesi'ni ve ardından Başlat'ı seçin. Runbook betiğinizin Azure Otomasyonu işlenmesinin tamamlanması için birkaç saniye bekleyin.
Çalıştırma başarılı olursa, karşılama iletisi yerine çıkış bir JSON dizisi olur. JSON dizisi, sorgudan döndürülen her erişim paketinin kimliğini ve görünen adını içerir.
Runbook'a parametre sağlama (isteğe bağlı)
PowerShell betiğinin en üstüne bir Param
bölüm ekleyerek runbook'unuza giriş parametreleri de ekleyebilirsiniz. Örneğin
Param
(
[String] $AccessPackageAssignmentId
)
İzin verilen parametrelerin biçimi çağrı hizmetine bağlıdır. Runbook'unuz çağırandan parametre alıyorsa, sağlanan parametre değerlerinin runbook'un nasıl başlatılacağına uygun olduğundan emin olmak için runbook'unuza doğrulama mantığı eklemeniz gerekir. Örneğin, runbook'unuz bir web kancası tarafından başlatıldıysa, Azure Otomasyonu doğru URL'ye yapıldığı sürece web kancası isteğinde herhangi bir kimlik doğrulaması gerçekleştirmez, bu nedenle isteği doğrulamanın alternatif bir aracına ihtiyacınız vardır.
Runbook giriş parametrelerini yapılandırdıktan sonra runbook'unuzu test ettiğinizde, Test sayfası aracılığıyla değerler sağlayabilirsiniz. Daha sonra runbook yayımlandığında runbook'u PowerShell, REST API veya Mantıksal Uygulama'dan başlatırken parametreler sağlayabilirsiniz.
Logic Apps'te bir Azure Otomasyonu hesabının çıkışını ayrıştırma (isteğe bağlı)
Runbook'unuz yayımlandıktan sonra, Azure Otomasyonu'de bir zamanlama oluşturabilir ve runbook'unuzu otomatik olarak çalışacak şekilde bu zamanlamaya bağlayabilirsiniz. Azure Otomasyonu runbook'larını zamanlamak, PowerShell arabirimleri olmayan diğer Azure veya Office 365 hizmetleriyle etkileşim kurması gerekmeyen runbook'lar için uygundur.
Runbook'unuzun çıktısını başka bir hizmete göndermek istiyorsanız, Logic Apps sonuçları ayrıştırabileceği için Azure Logic Apps'i kullanarak Azure Otomasyonu runbook'unuzu başlatmayı düşünebilirsiniz.
Azure Logic Apps'te Logic Apps Tasarımcısı'nda Yinelenme ile başlayan bir Mantıksal Uygulama oluşturun.
Azure Otomasyonu'den iş oluşturma işlemini ekleyin. Microsoft Entra Id kimlik doğrulaması yapın ve daha önce oluşturulan Abonelik, Kaynak Grubu, Otomasyon Hesabı'nı seçin. İşi Bekle'yi seçin.
Runbook adı parametresini ekleyin ve başlatılacak runbook'un adını yazın. Runbook'ta giriş parametreleri varsa, değerleri onlara sağlayabilirsiniz.
Yeni adım'ı seçin ve İşi alma çıkışını alma işlemini ekleyin. Önceki adımla aynı Abonelik, Kaynak Grubu, Otomasyon Hesabı'nı seçin ve önceki adımda İş Kimliği'nin Dinamik değerini seçin.
Ardından Logic App'e runbook tamamlandığında döndürülen İçeriği kullanan JSON Ayrıştır eylemi gibi daha fazla işlem ekleyebilirsiniz. (Otomatik olarak JSON şemasını örnek bir yükten ayrıştırın, PowerShell betiğinin null döndürebileceğinden emin olun; şemada öğesinin
"type": "string"
bir kısmını olarak"type": ["string", "null"]
değiştirmeniz gerekebilir.)
Azure Otomasyonu powershell runbook'u bir kerede çıkış akışına büyük miktarda veri yazmaya çalışırsa tamamlanamadı. Genellikle runbook çıkışının yalnızca Logic App tarafından gereken bilgilere sahip olmasını sağlayarak ( örneğin, gereksiz özellikleri dışlamak için cmdlet'ini Select-Object -Property
kullanarak) bu soruna geçici bir çözüm bulabilirsiniz.
Sertifikayı güncel tutmayı planlama
Kimlik doğrulaması için yukarıdaki adımları izleyerek otomatik olarak imzalanan bir sertifika oluşturduysanız, sertifikanın süresi dolmadan önce sınırlı bir ömrü olduğunu unutmayın. Sertifikayı yeniden oluşturmanız ve son kullanma tarihinden önce yeni sertifikayı karşıya yüklemeniz gerekir.
Azure portalında son kullanma tarihini görebileceğiniz iki yer vardır.
- Azure Otomasyonu'de Sertifikalar ekranında sertifikanın son kullanma tarihi görüntülenir.
- Microsoft Entra Id'de, uygulama kaydında Sertifikalar ve gizli diziler ekranında, Azure Otomasyonu hesabı için kullanılan sertifikanın son kullanma tarihi görüntülenir.