Bagikan melalui


Menggunakan Microsoft Entra ID untuk mengautentikasi ke Azure

Layanan ID Microsoft Entra memungkinkan sejumlah tugas administratif, seperti manajemen pengguna, manajemen domain, dan konfigurasi akses menyeluruh. Artikel ini menjelaskan cara menggunakan ID Microsoft Entra dalam Azure Automation sebagai penyedia untuk autentikasi ke Azure.

Menginstal modul Microsoft Entra

Anda dapat mengaktifkan ID Microsoft Entra melalui modul PowerShell berikut:

  • Azure Active Directory PowerShell untuk Graph (modul AzureRM dan Az). Azure Automation dikirim dengan modul AzureRM dan peningkatan terbarunya, modul Az. Fungsionalitas mencakup autentikasi non-interaktif ke Azure menggunakan autentikasi berbasis kredensial pengguna Microsoft Entra (OrgId). Lihat Microsoft Entra ID 2.0.2.76.

  • ID Microsoft Entra untuk Windows PowerShell (modul MSOnline). Modul ini memungkinkan interaksi dengan Microsoft Online, termasuk Microsoft 365.

Catatan

PowerShell Core tidak mendukung modul MSOnline. Untuk menggunakan cmdlet modul, Anda harus menjalankannya dari Windows PowerShell. Anda didorong untuk menggunakan PowerShell Azure Active Directory yang lebih baru untuk modul Graph, bukan modul MSOnline.

Catatan

Modul Azure ACTIVE Directory dan MSOnline PowerShell tidak digunakan lagi per 30 Maret 2024. Untuk mempelajari lebih lanjut, baca pembaruan penghentian. Setelah tanggal ini, dukungan untuk modul ini terbatas pada bantuan migrasi ke Microsoft Graph PowerShell SDK dan perbaikan keamanan. Modul yang tidak digunakan lagi akan terus berfungsi hingga Maret, 30 2025.

Sebaiknya migrasi ke Microsoft Graph PowerShell untuk berinteraksi dengan ID Microsoft Entra (sebelumnya Microsoft Azure AD). Untuk pertanyaan umum tentang migrasi, lihat Tanya Jawab Umum Migrasi. Catatan: MSOnline versi 1.0.x mungkin mengalami gangguan setelah 30 Juni 2024.

Prainstalasi

Sebelum menginstal modul Microsoft Entra di komputer Anda:

  • Hapus instalasi versi modul AzureRM/Az sebelumnya dan modul MSOnline.

  • Hapus instalasi Microsoft Online Services Sign-In Assistant Untuk memastikan pengoperasian modul PowerShell yang baru dengan benar.

Menginstal modul AzureRM dan Az

Catatan

Untuk bekerja dengan modul ini, Anda harus menggunakan PowerShell versi 5.1 atau yang lebih baru dengan Windows versi 64-bit.

  1. Instal Windows Management Framework (WMF) 5.1. Lihat Instal dan Konfigurasikan WMF 5.1.

  2. Instal AzureRM dan/atau Az menggunakan instruksi di Menginstal Azure PowerShell di Windows dengan PowerShellGet.

Instal modul MSOnline

Catatan

Untuk menginstal modul MSOnline, Anda harus menjadi anggota peran admin. Lihat Tentang peran admin.

  1. Pastikan fitur Microsoft .NET Framework 3.5.x diaktifkan di komputer Anda. Kemungkinan versi yang lebih baru sudah terinstal di komputer Anda, tetapi kompatibilitas mundur dengan versi .NET Framework yang lebih lama dapat diaktifkan atau dinonaktifkan.

  2. Instal Asisten Masuk Layanan Online Microsoft versi 64-bit.

  3. Jalankan Windows PowerShell sebagai administrator untuk membuat prompt perintah Windows PowerShell yang ditinggikan.

  4. Sebarkan ID Microsoft Entra dari MSOnline 1.0.

  5. Jika Anda diminta untuk menginstal penyedia NuGet, ketik Y lalu tekan ENTER.

  6. Jika Anda diminta untuk menginstal modul dari PSGallery, ketik Y lalu tekan ENTER.

Instal dukungan untuk PSCredential

Azure Automation menggunakan kelas PSCredential untuk mewakili aset kredensial. Skrip Anda mengambil objek PSCredential menggunakan cmdlet Get-AutomationPSCredential. Untuk informasi selengkapnya, lihat Aset kredensial di Azure Automation.

Menetapkan admin langganan

Anda harus menetapkan administrator untuk langganan Azure. Orang ini memiliki peran Pemilik untuk cakupan langganan. Lihat Kontrol akses berbasis peran di Azure Automation.

Mengubah kata sandi pengguna Microsoft Entra

