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