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 pengelolaan 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.

Buat akun Azure Automation

Azure Automation menyediakan lingkungan yang dihosting cloud untuk menjalankan runbook. Runbook tersebut dapat dimulai secara otomatis berdasarkan jadwal, atau dipicu oleh webhook maupun 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 langganan atau grup sumber daya tempat akun Azure Automation berada.

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

  3. Setelah akun Azure Automation dibuat, pilih Kontrol akses (IAM). Kemudian pilih Lihat 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 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 membuat sertifikat yang ditandatangani sendiri,

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

  2. Tampilkan sidik jari sertifikat.

     $cert | ft Thumbprint
    
  3. Setelah mengekspor file, Anda dapat menghapus sertifikat dan pasangan kunci dari toko 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 berkas .pfx, dan menggunakannya untuk mengautentikasi ke Microsoft Graph.

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

  2. Unggah file .pfx yang dibuat sebelumnya, lalu masukkan kata sandi yang Anda berikan saat membuat file.

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

  4. Anda sekarang dapat menghapus file .pfx 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 kemudian 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-modul lain memiliki Microsoft.Graph.Authentication sebagai prasyarat.

  3. Kembali ke daftar Modul dan pilih Refresh. Setelah Status modul Microsoft.Graph.Authentication telah 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 Microsoft Entra Admin Center dengan peran sebagai Administrator Aplikasi minimal.
  2. Telusuri Identitas>Aplikasi>Pendaftaran aplikasi.
  3. Pilih Pendaftaran baru.
  4. Masukkan 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 Rahasia>Sertifikat>Unggah sertifikat.
    1. Unggah file .crt yang dibuat sebelumnya.
  6. Pilih Izin API>Tambahkan izin.
  7. Pilih Microsoft Graph>izin Aplikasi.
    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 untuk seluruh penyewa; sebagai gantinya, Anda dapat menetapkan perwakilan layanan ke peran Pemilik katalog atau Pembaca katalog.
      • Jika runbook Anda hanya menjalankan kueri untuk pengelolaan pemberian hak, maka runbook tersebut dapat menggunakan izin EntitlementManagement.Read.All.
      • Jika runbook Anda membuat perubahan pada manajemen hak akses, misalnya untuk membuat penugasan di beberapa katalog, maka gunakan izin EntitlementManagement.ReadWrite.All.
      • Untuk API lainnya, pastikan bahwa izin yang diperlukan telah ditambahkan. Misalnya, untuk Microsoft Entra ID Protection, izin IdentityRiskyUser.Read.All mungkin diperlukan.

Aplikasi yang dibuat di bagian sebelumnya memiliki izin yang memerlukan persetujuan dari seseorang dengan setidaknya peran Administrator Peran Istimewa sebelum dapat berfungsi sebagaimana dimaksudkan.

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Peran Istimewa.
  2. Telusuri ke Identitas>Aplikasi>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 tiga variabel di akun Azure Automation yang digunakan oleh runbook untuk menentukan cara mengautentikasi ke Microsoft Entra ID.

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

  2. Pilih Variabel, dan Tambahkan variabel.

  3. Buat variabel bernama Thumbprint. Ketik thumbprint sertifikat sebagai nilai dari variabel 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. Ketik, sebagai nilai variabel, ID penyewa direktori tempat aplikasi didaftarkan.

Membuat runbook PowerShell Azure Automation yang dapat menggunakan Graph

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

  1. Pilih Runbook dan Buat runbook.

  2. Ketik nama runbook, pilih PowerShell sebagai jenis runbook yang akan dibuat, lalu 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, lalu pilih Mulai. Tunggu beberapa detik agar pemrosesan Azure Automation pada skrip runbook Anda selesai.

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

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

Memperluas runbook dengan menggunakan Manajemen Hak Akses

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

  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, lalu pilih Mulai. Tunggu beberapa detik agar pemrosesan Azure Automation pada skrip runbook Anda selesai.

  2. Jika prosesnya berhasil, array JSON akan ditampilkan sebagai ganti pesan selamat datang. 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 bagian Param di bagian atas skrip PowerShell. Contohnya,

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 apapun pada permintaan webhook asalkan 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 Pengujian. Nantinya ketika runbook diterbitkan, Anda dapat memberikan parameter saat memulai runbook dari PowerShell, REST API, atau Aplikasi Logika.

Memproses output dari akun Azure Automation pada aplikasi 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 layanan Azure Automation sesuai untuk runbook yang tidak perlu berinteraksi dengan layanan Azure atau Office 365 lainnya 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 Perancang Logic Apps yang dimulai dengan Pengulangan.

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

  3. Tambahkan parameter Nama Runbook dan ketik nama runbook yang hendak dijalankan. Apabila 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 operasi lainnya ke Aplikasi Logika, seperti tindakan Parse JSON, yang menggunakan Konten yang ditampilkan saat runbook selesai. (Apabila Anda membuat skema Parse JSON secara otomatis dari payload sampel, pastikan untuk memperhitungkan skrip PowerShell yang berpotensi mengembalikan null; Anda mungkin perlu mengubah beberapa "type": ​"string" menjadi "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 mengatur output runbook agar hanya menampilkan informasi yang dibutuhkan oleh Aplikasi Logika, seperti dengan menggunakan Select-Object -Property cmdlet untuk mengecualikan properti yang tidak dibutuhkan.

Rencana agar sertifikat tetap terbaru

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 untuk mengetahui 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