Bagikan melalui


Mengotomatiskan tugas Tata Kelola ID Microsoft Entra melalui Azure Automation dan Microsoft Graph

Azure Automation adalah layanan cloud Azure yang memungkinkan Anda mengotomatiskan manajemen dan proses sistem umum atau berulang. Microsoft Graph adalah titik akhir API terpadu Microsoft untuk fitur Microsoft Entra yang mengelola pengguna, grup, paket akses, tinjauan akses, dan sumber daya lainnya di direktori. Anda dapat mengelola ID Microsoft Entra dalam skala besar dari baris perintah PowerShell, menggunakan Microsoft Graph PowerShell SDK. Anda juga dapat menyertakan cmdlet Microsoft Graph PowerShell dari runbook berbasis PowerShell di Azure Automation, sehingga Anda dapat mengotomatiskan tugas Microsoft Entra dari skrip sederhana.

Azure Automation dan PowerShell Graph SDK mendukung autentikasi berbasis sertifikat dan izin aplikasi, sehingga Anda dapat meminta runbook Azure Automation mengautentikasi ke ID Microsoft Entra tanpa memerlukan konteks pengguna.

Artikel ini memperlihatkan kepada Anda cara mulai menggunakan Azure Automation untuk Tata Kelola ID Microsoft Entra, dengan membuat runbook sederhana yang meminta pengelolaan pemberian hak melalui Microsoft Graph PowerShell.

Membuat akun Azure Automation

Ujung

Langkah-langkah dalam artikel ini mungkin sedikit berbeda berdasarkan portal tempat Anda memulai.

Azure Automation menyediakan lingkungan yang dihosting cloud untuk eksekusi runbook. Runbook tersebut dapat dimulai secara otomatis berdasarkan jadwal, atau dipicu oleh webhook atau oleh Logic Apps.

Menggunakan Azure Automation mengharuskan Anda memiliki langganan Azure.

Peran prasyarat: Langganan Azure atau pemilik grup sumber daya

  1. Masuk ke portal Azure . Pastikan Anda memiliki akses ke grup langganan atau sumber daya tempat akun Azure Automation akan berada.

  2. Pilih grup langganan atau sumber daya, dan pilih Buat. Ketik Automation, pilih layanan Azure Automation dari Microsoft, lalu pilih Buat.

  3. Setelah akun Azure Automation dibuat, pilih Kontrol akses (IAM). Lalu pilih Tampilkan di Lihat akses ke sumber daya ini. Pengguna dan perwakilan layanan ini kemudian akan dapat berinteraksi dengan layanan Microsoft melalui skrip yang akan dibuat di akun Azure Automation tersebut.

  4. Tinjau pengguna dan perwakilan layanan yang tercantum di sana dan pastikan mereka diotorisasi. Hapus setiap pengguna yang tidak sah.

Membuat pasangan kunci dan sertifikat yang ditandatangani sendiri di komputer Anda

Sehingga dapat beroperasi tanpa memerlukan kredensial pribadi Anda, akun Azure Automation yang Anda buat perlu mengautentikasi dirinya sendiri ke ID Microsoft Entra dengan sertifikat.

Jika Anda sudah memiliki pasangan kunci untuk mengautentikasi layanan Anda ke ID Microsoft Entra, dan sertifikat yang Anda terima dari otoritas sertifikat, lewati ke bagian berikutnya.

Untuk menghasilkan sertifikat yang ditandatangani sendiri,

  1. Ikuti instruksi tentang cara membuat sertifikat yang ditandatangani sendiri, opsi 2, untuk membuat dan mengekspor sertifikat dengan kunci privatnya.

  2. Tampilkan thumbprint sertifikat.

     $cert | ft Thumbprint
    
  3. Setelah mengekspor file, Anda dapat menghapus sertifikat dan pasangan kunci dari penyimpanan sertifikat pengguna lokal Anda. Dalam langkah-langkah berikutnya, Anda juga menghapus .pfx file dan .crt , setelah sertifikat dan kunci privat diunggah ke layanan Azure Automation dan Microsoft Entra.

Mengunggah pasangan kunci ke Azure Automation