Untuk mengubah kata sandi pengguna Microsoft Entra:

  1. Keluar dari Azure.

  2. Minta administrator masuk ke Azure saat pengguna Microsoft Entra baru saja dibuat, menggunakan nama pengguna lengkap (termasuk domain) dan kata sandi sementara.

  3. Minta administrator untuk mengubah kata sandi bila diminta.

Mengonfigurasi Azure Automation untuk mengelola langganan Azure

Agar Azure Automation berkomunikasi dengan MICROSOFT Entra ID, Anda harus mengambil kredensial yang terkait dengan koneksi Azure ke ID Microsoft Entra. Contoh kredensial ini adalah ID penyewa, ID langganan, dan jenisnya. Untuk informasi selengkapnya tentang koneksi antara Azure dan ID Microsoft Entra, lihat Menyambungkan organisasi Anda ke ID Microsoft Entra.

Buat aset kredensial.

Dengan kredensial Azure untuk Microsoft Entra yang tersedia, saatnya untuk membuat aset kredensial Azure Automation untuk menyimpan kredensial Microsoft Entra dengan aman sehingga runbook dan skrip Desire State Configuration (DSC) dapat mengaksesnya. Anda dapat melakukan ini menggunakan portal Azure atau cmdlet PowerShell.

Membuat aset kredensial di portal Azure

Anda dapat menggunakan portal Azure untuk membuat aset kredensial. Lakukan operasi ini dari akun Otomatisasi Anda menggunakan Kredensial di bawah Sumber Daya Bersama. Lihat Aset kredensial di Azure Automation.

Membuat aset kredensial baru dengan Windows PowerShell

Untuk menyiapkan aset kredensial baru di Windows PowerShell, skrip Anda terlebih dahulu membuat objek PSCredential menggunakan nama pengguna dan kata sandi yang ditetapkan. Skrip kemudian menggunakan objek ini untuk membuat aset melalui panggilan ke cmdlet New-AzureAutomationCredential. Atau, skrip dapat memanggil cmdlet Get-Credential untuk meminta pengguna mengetikkan nama dan kata sandi. Lihat Aset kredensial di Azure Automation.

Mengelola sumber daya Azure dari runbook Azure Automation

Anda dapat mengelola sumber daya Azure dari runbook Azure Automation menggunakan aset kredensial. Di bawah ini adalah contoh runbook PowerShell yang mengumpulkan aset kredensial yang digunakan untuk menghentikan dan memulai komputer virtual dalam langganan Azure. Runbook ini terlebih dahulu menggunakan Get-AutomationPSCredential untuk mengambil kredensial yang akan digunakan untuk mengautentikasi ke Azure. Kemudian memanggil cmdlet Connect-AzAccount untuk terhubung ke Azure menggunakan kredensial.

Workflow Workflow
{ 
    Param 
    (    
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureSubscriptionId, 
        [Parameter(Mandatory=$true)][ValidateNotNullOrEmpty()] 
        [String] 
        $AzureVMList="All", 
        [Parameter(Mandatory=$true)][ValidateSet("Start","Stop")] 
        [String] 
        $Action 
    ) 
     
    # Ensures you do not inherit an AzContext in your runbook
    Disable-AzContextAutosave -Scope Process

    # Connect to Azure with system-assigned managed identity
    $AzureContext = (Connect-AzAccount -Identity).context

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext 

    # get credential
    $credential = Get-AutomationPSCredential -Name "AzureCredential"

    # Connect to Azure with credential
    $AzureContext = (Connect-AzAccount -Credential $credential -TenantId $AzureContext.Subscription.TenantId).context 

    # set and store context
    $AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
        -TenantId $AzureContext.Subscription.TenantId `
        -DefaultProfile $AzureContext
 
    if($AzureVMList -ne "All") 
    { 
        $AzureVMs = $AzureVMList.Split(",") 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
    else 
    { 
        $AzureVMs = (Get-AzVM -DefaultProfile $AzureContext).Name 
        [System.Collections.ArrayList]$AzureVMsToHandle = $AzureVMs 
    } 
 
    foreach($AzureVM in $AzureVMsToHandle) 
    { 
        if(!(Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM})) 
        { 
            throw " AzureVM : [$AzureVM] - Does not exist! - Check your inputs " 
        } 
    } 
 
    if($Action -eq "Stop") 
    { 
        Write-Output "Stopping VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Stop-AzVM -DefaultProfile $AzureContext -Force 
        } 
    } 
    else 
    { 
        Write-Output "Starting VMs"; 
        foreach -parallel ($AzureVM in $AzureVMsToHandle) 
        { 
            Get-AzVM -DefaultProfile $AzureContext | ? {$_.Name -eq $AzureVM} | Start-AzVM -DefaultProfile $AzureContext
        } 
    } 
}

Langkah berikutnya