Masuk dengan Azure PowerShell
Azure PowerShell mendukung beberapa metode autentikasi. Cara termudah untuk memulai adalah dengan Azure Cloud Shell, yang secara otomatis memasukkan Anda. Dengan penginstalan lokal, Anda dapat masuk secara interaktif melalui browser Anda. Saat menulis skrip untuk otomatisasi, pendekatan yang disarankan adalah menggunakan perwakilan layanan dengan izin yang diperlukan. Saat Anda membatasi izin masuk sebanyak mungkin untuk kasus penggunaan Anda, Anda membantu menjaga sumber daya Azure Anda tetap aman.
Awalnya, Anda masuk ke langganan pertama yang kembali Azure jika Anda memiliki akses ke lebih dari satu langganan. Perintah dijalankan terhadap langganan ini secara default. Untuk mengubah langganan aktif Anda untuk sesi, gunakan cmdlet Set-AzContext. Untuk mengubah langganan aktif Anda dan mempertahankannya di antara sesi pada sistem yang sama, gunakan cmdlet Select-AzContext.
Penting
Info masuk Anda dibagikan di antara beberapa sesi PowerShell selama Anda tetap masuk. Untuk informasi selengkapnya, lihat Azure PowerShell objek konteks.
Masuk secara interaktif
Untuk masuk secara interaktif, gunakan cmdlet Connect-AzAccount.
Connect-AzAccount
Cmdlet ini menyajikan permintaan masuk berbasis browser interaktif secara default.
Gunakan cmdlet Get-AzContext untuk menyimpan ID penyewa Anda dalam variabel yang akan digunakan di dua bagian berikutnya dari artikel ini.
$tenantId = (Get-AzContext).Tenant.Id
Autentikasi kode perangkat
Anda dapat menentukan UseDeviceAuthentication
parameter untuk menggunakan autentikasi kode perangkat alih-alih kontrol browser.
Connect-AzAccount -UseDeviceAuthentication
Masuk dengan perwakilan layanan
Perwakilan layanan adalah akun Azure non-interaktif. Seperti akun pengguna lainnya, izinnya dikelola dengan Azure Active Directory. Dengan memberikan perwakilan layanan hanya izin yang dibutuhkan, skrip otomatisasi Anda tetap aman.
Untuk mempelajari cara membuat perwakilan layanan untuk digunakan dengan Azure PowerShell, lihat Membuat perwakilan layanan Azure dengan Azure PowerShell.
Untuk masuk dengan perwakilan layanan, gunakan parameter ServicePrincipal
cmdlet Connect-AzAccount
. Anda juga memerlukan ID aplikasi perwakilan layanan, info masuk, dan mengaitkan ID penyewa dengan perwakilan layanan. Cara Anda masuk dengan perwakilan layanan tergantung pada apakah itu dikonfigurasi untuk autentikasi berbasis kata sandi atau berbasis sertifikat.
Autentikasi berbasis kata sandi
Buat perwakilan layanan untuk digunakan dalam contoh di bagian ini. Untuk informasi selengkapnya tentang membuat perwakilan layanan, kunjungi Buat perwakilan layanan Azure dengan Azure PowerShell.
$sp = New-AzADServicePrincipal -DisplayName ServicePrincipalName
Peringatan
Rahasia perwakilan layanan yang disediakan disimpan dalam AzureRmContext.json
file di profil pengguna Anda ($env:USERPROFILE\.Azure
). Pastikan direktori ini memiliki perlindungan yang sesuai.
Untuk mendapatkan info masuk perwakilan layanan sebagai objek yang sesuai, gunakan cmdlet Get-Credential. Cmdlet ini menyajikan perintah untuk nama pengguna dan kata sandi. Gunakan perwakilan layanan applicationID
untuk nama pengguna dan ubah secret
menjadi teks biasa untuk kata sandi.
# Retrieve the plain text password for use with `Get-Credential` in the next command.
$sp.PasswordCredentials.SecretText
$pscredential = Get-Credential -UserName $sp.AppId
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Untuk skenario otomatisasi, Anda perlu membuat info masuk dari perwakilan layanan AppId
dan SecretText
:
$SecureStringPwd = $sp.PasswordCredentials.SecretText | ConvertTo-SecureString -AsPlainText -Force
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $sp.AppId, $SecureStringPwd
Connect-AzAccount -ServicePrincipal -Credential $pscredential -Tenant $tenantId
Pastikan Anda menggunakan praktik penyimpanan kata sandi yang baik saat mengotomatiskan koneksi perwakilan layanan.
Autentikasi berbasis sertifikat
Autentikasi berbasis sertifikat mengharuskan Azure PowerShell dapat mengambil informasi dari penyimpanan sertifikat lokal berdasarkan thumbprint sertifikat.
Connect-AzAccount -ApplicationId $appId -Tenant $tenantId -CertificateThumbprint <thumbprint>
Saat menggunakan perwakilan layanan alih-alih aplikasi terdaftar, tentukan parameter ServicePrincipal dan berikan ID Aplikasi perwakilan layanan sebagai nilai untuk parameter ApplicationId .
Connect-AzAccount -ServicePrincipal -ApplicationId $servicePrincipalId -Tenant $tenantId -CertificateThumbprint <thumbprint>
Dalam Windows PowerShell 5.1, penyimpanan sertifikat dapat dikelola dan diperiksa dengan modul PKI. Untuk PowerShell 7.x dan yang lebih baru, prosesnya lebih rumit. Skrip berikut menunjukkan kepada Anda cara mengimpor sertifikat yang ada ke penyimpanan sertifikat yang dapat diakses oleh PowerShell.
Mengimpor sertifikat di Windows PowerShell 5.1
# Import a PFX
$credentials = Get-Credential -Message 'Provide PFX private key password'
Import-PfxCertificate -FilePath <path to certificate> -Password $credentials.Password -CertStoreLocation cert:\CurrentUser\My
Mengimpor sertifikat di PowerShell 7.x dan yang lebih baru
# Import a PFX
$storeName = [System.Security.Cryptography.X509Certificates.StoreName]::My
$storeLocation = [System.Security.Cryptography.X509Certificates.StoreLocation]::CurrentUser
$store = [System.Security.Cryptography.X509Certificates.X509Store]::new($storeName, $storeLocation)
$certPath = <path to certificate>
$credentials = Get-Credential -Message "Provide PFX private key password"
$flag = [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable
$certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($certPath, $credentials.Password, $flag)
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$store.Add($Certificate)
$store.Close()
Masuk dengan identitas terkelola
Identitas terkelola juga merupakan fitur Azure Active Directory. Identitas terkelola adalah perwakilan layanan yang ditetapkan ke sumber daya yang berjalan di Azure. Anda dapat menggunakan perwakilan layanan identitas terkelola untuk masuk, dan token akses khusus aplikasi untuk mengakses sumber daya lain. Identitas terkelola hanya tersedia pada sumber daya yang berjalan di cloud Azure.
Contoh ini menghubungkan menggunakan identitas terkelola dari lingkungan host. Misalnya, jika dijalankan pada VirtualMachine dengan Identitas Layanan Terkelola yang ditetapkan, ini memungkinkan kode untuk masuk menggunakan identitas yang ditetapkan tersebut.
Connect-AzAccount -Identity
Contoh berikut terhubung menggunakan Identitas Layanan Terkelola dari myUserAssignedIdentity
. Ini menambahkan identitas yang ditetapkan pengguna ke komputer virtual, lalu terhubung menggunakan ClientId
identitas yang ditetapkan pengguna. Untuk informasi selengkapnya, lihat Mengonfigurasi identitas terkelola untuk sumber daya Azure di Azure VM.
$identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity'
Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id
Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine
Account SubscriptionName TenantId Environment
------- ---------------- -------- -----------
yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud
Masuk dengan penyewa non-default atau sebagai Penyedia Solusi Cloud (CSP)
Jika akun Anda dikaitkan dengan lebih dari satu penyewa, rincian masuk mengharuskan parameter Penyewa ditentukan saat menyambungkan. Parameter ini bekerja dengan metode masuk apa pun. Saat masuk, nilai parameter ini dapat berupa ID objek Azure dari penyewa (ID Penyewa) atau nama domain penyewa yang sepenuhnya memenuhi syarat.
Jika Anda adalah Penyedia Solusi Cloud (CSP), nilai untuk parameter Penyewa harus berupa ID penyewa.
Connect-AzAccount -Tenant '00000000-0000-0000-0000-000000000000'
Masuk ke Cloud lain
Layanan cloud Azure menawarkan lingkungan yang sesuai dengan undang-undang penanganan data regional. Untuk akun di cloud regional, atur lingkungan saat Anda masuk dengan parameter Lingkungan . Parameter ini bekerja dengan metode masuk apa pun. Misalnya, jika akun Anda berada di Azure Tiongkok 21Vianet:
Connect-AzAccount -Environment AzureChinaCloud
Perintah berikut mengembalikan daftar lingkungan yang tersedia:
Get-AzEnvironment | Select-Object -Property Name