Runbook Anda di Azure Automation mengambil kunci privat dari .pfx file, dan menggunakannya untuk mengautentikasi ke Microsoft Graph.

  1. Di portal Azure untuk akun Azure Automation, pilih Sertifikat dan Tambahkan sertifikat.

  2. Unggah file yang .pfx dibuat sebelumnya, dan ketik kata sandi yang Anda berikan saat membuat file.

  3. Setelah kunci privat diunggah, rekam tanggal kedaluwarsa sertifikat.

  4. Anda sekarang dapat menghapus .pfx file dari komputer lokal Anda. Namun, jangan menghapus .crt file belum, karena Anda memerlukan file ini di langkah berikutnya.

Menambahkan modul untuk Microsoft Graph ke akun Azure Automation Anda

Secara default, Azure Automation tidak memiliki modul PowerShell yang telah dimuat sebelumnya untuk Microsoft Graph. Anda perlu menambahkan Microsoft.Graph.Authentication, lalu modul tambahan, dari galeri ke akun Automation Anda.

  1. Di portal Azure untuk akun Azure Automation, pilih Modul lalu Telusuri galeri.

  2. Di bilah Pencarian, ketik Microsoft.Graph.Authentication. Pilih modul, pilih Impor, dan pilih OK agar MICROSOFT Entra ID mulai mengimpor modul. Setelah memilih OK, mengimpor modul dapat memakan waktu beberapa menit. Jangan mencoba menambahkan lebih banyak modul Microsoft Graph hingga impor modul Microsoft.Graph.Authentication selesai, karena modul lain tersebut memiliki Microsoft.Graph.Authentication sebagai prasyarat.

  3. Kembali ke daftar Modul dan pilih Refresh. Setelah Status modul Microsoft.Graph.Authentication berubah menjadi Tersedia, Anda dapat mengimpor modul berikutnya.

  4. Jika Anda menggunakan cmdlet untuk fitur Tata Kelola ID Microsoft Entra, seperti pengelolaan pemberian izin, maka ulangi proses impor untuk modul Microsoft.Graph.Identity.Governance.

  5. Impor modul lain yang mungkin diperlukan skrip Anda, seperti Microsoft.Graph.Users. Misalnya, jika Anda menggunakan Microsoft Entra ID Protection, Anda dapat mengimpor modul Microsoft.Graph.Identity.SignIns .

Membuat pendaftaran aplikasi dan menetapkan izin

Selanjutnya, Anda membuat pendaftaran aplikasi di ID Microsoft Entra, sehingga ID Microsoft Entra mengenali sertifikat runbook Azure Automation Anda untuk autentikasi.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.
  2. Telusuri Aplikasi >Identitas>Pendaftaran aplikasi.
  3. Pilih Pendaftaran baru.
  4. Ketik nama untuk aplikasi dan pilih Daftar.
    1. Setelah pendaftaran aplikasi dibuat, perhatikan ID Aplikasi (klien) dan ID Direktori (penyewa) saat Anda membutuhkan item ini nanti.
  5. Pilih Sertifikat dan Sertifikat>Rahasia>Unggah sertifikat.
    1. Unggah file yang .crt dibuat sebelumnya.
  6. Pilih Izin>API Tambahkan izin.
  7. Pilih izin Aplikasi Microsoft Graph>.
    1. Pilih setiap izin yang diperlukan akun Azure Automation Anda, lalu pilih Tambahkan izin.

      • Jika runbook Anda hanya melakukan kueri atau pembaruan dalam satu katalog, maka Anda tidak perlu menetapkan izin aplikasi di seluruh penyewa; sebagai gantinya, Anda dapat menetapkan perwakilan layanan ke peran Pemilik katalog atau Pembaca katalog katalog.
      • Jika runbook Anda hanya melakukan kueri untuk pengelolaan pemberian hak, maka runbook dapat menggunakan izin EntitlementManagement.Read.All .
      • Jika runbook Anda membuat perubahan pada pengelolaan pemberian hak, misalnya untuk membuat penugasan di beberapa katalog, gunakan izin EntitlementManagement.ReadWrite.All .
      • Untuk API lain, pastikan bahwa izin yang diperlukan ditambahkan. Misalnya, untuk Microsoft Entra ID Protection, izin IdentityRiskyUser.Read.All mungkin diperlukan.

Aplikasi yang dibuat di bagian sebelumnya memiliki izin yang mengharuskan seseorang dengan setidaknya peran Administrator Peran Istimewa untuk disetujui sebelum berfungsi seperti yang dimaksudkan.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Peran Istimewa.
  2. Telusuri aplikasi >Identitas>Pendaftaran aplikasi> Semua aplikasi.
  3. Pilih aplikasi yang dibuat di bagian sebelumnya.
  4. Pilih izin API dan tinjau izin yang diperlukan.
  5. Jika sesuai, pilih Berikan persetujuan admin untuk "Nama Penyewa Anda" untuk memberi aplikasi izin tersebut.

Membuat variabel Azure Automation

Dalam langkah ini, Anda membuat di akun Azure Automation tiga variabel yang digunakan runbook untuk menentukan cara mengautentikasi ke ID Microsoft Entra.

  1. Di portal Azure, kembali ke akun Azure Automation.

  2. Pilih Variabel, dan Tambahkan variabel.

  3. Buat variabel bernama Thumbprint. Ketik, sebagai nilai variabel, thumbprint sertifikat yang dihasilkan sebelumnya.

  4. Buat variabel bernama ClientId. Ketik, sebagai nilai variabel, ID klien untuk aplikasi yang terdaftar di ID Microsoft Entra.

  5. Buat variabel bernama TenantId. Jenis, sebagai nilai variabel, ID penyewa direktori tempat aplikasi didaftarkan.

Membuat runbook Azure Automation PowerShell yang dapat menggunakan Graph

Dalam langkah ini, Anda membuat runbook awal. Anda dapat memicu runbook ini untuk memverifikasi autentikasi menggunakan sertifikat yang dibuat sebelumnya berhasil.

  1. Pilih Runbook dan Buat runbook.

  2. Ketik nama runbook, pilih PowerShell sebagai jenis runbook yang akan dibuat, dan pilih Buat.

  3. Setelah runbook dibuat, panel pengeditan teks muncul bagi Anda untuk mengetik kode sumber PowerShell dari runbook.

  4. Ketik PowerShell berikut ke editor teks.

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
  1. Pilih Panel uji, dan pilih Mulai. Tunggu beberapa detik hingga pemrosesan Azure Automation skrip runbook Anda selesai.

  2. Jika eksekusi runbook Anda berhasil, maka pesan Selamat Datang di Microsoft Graph! akan muncul.

Sekarang setelah Anda memverifikasi bahwa runbook Anda dapat mengautentikasi ke Microsoft Graph, memperluas runbook Anda dengan menambahkan cmdlet untuk berinteraksi dengan fitur Microsoft Entra.

Memperluas runbook untuk menggunakan Pengelolaan Pemberian Izin

Jika pendaftaran aplikasi untuk runbook Anda memiliki izin EntitlementManagement.Read.All atau EntitlementManagement.ReadWrite.All , maka dapat menggunakan API pengelolaan pemberian hak.

  1. Misalnya, untuk mendapatkan daftar paket akses pengelolaan pemberian hak Microsoft Entra, Anda dapat memperbarui runbook yang dibuat di atas, dan mengganti teks dengan PowerShell berikut.
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
}
  1. Pilih Panel uji, dan pilih Mulai. Tunggu beberapa detik hingga pemrosesan Azure Automation skrip runbook Anda selesai.

  2. Jika eksekusi berhasil, output alih-alih pesan selamat datang akan menjadi array JSON. Array JSON menyertakan ID dan nama tampilan setiap paket akses yang dikembalikan dari kueri.

Berikan parameter ke runbook (opsional)

Anda juga dapat menambahkan parameter input ke runbook Anda, dengan menambahkan Param bagian di bagian atas skrip PowerShell. Misalnya

Param
(
    [String] $AccessPackageAssignmentId
)

Format parameter yang diizinkan tergantung pada layanan panggilan. Jika runbook Anda memang mengambil parameter dari pemanggil, maka Anda perlu menambahkan logika validasi ke runbook Anda untuk memastikan bahwa nilai parameter yang disediakan sesuai dengan bagaimana runbook dapat dimulai. Misalnya, jika runbook Anda dimulai oleh webhook, Azure Automation tidak melakukan autentikasi apa pun pada permintaan webhook selama dibuat ke URL yang benar, jadi Anda memerlukan cara alternatif untuk memvalidasi permintaan.

Setelah mengonfigurasi parameter input runbook, maka saat menguji runbook, Anda dapat memberikan nilai melalui halaman Uji. Kemudian, ketika runbook diterbitkan, Anda dapat memberikan parameter saat memulai runbook dari PowerShell, REST API, atau Aplikasi Logika.

Mengurai output akun Azure Automation di Logic Apps (opsional)

Setelah runbook diterbitkan, Anda dapat membuat jadwal di Azure Automation, dan menautkan runbook Anda ke jadwal tersebut untuk berjalan secara otomatis. Menjadwalkan runbook dari Azure Automation cocok untuk runbook yang tidak perlu berinteraksi dengan layanan Azure atau Office 365 lain yang tidak memiliki antarmuka PowerShell.

Jika Anda ingin mengirim output runbook Anda ke layanan lain, maka Anda mungkin ingin mempertimbangkan untuk menggunakan Azure Logic Apps untuk memulai runbook Azure Automation Anda, karena Logic Apps juga dapat mengurai hasilnya.

  1. Di Azure Logic Apps, buat Aplikasi Logika di Logic Apps Designer yang dimulai dengan Pengulangan.

  2. Tambahkan operasi Buat pekerjaan dari Azure Automation. Autentikasi ke ID Microsoft Entra, dan pilih Langganan, Grup Sumber Daya, Akun Automation yang dibuat sebelumnya. Pilih Tunggu Pekerjaan.

  3. Tambahkan nama Runbook parameter dan ketik nama runbook yang akan dimulai. Jika runbook memiliki parameter input, maka Anda dapat memberikan nilai kepada mereka.

  4. Pilih Langkah baru dan tambahkan operasi Dapatkan output pekerjaan. Pilih Langganan, Grup Sumber Daya, Akun Automation yang sama dengan langkah sebelumnya, dan pilih Nilai dinamis ID Pekerjaan dari langkah sebelumnya.

  5. Anda kemudian dapat menambahkan lebih banyak operasi ke Aplikasi Logika, seperti tindakan Urai JSON yang menggunakan Konten yang dikembalikan saat runbook selesai. (Jika Anda membuat secara otomatisMengurai skema JSON dari payload sampel, pastikan untuk memperhitungkan skrip PowerShell yang berpotensi mengembalikan null; Anda mungkin perlu mengubah beberapa "type": ​"string" ke "type": [​"string",​ "null"​] dalam skema.)

Di Azure Automation, runbook PowerShell dapat gagal diselesaikan jika mencoba menulis sejumlah besar data ke aliran output sekaligus. Anda biasanya dapat mengatasi masalah ini dengan memiliki output runbook hanya informasi yang diperlukan oleh Aplikasi Logika, seperti dengan menggunakan Select-Object -Property cmdlet untuk mengecualikan properti yang tidak diperlukan.

Rencanakan untuk selalu memperbarui sertifikat

Jika Anda membuat sertifikat yang ditandatangani sendiri dengan mengikuti langkah-langkah di atas untuk autentikasi, perlu diingat bahwa sertifikat memiliki masa pakai terbatas sebelum kedaluwarsa. Anda perlu meregenerasi sertifikat dan mengunggah sertifikat baru sebelum tanggal kedaluwarsanya.

Ada dua tempat di mana Anda dapat melihat tanggal kedaluwarsa di portal Azure.

  • Di Azure Automation, layar Sertifikat menampilkan tanggal kedaluwarsa sertifikat.
  • Di ID Microsoft Entra, pada pendaftaran aplikasi, layar Sertifikat & rahasia menampilkan tanggal kedaluwarsa sertifikat yang digunakan untuk akun Azure Automation.

Langkah berikutnya